[MEI-L] Different <expansion> versions within <choice>?

Werner Goebl goebl at mdw.ac.at
Mon Aug 19 16:44:46 CEST 2019

Dear list,

while discussing how to implement a "render expansion" functionality
into Verovio (that would render repeated sections, endings, lem, and rdg
as specified in the expansion at plist attribute), we found that there is
some need for discussion here.

As there is often more than one valid expansion of a given piece (played
with or without the repetitions, or repeating only certain marked-up
repetitions, depending on the performer's choice), we may have multiple
<expansion> elements in a given MEI encoding. Craig is using the @type
attribute to specify expansions with and without repetitions (see
example here:
or the conversion to MEI:
However, @type is a very generic attribute (according to Laurent) that
should be reserved for use-case specific functions.

As a solution, we thought of putting <expansion> within <choice> so that
it is clearly coded that only one of the many expansion elements is to
be considered at a time (if a "--render-expansion" argument is given to
Verovio or to another tool).

         <expansion xml:id="expansion-full" plist="#A #A1 #A #A2 #B #B1
               #B #B2 #C #C1 #C #C2 #A #B">
         <expansion xml:id="expansion-minimal" plist="#A #A2 #B #B2 #C #A
         <expansion xml:id="expansion-arrau1956" plist="#A #A1 #A #A2 #B
               #B2 #C #C2 #A #A1 #A #A2 #B">

(Alternatively, we discussed wrapping each expansion by <app> and <rdg>
to encode the mutually exclusive nature of the expansion element, but
finally thought that <choice> would be the simpler choice. :-)

To account for even more complex expansion situations, we thought of
allowing the expansion at plist to refer to other (sub-)expansions
alongside the currently allowed section, ending, rdg, and lem. Please
see (an excerpt of) Beethoven's Op. 35 (Eroica Variations) that has
repeated sections at different section levels (as the Introduzione is an
umbrella for several thematic sub-units, before the Theme and the
variations come). The expansions are coded where they occur (in full,
minimal, or specific to a performer or whatever) and are referred to by
expansion elements higher up in the hierarchy:
https://gist.github.com/wergo/90308c74046f28acd98b73a8fae7bd6e (Please
see below the MEI encoding for a screenshot of the MEI structure.) Each
occurrence of more than one expansion element should be surrounded by a
<choice> element.

For this, we would need to modify the MEI schema to allow <expansion> to
be contained by <choice>. Any other ideas?

We are eager to hear your opinion on this.

All the best,
Werner (Goebl), David (Weigl), Laurent (Pugin)

More information about the mei-l mailing list