<div dir="ltr">Hi Andrew,<div><br></div><div>I haven't gotten to repeats in the Humdrum Importer to verovio (as they are not fully implemented in verovio yet, nor I suspect in the MIDI export :-), but I can say definitely that the visual aspect of repetition marks cannot be relied upon in the general case for performing repeats, so it is wiser to not to rely on them at all and expect a separate gestural domain encoding of the repeats for gestural applications (such as MIDI playback).</div><div><br></div><div>A classical example is minuet and trio movements.  The minuet should be repeated after the trio, but typically without taking the repeats in the second pass through the minuet.  Sometimes there is a "Da capo" or "Da capo al fine" at the end of the trio, sometimes not, but in any case this would probably be encoded as a free-form <dir>, and could be in languages other than Italian, or could be something like "Da capo al fine senza repetizione", as well as "Da capo al fine con repetizione".</div><div><br></div><div>For performance analysis, there would also be the consideration of how the performer navigated the repeats of the score.  They could take some repeats, and skip others, so you would need to keep track of that outside of any visual cues found in the score.  As an example, I found that there are at least 5 ways performers realize repeats in Chopin's mazurka in A minor, op 7 no. 2, see table 2 of:</div><div>     <a href="http://ismir2007.ismir.net/proceedings/ISMIR2007_p041_rhodes.pdf">http://ismir2007.ismir.net/proceedings/ISMIR2007_p041_rhodes.pdf</a></div><div><br></div><div>For Humdrum scores containing repeats, I add <font color="#ff9900">expansion labels</font> to the score and then indicate <font color="#ff0000">expansion lists</font> in the file: one for full repeats, and one for minimal repeats (such as only taking second endings).  This system is what the <expansion> mechanism is modeled after (as I had whined to Perry to put a similar feature into MEI).</div><div><br></div><div>Here is a simple example of how it is done in Humdrum:</div><div><br></div><div><img src="cid:ii_15600c54f8862f70" alt="Inline images 1" width="515" height="54"><br></div><div><br></div><div><br></div><div><div> **kern</div><div> *clefG2</div><div> *k[f#]</div><div> *M6/8</div><div><font color="#ff0000"> *>[A,A,B]</font></div><div><font color="#ff0000">*>norep[A,B]</font></div><div><font color="#ff9900"> *>A</font></div><div><font color="#0000ff"> 8d</font></div><div><font color="#0000ff"> =1</font></div><div><font color="#0000ff"> 4g</font></div><div><font color="#0000ff"> 8g</font></div><div><font color="#0000ff"> 8g</font></div><div><font color="#0000ff"> 8a</font></div><div><font color="#0000ff"> 8b</font></div><div><font color="#0000ff"> =2</font></div><div><font color="#0000ff"> 4a</font></div><div><font color="#0000ff"> 8e</font></div><div><font color="#0000ff"> 4f</font></div><div><font color="#0000ff"> =:|!</font></div><div><font color="#ff9900"> *>B</font></div><div><font color="#9900ff"> 8dd</font></div><div><font color="#9900ff"> =3</font></div><div><font color="#9900ff"> 4ee</font></div><div><font color="#9900ff"> 8cc</font></div><div><font color="#9900ff"> 4dd</font></div><div><font color="#9900ff"> 8b</font></div><div><font color="#9900ff"> =4</font></div><div><font color="#9900ff"> 8.cc</font></div><div><font color="#9900ff"> 16b</font></div><div><font color="#9900ff"> 8a</font></div><div><font color="#9900ff"> 4.g</font></div><div><font color="#9900ff"> =</font></div><div> *-</div><div> </div></div><div>The <font color="#ff0000">red</font> marks are the expansion lists, with the first one being the default (because it has no label, not because it is first), and the second one is labeled "norep".</div><div><br></div><div>The <font color="#ff9900">orange</font> marks are the labeled sections which the expansion list will operate on.</div><div><br></div><div>There is a tool called "thru" which can select the desired performance sequence of the score:</div><div><br></div><div><font color="#6aa84f">thru file.krn</font>  --> gives the default expansion (A, A, B)</div><div><font color="#6aa84f">thru -v norep file.krn</font> --> gives the "no-repeat" variant of the score (A, B).</div><div><br></div><div>Example output from <i>thru</i> given the default expansion list:</div><div><br></div><div><div>**kern</div><div><font color="#ff0000">*thru</font></div><div>*clefG2</div><div>*k[f#]</div><div>*M6/8</div><div><font color="#ff9900">*>A</font></div><div><font color="#0000ff">8d</font></div><div><font color="#0000ff">=1</font></div><div><font color="#0000ff">4g</font></div><div><font color="#0000ff">8g</font></div><div><font color="#0000ff">8g</font></div><div><font color="#0000ff">8a</font></div><div><font color="#0000ff">8b</font></div><div><font color="#0000ff">=2</font></div><div><font color="#0000ff">4a</font></div><div><font color="#0000ff">8e</font></div><div><font color="#0000ff">4f</font></div><div><font color="#0000ff">=:|!</font></div><div><font color="#ff9900">*>A</font></div><div><font color="#0000ff">8d</font></div><div><font color="#0000ff">=1</font></div><div><font color="#0000ff">4g</font></div><div><font color="#0000ff">8g</font></div><div><font color="#0000ff">8g</font></div><div><font color="#0000ff">8a</font></div><div><font color="#0000ff">8b</font></div><div><font color="#0000ff">=2</font></div><div><font color="#0000ff">4a</font></div><div><font color="#0000ff">8e</font></div><div><font color="#0000ff">4f</font></div><div><font color="#0000ff">=:|!</font></div><div><font color="#ff9900">*>B</font></div><div><font color="#9900ff">8dd</font></div><div><font color="#9900ff">=3</font></div><div><font color="#9900ff">4ee</font></div><div><font color="#9900ff">8cc</font></div><div><font color="#9900ff">4dd</font></div><div><font color="#9900ff">8b</font></div><div><font color="#9900ff">=4</font></div><div><font color="#9900ff">8.cc</font></div><div><font color="#9900ff">16b</font></div><div><font color="#9900ff">8a</font></div><div><font color="#9900ff">4.g</font></div><div><font color="#9900ff">=</font></div><div>*-</div></div><div><br></div><div>The expansion labels have been removed, and a<font color="#ff0000"> *thru </font>marker added to indicate that the data has been processed by the thru tool.</div><div><br></div><div>-=+Craig</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>​</div>