[MEI-L] Jazz Chords in MEI ?

Roland, Perry D (pdr4h) pdr4h at virginia.edu
Tue Dec 3 17:13:58 CET 2019

Hi Etienne,

Of course using SVG for chord labels is not ideal, but the only other possibility is to create a renderer smart enough to handle all the various ways in which labels can be presented.  This is not so difficult for your "D7b5/G" example; that is, the behavior expected when processing the <stack> element could be tweaked, but ultimately there's a limit on how intelligent a renderer can be.

Turning to harmonic analysis based on harmonic labels, the obvious approach is to use the content of the <harm> element itself.  That is, the string "D-7b5" already conveys the information you're looking to encode -- a chord containing a diminished 5th with a root of D -- so there's no need to capture it elsewhere.  If you're interested in finding diminished chords with a root other than D, then a search for <harm> containing "-7b5" or a regular expression that matches the root, such as "[A-G][#-]?7b5", would work.

Another possibility is to use @inth on <harm> to encode the intervallic content of the chord.  For example, <harm inth="m3 d5 m7"> captures the intervals of the chord (so really "m3d5m7" is a substitute for "half-diminished"), but it doesn't capture the root.  That may be a useful feature to add, probably via a @root attribute, especially for those cases where the label doesn't indicate the root of the chord.  If that's done, then it's not unreasonable to add another attribute to hold a chord quality value, like "half-diminished", etc.  However, one could use the @type attribute to hold this data or use the @class attribute to point to a value in a formal taxonomy.

To move this discussion toward actualization, I suggest you file an issue in the MEI github repo to add @root to <harm>.

Hope this helps,


More information about the mei-l mailing list