TheBoxyBear / charttools

Library for editing Clone Hero song files in .NET
https://theboxybear.github.io/charttools
GNU General Public License v3.0
13 stars 5 forks source link

Review format of lyrics in `.mid` #78

Closed TheBoxyBear closed 3 months ago

TheBoxyBear commented 3 months ago

According to the .mid format reference, text data for vocals is stored as events that may be shared across tracks. If so, the model should be adjusted accordingly to not allow different lyrics for each track.

TheNathannator commented 3 months ago

The lyric text events themselves are not shared across tracks, only the lyric phrase markers are. Each harmony part has its own set of lyrics, including HARM3.

TheBoxyBear commented 3 months ago

So global: Start and end of each phrase

Per standard/harmony track: Positions, pitches and text.

@TheNathannator Know of any midi chart with harmonies for reference?

TheNathannator commented 3 months ago

A good amount of the Rock Band 3 setlist has them, along with various RB3 customs.

That list of associations sounds correct off the top of my head, don't think there's anything else to note for that.

TheBoxyBear commented 3 months ago

There's also the sharing of SP across harmonies and that seems to be a cascade of phrases, 1 defining for 1/2, 2 for 3 and 3 having no phrases.

Considering cutting vocals altogether for the initial release while a new model is imagined, but such a model also seems difficult to design. It would either be complex to force correct states, or have a lots of runtime error cases when writing. Either way, it would almost definitely not fit in the mold of Instrument classes but this isn't a huge issue as vocals can always be treated as a distinct component.