[MEI-L] Encoding staff positions

Andrew Hankinson, Mr andrew.hankinson at mail.mcgill.ca
Mon Feb 7 19:51:05 CET 2011


I'm currently trying to work out a method of encoding staff system positions on a page using MEI.

Let's assume that there is a single page of unmeasured music, with four systems on the page and I want to create a <zone> element for each system describing its layout.

Currently, the <staff> element seems to indicate a continuous line of music independent of its layout in systems, with the empty <sb /> element used to indicate a break in the system layout. This empty element has an @facs attribute, but I would be hesitant to encode spatial information with an empty element.

Before I go any further, can anyone think of something I'm missing? Any possible solutions?

If not, I can see two options. 

The first is to create an element that is similar to the <span> element (call it "<mspan>"). This element would be a non-wrapping element that is generic and simply supplies a method of wrapping arbitrary information. This would be modelled after the use in the hOCR specification -- you can see an example here: http://code.google.com/p/hocr-tools/source/browse/sample.html

Thus, you might have:

<staff>
  <mspan facs="123">
 	.... system 1 ....
  </mspan>
  <sb />
  <mspan facs="456">
	.... system 2 ....
  </mspan>
  <sb />
</staff>

While the <mspan> element would be a pretty powerful addition, its semantic value is minimal. Thus, the other option might be to introduce an explicit <system> element that would be a child of the <staff> and function as an explicit wrapper for a system, in place of the empty <sb /> element; thus

<staff>
  <system n="1" facs="123">
    .... system 1 ....
  </system>
  <system n="2" facs="456">
    .... system 2 ....
  </system>
</staff>

Any ideas? Thoughts?

-Andrew





More information about the mei-l mailing list