Les constituants de la gravure

Si le processus de formatage se charge de décider où positionner les symboles, encore faudrait-il savoir quels symboles doivent apparaître – ou bien, quelle notation utiliser.

La notation musicale constitue une forme d’enregistrement de la musique qui a d’ailleurs évolué sur un millier d’années. La forme que nous utilisons de nos jours remonte au début de la Renaissance. Bien que ses fondements n’aient pas changé – des têtes de note réparties sur une portée à cinq lignes –, certains détails sont apparus qui permettent de rendre compte des apports de la notation contemporaine. La notation musicale couvre cinq siècles de musique, allant de la simple monodie à de gigantesques contrepoints orchestraux.

Comment intégrer un tel monstre aux si nombreux visages ? Notre solution est de clairement distinguer la notation – quels symboles utiliser – de la gravure – les placer. Pour appréhender la notation, nous l’avons disséquée en éléments simples (et programmables) : chaque type de symbole est géré par un module – ou greffon – différent. Tous ces modules sont entièrement configurables et indépendants, chacun pouvant être développé et amélioré séparément. Nous appelons ces modules des graveurs (engravers en anglais), par analogie avec ces professionnels qui mettent en forme graphiquement les idées musicales.

Le module le plus basique, qu’on appelle Note_heads_engraver, crée les têtes de notes :

[image of music]

Puis le module Staff_symbol_engraver génère les objets représentant les lignes de portée :

[image of music]

le module Clef_engraver fournit au Note_heads_engraver la hauteur à laquelle doit être placée chaque tête de note :

[image of music]

et, enfin, les hampes et leurs crochets sont gérés par le Stem_engraver :

[image of music]

Le module Stem_engraver est appelé dès qu’une tête de note apparaît. Pour chaque note rencontrée – ou groupe de notes s’il s’agit d’un accord –, un objet hampe est créé et attaché à la tête de note. Si l’on ajoute les modules en charge des ligatures, des liaisons, des accents, des barres de mesure, de la métrique et de l’armure, nous avons tout ce qui est nécessaire à une partition.

[image of music]

Le principe décrit plus haut fonctionne très bien pour de la musique monophonique, mais qu’en est-il de la polyphonie ? Dans ce cas, plusieurs voix peuvent partager la même portée :

[image of music]

Ici, la portée et les altérations sont partagées mais les hampes, liaisons, liens, etc. dépendent de chaque voix. De plus, les graveurs doivent être regroupés. Les graveurs de têtes de note, hampes, liaisons, etc. sont donc inclus dans un groupe appelé Voice context (contexte de voix), alors que l’armure, les altérations, les barres de mesures, etc. sont placées dans un groupe Staff context (contexte de portée). Dans le cas d’une polyphonie, un contexte de portée contient plusieurs contextes de voix. De même, plusieurs contextes de portée peuvent être assemblés dans un contexte de partition (Score context) :

[image of music]

Voir aussi

Référence des propriétés internes : Contexts.


Essai sur la gravure musicale automatisée v2.25.15 (branche de développement).