[MEI-L] How to distinguish different instruments in the <staffDef> and <staffGrp> elements

Andrew Hankinson andrew.hankinson at mail.mcgill.ca
Fri May 22 00:58:03 CEST 2015

Hi Hans,

Welcome to MEI!

Are you looking for the equivalent of the MIDI instrument that would perform these parts? Or something else?

If you have two different staves, these are two different players, regardless of the label (a left and a right hand on a piano could be thought of as two different "players" since they're playing two separate parts). If you have a staff that is "hidden" (for example, if you have an instrument that does not play on certain pages) you still need to define the staff and give it a number. This number should be constant throughout the score. If it does not play in a specific place, it will simply not appear in the measure (as far as I understand it).

If you're in a renderer and you want to switch all the "n=2" parts off, then, you would simply hide it whenever you have <staff n="2" ...>. The "2" does not refer to the second staff on any given page; rather, it refers to the second staff defined in a score, regardless of whether it appears or not.


> On May 21, 2015, at 4:26 PM, Hans Vereyken <hans at neoscores.com> wrote:
> Hi,
> This is my first post to the MEI mailing list.
> I'm implementing MEI into our music renderer and am having trouble getting all the info I need about staves.
> I searches the documentation and mail archives for answers but wasn't able to find what I'm looking for.
> So each staff is declared seperatly, with the <staffGrp> certain groups and there symbols are declared. Although a brace usually means that the staves within are the same player (e.g. piano brace), it is not enough to be sure of it.
> In the example files I looked at 'Altenburg_Ein_feste_Burg', the relevant xml:
>                         <scoreDef meter.count="4" meter.unit="4" meter.sym="common" key.sig="0" key.mode="major">
>                             <staffGrp>
>                                 <staffGrp symbol="brace" barthru="true">
>                                     <staffDef n="1" clef.line="2" clef.shape="G" key.sig="0" lines="5" label="Trompete 1" label.abbr="Tr 1"/>
>                                     <staffDef n="2" clef.line="2" clef.shape="G" key.sig="0" lines="5" label="Trompete 2" label.abbr="Tr 2"/>
>                                     <staffDef n="3" clef.line="2" clef.shape="G" key.sig="0" lines="5" label="Trompete 3" label.abbr="Tr 3"/>
>                                 </staffGrp>
>                                 <staffGrp symbol="bracket" barthru="true">
>                                     <staffDef n="4" clef.shape="G" clef.dis="8" clef.dis.place="below" clef.line="2" label="Pos1 Tro 4" key.sig="0" label.abbr="P 1 Tr 4" lines="5"/>
>                                     <staffDef n="5" clef.line="4" clef.shape="F" lines="5" key.sig="0" label="Posaune 2" label.abbr="Pos 2"/>
>                                     <staffDef n="6" label="Posaune 3" label.abbr="Pos 3" clef.line="4" clef.shape="F" key.sig="0" lines="5"/>
>                                 </staffGrp>
>                             </staffGrp>
>                         </scoreDef>
> and: Chopin_Etude_op.10_no.9:
>                         <scoreDef meter.count="6" meter.unit="8" key.sig="4f" key.mode="minor">
>                             <staffGrp symbol="brace" barthru="true">
>                                 <staffDef n="1" clef.shape="G" lines="5" clef.line="2"/>
>                                 <staffDef n="2" clef.line="4" clef.shape="F" lines="5"/>
>                             </staffGrp>
>                         </scoreDef>
> So in both cases I have a group of staves with a brace symbol, how should I know which staves are played by which player.
> I can try to sniff the labels and by guessing the semantic meaning of 'Trompete 1,2,3' and conclude these has to be 3 different parts. In the second example this isn't possible, so this won't work (no surprise).
> In a dynamic music renderer, where you can switch parts on/off this is key information.
> How should it be done? Am I missing something?
> Thanks in advance!
> Hans Vereyken
> _______________________________________________
> mei-l mailing list
> mei-l at lists.uni-paderborn.de
> https://lists.uni-paderborn.de/mailman/listinfo/mei-l

More information about the mei-l mailing list