Synthesia dividing a song into it's respective hands

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.
WD40
Posts: 4

Post by WD40 » 02-05-13 10:08 am

Hi,

It's been a while since I posted here.
I had a thought today, Synthesia is great for learning melodies with it's ability of coloring different instruments with different colors. Thus, when one has two piano instruments that play only one hand of the same song, one can learn them separately, for the sake of one day, combining them into the 'original' full song.
So, I was thinking, Synthesia is able to separate between the treble clef's and the bass clef's staffs, as seen in the music sheet that Synthesia is able to render on choice. (Regardless of whether this is a technical reason, meaning that the midi file itself contains this information, or that Synthesia has an engine that does the separation, the fact remains that this is a reality)
Since it is already able to do that, why not add the option for having Synthesia do the division itself and 'render' the two respective hands according to the staffs. Meaning, color the treble clef notes in green and the bass clef notes in blue.
The only 'harder' part in this would be to program Synthesia to ignore the 'non played hand' (ex. the treble clef) and only make stops for the 'played hand' (ex. the bass clef and vice-versa) while in learning mode.

On poorly written midi files, it could be inaccurate, however, since this would be an option and wouldn't change the file, rather just make it 'look like' two different instruments, it could be useful for those who wish to learn the hands separately but don't have a big variety of midi files to choose from for their favorite songs/melodies.

Nicholas
Posts: 12351

Post by Nicholas » 04-20-13 12:12 pm

WD40 wrote:... why not add the option for having Synthesia do the division itself and 'render' the two respective hands according to the staffs.
This is actually how piano sheet music is supposed to work. Each hand is supposed to get its own staff (outside of extreme cases like hand-over-hand notes).

This has been a deficiency in Synthesia's sheet rendering since it was first added. In my very next pass at improving the sheet generator, I hope to fix this.

613Skier
Posts: 49

Post by 613Skier » 04-22-13 12:01 am

I'd like a feature where you could drag a cursor down the middle of a paused track and split one track into two different hands.

I've since figured out a means to do this with midi editors, but it'd be a handy thing to be able to do it quickly inside the program.

Nicholas
Posts: 12351

Post by Nicholas » 04-22-13 4:24 pm

613Skier wrote:I'd like a feature where you could drag a cursor down the middle of a paused track and split one track into two different hands.
You are in luck. That is one of the major features planned for 2013. :D

deed02392
Posts: 38

Post by deed02392 » 04-23-13 11:10 am

That would make Synthesia by far the most intuitive way of adding hands information to songs!

duncanisgoed
Posts: 7

Post by duncanisgoed » 06-16-13 7:08 pm

Sorry for resurrecting this old thread, but I think I have a good idea how this could be done. Don't know if it's posted on the board already, but twice shouldn't harm too much.

Splitting a track into multiple hands seems to be a very hard thing (which I certainly understand, especially if you look at scores like Moonlight Sonata from Beethoven). My idea was (if this feature will be implemented) that you can drag & drop to make a line (will post an image). This line can then be used as marker were to split notes.

This feature would greatly improve synthesia

Image

Greetings

PS @Nicholas: thanks a lot for your great game! i used to pirate it (no money, sorry) but tonight I bought it. you deserve all the money more then twice!

kiwi
Synthesia Donor
Posts: 1178

Post by kiwi » 06-17-13 1:50 am

It sems so easy like this but some sheet 'll not work with this method.
or we 'll need to have ctrl function i mean:
We use u're line method it select all notes to the left then with ctrl+clik we add or remove notes selected like in a daw .
And the crack is a shared key so it 'll not work with future version.
thx for to buy it and u 'll not be disapointed because u 'll have access to all the last dev versions ;) and Nichola is on the dev process now after all the webstuff and other so expect to have many dev versions soon.

duncanisgoed
Posts: 7

Post by duncanisgoed » 06-17-13 7:16 am

@kiwi: indeed, I was just talking about this line as a thing to do the initial splitting. it might not be perfect for all sheets, but it would be a good start. I understand this board is not here to discuss a crack, but it's terribly easy to bypass this blacklist (if you have some knowledge of security things).

greetings

kiwi
Synthesia Donor
Posts: 1178

Post by kiwi » 06-17-13 8:04 am

no no u're idea is really good combined with the ctrl method it' ll be possible to do any correct split for any midi files.

Nicholas
Posts: 12351

Post by Nicholas » 06-22-13 7:09 pm

duncanisgoed wrote:My idea was (if this feature will be implemented) that you can drag & drop to make a line (will post an image). This line can then be used as marker were to split notes.
Yes! This has been how I've envisioned it since all the way back in 2006! I like this idea. I think this is the first mock-up I've seen of it. Drawing lines down the center could handle 98% of all situations, and then manually changing a couple notes here-and-there (like kiwi mentioned) to fix things like hand-over-hand sections would be all you'd need to get the rest of the way.

My hope is that hand-splitting will make it into Synthesia by the end of the year.

kiwi
Synthesia Donor
Posts: 1178

Post by kiwi » 06-23-13 5:13 am

By the way i already do this with mulab ;)

deed02392
Posts: 38

Post by deed02392 » 07-14-13 7:05 am

How does it work on mulab?

kiwi
Synthesia Donor
Posts: 1178

Post by kiwi » 07-20-13 10:43 am

Well in mulab it works like a charm.
I double click on the midi track so it's open in full screen.
I simply select the notes with mouse then unselect the unwanted ones with ctrl+mouse
Then i paste them in a new track and delete them on the previous one so i have 2 tracks then i choose save as midi (i can set the midi chanel if i want too ).
Et voila.
I use v3 don't know if the last version 4 has the same handling.

Calis007
Posts: 10

Post by Calis007 » 07-20-13 6:57 pm

In Reaper it's easy as well:
Select all notes (ctrl-A)
right-click one of the notes, set note channel to 1
select notes for one of the hands (select some, hold down shift or ctrl, select additional ones (rectangular areas or single clicks))
right-click one of the notes, set note channel to 2
save, done.

But usually I make some errors and a few notes are on the wrong side - would be nice to be able to correct these within Synthesia (instead of quitting, starting the daw, load the midi, find and correct that misplaced notes, save, start Synthesia. reload and hope it's ok now ..)

kiwi
Synthesia Donor
Posts: 1178

Post by kiwi » 07-21-13 1:13 am

yep all daw can do this i just choose mulab because it open instantly and the gui is comfortable.But reaper is a great daw too.

613Skier
Posts: 49

Post by 613Skier » 08-20-13 6:09 pm

I'd still love this to be a built in feature in Synthesia.

TonE
Synthesia Donor
Posts: 1180

Post by TonE » 08-22-13 2:35 am

For the simple cases a simple algorithm could do the splitting work, doing 98% of the work for us. How could the algorithm work? Maybe, based on a 'maximum pitch distance' at a given time point. Maybe 6 half notes? Also considering max-pitch and min-pitch at that time point. Starting searching between max-pitch and min-pitch in the middle somewhere for 6 half note distances. Or a 'hand filling algorithm' for both sides, always filling up the fingers, starting from the thumbs, then the fingers 1,2,3,4. So if one hand is filled up, you have to split the other notes to the other hand. This might be another decision helper. Who knows, maybe this simple algorithm would be already more than sufficient.

UPDATE: Another algorithm idea: If 'middle biggest pitch gap' is bigger than the average 'side pitch gaps' then do splitting there. Meaning, getting all inter-note-intervals, but only from one note to its next note in the other pitch direction, considering every note at maximum twice.

UPDATE: Can SynthesiaMetadataGui, export all songs metadata as separate *.synthesia in one go, into their original midi file folders? Then I could do tests with the built in *.mid file fingerings and algorithmically generated fingerings, checking their differences.

TonE
Synthesia Donor
Posts: 1180

Post by TonE » 08-22-13 2:46 am

kiwi wrote:yep all daw can do this i just choose mulab because it open instantly and the gui is comfortable.But reaper is a great daw too.
Reaper is the best DAW.

Nicholas
Posts: 12351

Post by Nicholas » 08-22-13 9:43 pm

TonE wrote:Can SynthesiaMetadataGui, export all songs metadata as separate *.synthesia in one go, into their original midi file folders?
That sounds an awful lot like something grep, xargs, and awk/sed could accomplish without too much trouble. My Linux command-line chops are a little rusty to do it off the cuff though. :D

If you're at all comfortable with C#, the MetadataFile.cs and SongEntry.cs files from the editor's source are all you'd need to perform the task with about three lines of additional code.

TonE
Synthesia Donor
Posts: 1180

Post by TonE » 08-23-13 4:23 am

Ok, thanks, I have to check again where (in which file(s) ) all the included metadata are saved, so I can see how and where to split them. Also this does not hurry. Probably I will use again AutoHotkey, simple, independent = self-contained and good. :)

Post Reply