Breaking down songs into "parts"

Synthesia is a living project. You can help by sharing your ideas.
Search the forum before posting your idea. :D

No explicit, hateful, or hurtful language. Nothing illegal.
unrealed
Posts: 17

Post by unrealed »

I love the practice modes but they have one big flaw in my opinion: It requires you to play through the entire song.

This is usually easy enough when practicing hands separately. It will take me time, but I'll get through the song. The problem is when it requires both hands. Playing, obviously, becomes a lot more difficult, and I find myself making the same mistakes too often on the same parts of a song when practicing both hands. All my piano teachers always told me to practice one hand at a time, and then to put them together, but they also said to practice only a small part of the song.

What I imagine is the ability to divide the song into parts (with an interface pretty similar to bookmarks or loops) and then, when choosing to practice melody (either with both hands OR just 1 hand), Synthesia asks which part of the song to practice.

The big reason I wish this was in is that, when simply looping a part of the song, it doesn't keep track of my score for a specific part. I'm never sure I'm making progress: I'm never quite sure if today's performance is better than yesterday's. It does show me the best run in a loop when I'm playing, but not once I stop playing the loop.
swatt6400
Posts: 5

Post by swatt6400 »

Hi there,

First of all Synthesia is an awesome program. I am enjoying piano again. Sadly, I always get put off due to tremendous struggles with reading musical notation. Synthesia eliminates that!

I would really love to second this request.

Once you split a song into shorter parts (of your choosing), you can then play the game to fully master each part, exactly the way you master the short songs that come with the learning pack.

Obviously implementation detail is up to you, but it may be easy to do if the program could actually split the MIDI file into separate MIDI files. So back in the song list, the learner can learn each individual part as if it were a separate song. (I notice in the forum that people are already doing exactly this, except by manually splitting the MIDI file into smaller parts, to feed into Synthesia.)

If done this way, there would be hardly any code changes. Just one capability needs to be added, and that is that once you've marked a loop, have the ability to save that loop as a separate song for later practicing and perfecting as if it were its own piece.

Thanks!!
Sandra
swatt6400
Posts: 5

Post by swatt6400 »

Oh, and this would also address the other request for seeing more grades and scoring when practicing a loop. If it were its own song, it would have all that and more.
Pianotehead
Posts: 325

Post by Pianotehead »

I disagree with you on this, I don't think this is an important feature. If you play through a looped part and your timing is twice the length of the loop at full speed, or even if it "only" takes you 50% longer, then you know you haven't mastered it. Then you just have to play it over and over, till you can play it at full time without (or almost) without errors or extra notes. I'd rather like to see long awaited improvements in the sheet music display, like full page sheet and triplets to name a few.
kiwi
Synthesia Donor
Posts: 1180

Post by kiwi »

am agree with pianohead and it's important to have a selfanalize without the software ;)
Nicholas
Posts: 13135

Post by Nicholas »

Practicing in smaller sections is definitely important for the learning process. Though, I think I'm with kiwi and Pianotehead on this one. The tools in place already (especially the "Walk Loop Forward" and "Walk Loop Backward" shortcuts) make this pretty easy already.

I suppose not having persistent scores for sections is kind of inconvenient, but in extreme cases (very long pieces or an especially difficult section) there is the workaround of splitting the song into separate MIDI files using an editor.

The main reason I'm hesitant is the same as Pianotehead's: because this is already in a pretty good place, improvements here feel lower priority than some of the other major quality of life issues that are still around. (Not having triplets five years after sheet music was introduced in Synthesia is downright embarrassing.)
Pianotehead
Posts: 325

Post by Pianotehead »

It's not at all embarrassing, Synthesia like almost all other software on the market, is a dynamic living thing, it's always in progress and reevaluation. What I like to see in all sheet music software, is that it be as close to the paper sheets as possible.

I like the sheet music for Notation Composer, but it has a major downside. If shorter and longer notes are together, the longer notes are split into the smallest note at the same time, combined with ties. A lot of ties makes the sheet display much harder to read. In regular paper sheets, half notes, quarter notes and eight notes are together in the same bar and you can figure out how long to hold the note from the time signature.

The sheet music for Synthesia is nevertheless quite good, though it can be improved, but I realize it takes time.
Nicholas
Posts: 13135

Post by Nicholas »

This is sort of a mini-announcement (I've been pretty quiet around here since December), but I've been reevaluating my stance on how important MusicXML would be to the project. That is, I think I've gone from "would be nice someday" to something closer along the lines of "this is super important, why doesn't it exist yet?"

In a very real way, being able to read MusicXML would produce "perfect" sheet music. At that point, all Synthesia is doing is following simple drawing instructions ("put the dot here, the lines should be this long, the composer says the tie goes here..."). So instead of attempting to convert MIDI to sheet -- and doing poorly at it -- things would always show up exactly correctly.

This is also a great Get Out Of Jail Free card whenever someone pops into the forum with a "the sheet music doesn't look the way it's supposed to" post. I would be able to respond with "Just find a MusicXML version of the song!" :lol:

After mulling it over for a couple months, while certainly a challenging feature, it seems like the absolute best (only?) way to improve the quality of the sheet display to a point where it can really be taken seriously.
kiwi
Synthesia Donor
Posts: 1180

Post by kiwi »

It would be awesome many pro score editor use the flexible music.xml (myriad ,finale,notation ,sybelius,musescore,guitare pro etc...)
Pianotehead
Posts: 325

Post by Pianotehead »

Sounds great, I worked with MusicXML a little bit in my small virtual piano project in my GUI programming subject at the University a year ago.
User avatar
jimhenry
Posts: 1899

Post by jimhenry »

Nicholas, have you discovered some significant source of MusicXML files? If not, MusicXML might be best introduced along with a source for Synthesia music files.
Jim Henry
Author of the Miditzer, a free virtual theatre pipe organ
http://www.Miditzer.org/
Nicholas
Posts: 13135

Post by Nicholas »

Not off the top of my head. Though like kiwi mentioned, support is becoming nearly universal among the big notation editors. I suspect even just importing a MIDI into one of those and exporting as MusicXML will generate something higher quality than the sheet Synthesia comes up with.

One of the nicer facets about the format is that in addition to all the notation details, there is still a really accessible representation of the music (i.e. the stuff MIDI is normally concerned with), so going the opposite direction -- sheet to falling notes -- should be trivial.

The motivation here is less for popular song downloads by casual players and more Synthesia being taken seriously in the education community. They're using MusicXML today. They already have exercises in that format. Having a credible notation display that works with the files they already have makes a lot of sense.
Pianotehead
Posts: 325

Post by Pianotehead »

The fake (lead) sheets at wikifonia.org can be downloaded as MusicXML files.
unrealed
Posts: 17

Post by unrealed »

When "perfect" sheet music gets implemented in Synthesia, It'd be nice if we could also have multiple lines of sheet music. Currently, I really like how the "page" kinda turns in advance, but if you wanna play with sheet music in full-screen, the appear in a very large format and very few measures are actually shown. Having a second line would help that immensely, and make me a lot more tempted to use the sheet music.
Nicholas
Posts: 13135

Post by Nicholas »

unrealed wrote:It'd be nice if we could also have multiple lines of sheet music.
This is actually the motivation for strengthening the sheet music. Today it's not good enough to stand on its own, and the multi-line/full-screen sheet music request is so common that it made sense to start working on fixing that.

Once we're in a place where the sheet area can express the song as fully as the falling notes (with all the immediate state information like which notes still need to be hit before melody practice continues, etc.), it will be easy to extend things to multiple lines of sheet.
chris45215
Posts: 6

Post by chris45215 »

I think musicXML is a great feature to aim for.

After musicXML is supported, it would be easier to compare measures in the sheet music and determine if any of the measures are identical. The mechanics of a simple comparison might not be too daunting. I'm currently looking through some of the musicXML source (I take computer science classes in my free time) and it seems comprehensible. And the source behind XML scores seems to break the music down by measure, which is almost perfect. If an earliest version of the functionality can identify measures that are identical (which shouldn’t be too hard if the source music is decently consistent), a later version can have an update to separate treble from bass notes.
If I were given a few days to hack away with a song's xml file and told to find repeats, I think I could do it. I would read the file as a stream, recognize the Measure tags, put together an array of the notes in that measure based on the note tags (preferably multidimensional to include duration and other info), and compile an array of the measure arrays. After that it's just a matter of comparing the notes and durations in the arrays. Processor overhead would be minimal for a simple, imperfect implementation.
I glanced through some MIDI sources too, and they look much more complicated and difficult to work with. This could be a very exhausting task in MIDI.

The really hard part is deciding what to do with knowledge of repeated parts, and turning it into a useful feature. Off the top of my head I can think of 2 good options:
1: let us collapse that repeated part of the sheet if we know it already (sort of like how code compilers allow us to collapse the code inside a function or class). A 20-pixel wide shaded area between the measure bars could be an easy and unobtrusive reminder that more music is there. This could be a nice feature in general, and would allow players to skip boring song introductions.
2: review the player's consistency across those repeated parts. Perfect consistency could mean either “great” or “boring”, depending on personal taste.
Nicholas
Posts: 13135

Post by Nicholas »

I think you're right that MusicXML would be easier for repeat (or any other kind of) analysis than MIDI. It sort of feels like there is less "noise" overall in the format.

Though I wonder, since the format already supports repeats, would anything not using the actual notation symbol for a repeated section do so intentionally?

Just thinking these ideas through has me reeling at the possibilities of how Synthesia will have to be able to handle jumping backward via the page-flip animation to previous sections because of a repeat symbol. (This is going to be a lot of work!)
User avatar
jimhenry
Posts: 1899

Post by jimhenry »

Musical notation for jumping around and repeating things can get quite mind boggling. I've seen things on printed sheets that I couldn't figure out how to do in my notation program. Repeat 8va 2x comes to mind. I've had sheet music where I have had to study the repeats and D.S. al Coda stuff for awhile and never was quite sure I had it right or if it was notated correctly. Dropping, and less often adding, repeats is a fairly common alteration of scores for performance so what you are used to hearing might not match what you see on the score.
Jim Henry
Author of the Miditzer, a free virtual theatre pipe organ
http://www.Miditzer.org/
Pianotehead
Posts: 325

Post by Pianotehead »

I'm excited about this (XML) path the project is on. Do you know how or if XML supports things like grace notes, glissandos, trills and tremolos? All things that we like to include in our playing, but seem difficult to code.
Nicholas
Posts: 13135

Post by Nicholas »

Yes, MusicXML supports all of those. This is an unofficial source, but if you skim this page you'll get an idea of how much is included in the spec. (Spoilers: it's a lot! :lol: )

While Synthesia might not be able to handle all of it on day-1 (and some things like guitar chord charts probably won't ever be included), adding missing functionality with MusicXML is just a matter of performing the drawing bits correctly. That is the easy part. Trying to decide (from wacky MIDI data) where those symbols belong in the first place is the hard part that we'll be avoiding by using MusicXML.

So it's reasonable to imagine that in a short time, everything you could want in sheet music will be supported in Synthesia.
Post Reply