[MEI-L] Jazz Chords in MEI ?

Roland, Perry D (pdr4h) pdr4h at virginia.edu
Mon Dec 2 20:55:47 CET 2019

Hello Etienne,

Your example should look like this --

<score xmlns="http://www.music-encoding.org/ns/mei" xmlns:svg="http://www.w3.org/2000/svg">
      <chordDef xml:id="DminDom5f">
        <chordMember pname="g" oct="3"/>
        <chordMember pname="d" oct="4"/>
        <chordMember pname="f" oct="4"/>
        <chordMember pname="a" accid.ges="f" oct="4"/>
        <chordMember pname="c" oct="4"/>
      <chordDef xml:id="GDom5s">
        <chordMember pname="g" oct="4"/>
        <chordMember pname="b" oct="4"/>
        <chordMember pname="d" accid.ges="s" oct="4"/>
        <chordMember pname="f" oct="4"/>
      <symbolDef xml:id="mySymbol">
          <!-- SVG for the chord label here -->
      <staffDef n="1" lines="5" clef.shape="G" clef.line="2"/>
    <measure n="1">
      <staff n="1">
        <layer n="1">
          <note pname="a" dur="2" oct="5"/>
          <note pname="g" dur="4" oct="5"/>
          <note pname="g" dur="4" oct="5"/>
      <harm chordref="#DminDom5f" staff="1" tstamp="1" rendgrid="gridtext">D<rend rend="sup"
      <!-- Alternative markup for the preceding harmonic label -->
      <!-- <harm chordref="#DminDom5f" staff="1" tstamp="1" rendgrid="gridtext">
                <symbol altsym="#mySymbol"/>
              </harm> -->
      <harm chordref="#GDom5s" staff="1" tstamp="3" rendgrid="gridtext">G<rend rend="sup"

1. <chordMember> elements must be children of <chordTable>.

2. The bass note of the first chord should be included in the spelling-out of the chord tones.  Since the goal of the <chordDef> is to capture information related to the chord tablature grid (and not harmonic analysis), there's no need to mark the harmonic function of each "note"; that is, marking the root or any of the other chord tones isn't necessary.  If you feel otherwise, you can advocate for making <chordMember> a member of the att.harmonicFunction attribute class.  This would add the @deg attribute, which is where one can record scale degree info.

3. The superscripted portion of a label can be marked using the <rend> element. However, using markup to get the "G" to be under the "D7b5" portion of the label is straying too far from semantic markup.  In any case, I don't believe Verovio (the MEI renderer) supports the <stack> element yet.  So, if you require a precise rendition of the label that's unachievable with <rend>, you can define a symbol (using <symbolTable> and <symbolDef> elements) and refer to it inside the <harm> element.  See the commented-out <harm> element for an example.

4. I don't quite understand your last comment, but I'll address what I think you're getting at.  Please let me know if I miss the mark.  Yes, there are innumerable ways in which a given chord (say "D7b5") can be performed/voiced on the guitar.  If one doesn't care which is to be played, then a simple label can be used; that is, "D7b5".  In this case, the performer can choose how/where to play the chord and no chord definition is necessary.  However, if a particular voicing is desired, then the way to do that is to explicitly encode the chord in a <chordDef>. But this only has to be done once.  Anywhere in the piece where the chord is expected to be played, the <chordDef> can be referred to without re-encoding the note-spelling of the chord.  The label ("D7b5") and/or the chord tab grid can be rendered.  This not only reduces the amount of encoding required to represent chord tab grids, but it also decouples the label from the grid, meaning that one can use the traditional label "Cm7♭5" or "Cm7" with a superscript "o" or any other chord labeling scheme which all refer to the same grid.  You can also refer to a chord definition outside the current MEI file, which means you can put the definition of a chord in a particular inversion/voicing in an external file and refer to it from many MEI documents.  So, yes, there may be 33 different possibilities for "D7b5", but they only have to be captured once.

Hope this helps,


More information about the mei-l mailing list