[MEI-L] clef as milestone element

Andrew Hankinson, Mr andrew.hankinson at mail.mcgill.ca
Tue May 31 01:18:37 CEST 2011


Hi all,

tl;dr Should clefs be considered a milestone element?

The <clef> element in MEI is currently only allowed within <clefchange> and <staffdef> elements. I can understand why, since <staff> is supposed to reflect musical linearity and not be affected by system breaks, which is more a physical artifact of page layout. So, a <clef> should only occur if a) it's part of the staff definition, or b) it's changing.

*However*, an interesting question comes up when encoding clefs at the beginning of systems. Currently, the only way to encode this is to wrap a <clef> in a <clefchange>, but for most of the time, it's not actually changing; it's only a "courtesy" clef.

So, to give an example. Suppose the following:

<staff n="1">
  <layer n="1">
    <sb n="1"/>
    <clef line="3" shape="F"/>
    <note pname="f" oct="3"/>
    <note pname="g" oct="3"/>
    ...
    <sb n="2" />
    <clef line="3" shape="F"/>
    <note pname="c" oct="3"/>
    <note pname="d" oct="3"/>

    ...etc...

This is currently invalid MEI, but I'm not really sure how to capture the clefs at the beginning of each system without a) incorporating them into a <clefchange> (semantically wrong), b) allowing <clef> directly within layer, or (really crazy) c) changing <sb> to include clef information (e.g., allow <clef> within <sb>, and/or add @clef.shape and @clef.line directly on <sb>.

What I'd like to suggest is option b), but I'm sure there's a very good reason why I'm wrong. :)

-Andrew


More information about the mei-l mailing list