Introduction à MEI

Cet article, premier disponible en français sur le sujet, vise à introduire brièvement MEI, et à le replacer au sein de la sphère de la partition numérique.

MEI qu’est-ce que c’est ?

logoMEI

MEI – Music Encoding Initiative – est un formalisme de notation et de métadonnées musicales, reposant sur un dialecte XML, développé par une communauté de musicologues.

A la différence de MusicXML, dont l’objectif principal est de véhiculer la partition numérique telle qu’elle a besoin d’être rendue dans un éditeur ou un lecteur de partition en vue de son exécution, MEI essaie d’adresser un champ plus large incluant les problématiques de la musicologie, et s’adresse donc, au-delà des instrumentistes, aux éditeurs, bibliothécaires, musées et enseignants, concernés par la préservation du patrimoine musical et la pédagogie.

On trouve, par exemple dans MEI, en plus des informations de la notation musicale elle-même, un grand nombre de métadonnées : historiques (sources), d’autres relatives à l’exécution des pièces, ainsi que des informations analytiques.

Par ailleurs, MEI est adapté à son utilisation pour la génération sonore et sa structure facilite les outils de recherche.

Enfin, MEI est dérivé des concepts de TEI – Text Encoding Initiative – et permet d’ailleurs l’intégration de ces deux dialectes au sein d’un même document. MEI s’en est même inspiré par son nom…

Le langage s’inscrit donc dans l’optique d’encoder des textes musicaux de toutes origines, et pour tous les systèmes.

Quelle musique permet de représenter MEI ?

MEI permet de représenter la notation musicale occidentale (CWMN – Common Western Musical Notation –) (à partir du XVIIe siècle), mais peut aussi encoder les neumes (notation du XII-XIIIe siècle), la notation mesurée (ou mensurale) du XIIIe-XVIe siècle, et différents types de tablatures.

Comment se positionne MEI par rapport à MusicXML ?

En dehors des différences notables déjà citées plus haut, et pour ce qui est de la notation musicale, l’objectif de MEI est d’encoder la sémantique des partitions. Il a donc plutôt tendance à déléguer les problématiques de rendu au logiciel qui en fera l’interprétation, même si le langage permet d’aller assez loin dans la représentation graphique.

Mais une autre différence est son utilisation de la grammaire XML.

MEI utilise en particulier des attributs au lieu d’éléments feuilles favorisés par MusicXML.

Pour donner un exemple, la signature rythmique et l’armure sont donnés en MusicXML par des sous-éléments d’ « attributes », lui-même sous-élément de « measure » :

<attributes>
…
 <key>
   <fifths>0</fifths>
 </key>
 <time>
    <beats>4</beats>
    <beat-type>4</beat-type>
 </time>
…
</attributes>

Alors qu’un seul élément « scoreDef » encode toutes ces informations dans des attributs en MEI :

<scoreDef meter.count="4" meter.unit="4" key.sig="0">

L’avantage à l’utilisation d’attributs à la place des éléments, est la possibilité de les contraindre par leur type, ainsi que de prévoir des valeurs par défaut, très utiles.

Cela rend également les fichiers MEI nettement moins volumineux que leurs équivalents MusicXML.

A contrario, l’avantage de l’utilisation d’éléments dans MusicXML permet de rendre ce dialecte plus évolutif, et souvent plus lisible.

A quoi ressemble la syntaxe MEI?

Reprenons l’exemple du Do « serrure » :

do-serrure-lilypond-std

Do serrure

En MEI, le fichier le représentant est le suivant, sachant que :

  • Les notes respectent la notation alphabétique anglo-saxonne (A à G)
  • Les commentaires ci-dessous ne reflètent que les symboles visibles de la partition.

doSerrureMEI

Contrairement à MusicXML, il y a un niveau important d’imbrication des éléments, qui laisse supposer, comme dit précédemment, que les possibilités d’expression de MEI sont plus grandes que celles de MusicXML.

A noter :

La durée de la note est encodée selon le standard CWMN :

  • 1 ronde
  • 2 blanche
  • 4 noire
  • 8 croche
  • 16 double croche
  • jusqu’à 2048 (octuple croche)

Structure générale d’une partition MEI

Même en restant à la surface de la description structurelle d’une partition MEI, nous allons voir que le format permet de stocker non seulement la notation musicale qui est bien évidemment l’élément central, mais nombre d’informations relatives à la partition, qui gravitent autour…

Principe de numérotation des éléments

La plupart des éléments de la grammaire XML de MEI disposent d’un attribut xml:id permettant de l’identifier de manière unique.

Comme nous le verrons plus tard, cela permet d’établir des liens très utiles entre différentes parties du document MEI : Entre une ou plusieurs mesures et une image représentant le fragment de la partition originale manuscrite du compositeur, ou entre ces mêmes mesures et une partie délimitée par deux bornes temporelles, d’un fichier audio d’une interprétation de l’œuvre. Les possibilités sont nombreuses…

Note sur les diagrammes de structuration MEI

Les diagrammes hiérarchiques des éléments sont parfois simplifiés, afin de ne pas alourdir le discours, mais les éléments principaux sont présents.

Un fichier MEI est consitué des deux éléments principaux : <meiHead> et <music>.

Elément meiHead

element-meiHead

Contient l’en-tête de la partition, c’est à dire toutes les méta-données afférentes.

Eléments altId

Identifiants du fichier MEI

Elément fileDesc

Contient le titre du fichier, la mention de ses créateurs, des informations sur l’éditeur, et la publication, l’appartenance au domaine public ou non, et la description des sources utilisées pour obtenir cette transcription MEI.

Elément encodingDesc

Permet d’expliciter la façon dont le document encodé a été obtenu. Par exemple s’il est issu d’une transformation depuis un autre format, par exemple MusicXML, PDF, … via un autre logiciel, etc..

Elément workDesc

On trouvera dans cet élément, les informations relatives à l’œuvre : son titre, son ou ses compositeurs, librettistes, etc … sa classification (forme, instruments, etc…). Sont présents si nécessaire, les incipits (premières mesures de la mélodie) qu’on trouvera généralement à la table des matières du document restitué.

Mention également de la clef, de la signature rythmique et du tempo de la pièce, mais qui ne sont utilisées que comme données bibliographiques.

La distribution (rôles dans un opéra par exemple), se trouve également dans cette rubrique.

Elément revisionDesc

Contient l’historique complet des révisions apportées au fichier MEI lui-même.

Elément music

Elément body

element-body

C’est le sous-élément principal de l’élément music, car il contient les données de la notation musicale.

Il ne contient lui-même que le sous-élément mdiv (pour musical division), qui peut par exemple servir à séparer les différents mouvements d’une symphonie, les différents actes et scènes d’un opéra, etc ….

L’élément mdiv est lui-même constitué des deux éléments score et parts.

A la différence de MusicXML qui permet l’une ou l’autre des représentations d’une partition : temporelle ou par parties séparées (voir Structure générale des fichiers MusicXML) , mais pas les deux en même temps et nécessite une conversion du fichier pour passer d’une représentation à une autre, MEI permet d’encoder ces deux vues au sein du même fichier car il n’est pas nécessairement possible et même souhaitable de convertir un format dans un autre.

Il en découle que l’élément score représente la notation verticale (timewise en MusicXML), alors que l’élément parts, contient toutes les parties instrumentales (partwise MusicXML).

Il en résulte également que les éléments score et part ont la même structure.

Elements score et part

element-score

L’élément scoreDef mentionne à nouveau l’armure, la signature rythmique, le tempo (mais qui sont là pour être associées aux notes que l’on trouvera dans la partie section), et ses sous-éléments staffGrp et staffDef permettent respectivement de définir des parties à portées multiples (ex piano), et les portées simples.

Elément section

element-section

staff fait référence à une portée définie via l’élément staffDef. Il est possible de décrire les notes d’une même mesure sur plusieurs portées en même temps.

Enfin, le dernier élément de structuration avant la note ou l’accord est layer, qui permet de grouper les notes et accords d’une même ligne mélodique.

L’élément note lui-même dispose de 52 attributs dont les plus importants sont la hauteur (pname), le numéro de l’octave (oct), la durée (dur et dots : notes pointées), les altérations (accid), les articulations (artic), les ornements (ornam), le numéro de la portée (staff, si la note doit s’afficher accidentellement sur une autre portée que celle au sein de laquelle elle est définie), et enfin la position de la hampe (stem.dir).

Elément facsimile

Permet d’associer à la partition une représentation graphique (généralement une image), d’un document source (fac-similé), qu’il est possible de référencer depuis l’élément encodé de la partition. Par exemple une mesure de la partition peut contenir l’identifiant de l’image scannée de la même mesure dans le manuscrit original.

Elément performance

Cet élément et ses sous-éléments, permettent de référencer les ressources (vidéo, audio) d’interprétations de l’œuvre qui constitue la partition MEI.

Il est même possible, plus finement, de décrire les temps de début et de fin au sein de la ressource audio ou vidéo, correspondant à une partie précise de la partition.

Elément front

Au même titre que l’élément back, sert à décrire les notes de l’éditeur et les textes de début de partition des éditions critiques.

Elément back

Sert à décrire les notes et texte en fin de partition.

Elément group

L’élément group sert d’élément de structuration pour contenir plusieurs pièces musicales autonomes, par exemple si le fichier MEI dans son ensemble représente un recueil de pièces variées ou l’œuvre complète d’un compositeur.

Il contient donc une liste d’éléments music.

Un extrait de partition plus significatif

Reprenons le début de la définition de chaque partie sur « Après un rêve … » de Gabriel Fauré, afin de voir comment les éléments MEI et leur attributs sont mis en jeu :

apres-un-reve-MEI

On notera sur cet extrait que :

  • L’élément scoreDef englobant contient un staffGrp contenant un staffDef définissant la portée 1 (chant), et un autre sous-groupe (staffGrp) contenant deux staffDef, pour le piano main droite (portée 2), et pour la main gauche (portée 3).
  • Les symboles de crescendo/diminuendo commencent et terminent à des endroits précis
  • Une note liée, a une note initiale (i) et une note terminale (t)
  • Les altérations sont notées : s(♯), f(♭), ss(♯♯), ff(♭♭), n(♮),

Les logiciels dédiés à MEI

Il existe des outils pour MEI, mais ils ne traitent pas individuellement la totalité du langage.

Visaliseur MEI

icon_verovio

Verovio offre un visualiseur MEI en ligne, mais fournit également une librairie Javascript et une extension Python, produisant du code SVG, afin de pouvoir afficher une partition MEI dans un browser récent.

A noter que Verovio prend en compte les fontes musicales SMuFL.

Editeurs de partition MEI

icon_meise

L’éditeur MEISE (MEI Score Editor), qui est un plugin basé sur l’environnement de développement Eclipse, permet d’éditer et de visualiser des fichiers afin de vérifier leur contenu, et les modifier.

Cet éditeur est semi-graphique, à l’instar de Frescobaldi (voir Editeurs semi-graphiques dans la page Introduction à LilyPond), c’est à dire que la modification ne se fait que dans la structure XML, les changements étant répercutées dans la visualisation se trouvant en regard.

A noter que MEISE ne permet que d’éditer la notation musicale et ne prend pas en compte (ignore) les métadonnées de l’élément meiHead vu précédemment.

Un outil existe pour cela : l’éditeur de métadonnées MerMEId.

Editeur de métadonnées MEI

MerMEId (Metadata Editor and Repository for MEI Data) est une application servant à éditer, à gérer et à prévisualiser les métadonnées d’un fichier MEI, en particulier les aspects bibliographiques.

Il est donc complémentaire de MEISE pour obtenir un fichier MEI complet contenant notation musicale et métadonnées.

Transcription de/vers MEI

Il existe à ce jour des convertisseurs entre les formats MusicXML et MEI, mais pas d’outils intégrés permettant de faire ces conversions.

Il faut avoir recours à des scripts XSLT dont l’invocation nécessite un environnement un peu technique.

En particulier la transformation MusicXML vers MEI requière que le fichier MusicXML soit au format timewise (voir Structure générale des fichiers MusicXML). Si cela n’est pas le cas, il est donc nécessaire de faire au préalable une première transformation en XSLT depuis le format partwise vers le format timewise, avant de transformer le résultat obtenu par application du deuxième script XSLT MusicXML vers MEI.

Voir https://de.dariah.eu/workflow-1#stylesheets pour plus de détails.

Partitions MEI

Outre les exemples fournis sur le site de MEI lui-même (http://music-encoding.org/documentation/samples), peu de partitions existent encore dans ce format. On lui souhaite un

En guise de conclusion

Notre introduction s’est limitée volontairement à l’essentiel, mais MEI regorge d’autres possibilités, comme dans le domaine de la CWMN, de représenter les ossia, c’est à dire les passages alternatifs proposés par le compositeur, souvent restitués sur la partition par une portée supplémentaire de plus petite taille, mais également les neumes, la notation mensurale, etc …

L’objectif de MEI est donc vaste. Non seulement celui de représenter la notation musicale à travers les âges et les cultures, mais aussi tout ce que l’on trouve également comme à-côtés dans un recueil de partitions papier, sans compter l’aspect bibliographique et musicologique.

C’est la raison pour laquelle la majorité des logiciels de lecture et d’édition de partitions numérique se contentent aujourd’hui de MusicXML, format d’échange qui se focalise presque exclusivement sur la notation musicale, et voient plus MEI comme un langage de musicologues…

Par ailleurs, l’outillage productif autour de MEI est aujourd’hui encore en chantier, ce qui est certainement un frein à son développement.

Mais l’histoire de la partition numérique n’en est qu’à ses débuts, et l’avenir nous dira si ce format plus large, plus universel, ne trouvera pas sa préférence auprès des éditeurs de musique…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *