w3c / mnx

Music Notation CG next-generation music markup proposal.
174 stars 19 forks source link

Support standard musical form elements #101

Open joeberkovitz opened 6 years ago

joeberkovitz commented 6 years ago

Support all musical-form-related features in MusicXML including repeats, segnos, codas and so forth.

99 tracks the more specific issue of generalizing musical form through features such as jumps and subroutines.

clnoel commented 6 years ago

The first thing we need to decide is: Are the <segno/> and <coda/> tags directly semantic, or are they merely the elements we are using to represent these common musical symbols when they are in the middle of (or the entirety of) an instruction, since they are not ascii characters we can add to a text string?

mdgood commented 6 years ago

MusicXML uses the <segno> and <coda> elements for visual representations of the symbols, and the <sound> element for playback. This function might work better if we remove or reduce that duality, similar to what MNX has done in other areas.

We might want separate semantic instructions for segno, coda, D.S., D.C., jump to segno, jump to coda, forward repeat, backward repeat, endings, and fine. These semantic instructions could then contain a mix of text and musical symbols. Playback that is handled by the dacapo, dalsegno, coda, tocoda, fine, forward-repeat, and time-only attributes of the sound element could be integrated into these semantic elements.

As @clnoel suggested in #99, semantic repeat information could be moved out of the <barline> element where the <repeat> and <ending> elements live, and into more general direction structures.

mogenslundholm commented 6 years ago

I have made some simple repeat use cases in MusicXML. I will try to find semantic for these and test if these definitions will work for combined cases. 1 simple repeat-1 Expected to play: ABCBCD 2 _simple closed volta-1 Expected to play: ABCBDE 3 simple open volta-1 Expected to play:ABCBDE 4 _double_open_volta-1 Expected to play:ABCBDEFEG 5 _double_closed_volta-1 Expected to play: ABCBDEFEGH 6 _double_nested_closed_volta-1 Expected to play: ABCBDEFEGH 7 _repeat_plus_closed_volta-1 Expected to play: ABCEFBDEF