Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support jumps and repeats in Verovio MIDI converter #37

Open
infojunkie opened this issue Jul 22, 2024 · 1 comment
Open

Support jumps and repeats in Verovio MIDI converter #37

infojunkie opened this issue Jul 22, 2024 · 1 comment

Comments

@infojunkie
Copy link
Owner

infojunkie commented Jul 22, 2024

The core Verovio engine does not support jumps and repeats when converting MusicXML to MIDI.

In order to have our own VerovioConverter support jumps and repeats, the trivial solution is to unroll the score at the level of Player. However, this means that the score now shows unrolled, which is not ideal.

To keep the original jumps and repeats in Player, we need to fix both the MIDI generator and the timemap generator in VerovioConverter.

The MIDI generator can be already solved today by automatically unrolling the incoming MusicXML before feeding it to the core Verovio MIDI converter.

For the timemap generator, the unrolling approach would not work, because it would be out of sync with the Player display. The problem to be solved is to map an incoming timestamp from the unrolled MIDI to the original score. We don't have the benefit of our own musicxml-midi annotations in the MIDI stream, which allow to create the proper timemap. One invariant we can rely on is the measure's number attribute that gets duplicated during unrolling.

@infojunkie
Copy link
Owner Author

infojunkie commented Jul 28, 2024

The unrolling transformation accepts a renumberMeasures param that loses the original measure numbers.

For a more reliable approach, we can use measure.id as per infojunkie/musicxml-midi#46.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant