Notation musicale
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 – où 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 différent. Tous ces modules coopèrent par le biais de l'architecture de LilyPond. Ils sont entièrement configurables et indépendants, chacun pouvant être développé et amélioré séparément.
- Le module le plus basique crée les têtes de notes :
Ce module crée des objets graphiques à partir d'éléments musicaux. Par référence aux graveurs (engravers en anglais), professionels qui mettent en forme graphiquement les idées musicales, ce module s'appelle Note_head_engraver.
- Le module Staff_symbol_engraver génère les objets
représentant les lignes de portée :
-
Le module Clef_engraver fournit à Note_head_engraver
la hauteur à laquelle doit être placée chaque tête de note :
-
Les hampes et leurs crochets sont gérés par le module
Stem_engraver :
Ce module est appelé dès qu'une tête de note est utilisée. Pour chaque note rencontrée – ou groupe de notes pour les accords –, un objet hampe est créé et attaché à la tête de note.
-
Liens, liaisons et accents sont gérés par des graveurs différents. De même
que le Stem_engraver, ils créent des objets et les attachent
aux hampes, têtes de notes, etc. :
-
Les altérations, barres de mesures, chiffrages de mesure et armures
possèdent chacun un graveur dédié :
Le module Accidental_engraver est le plus complexe : il doit prendre en compte l'armure, les hauteurs de notes, les liaisons de prolongation et les barres de mesures, afin de décider quand imprimer une altération.
Notation polyphonique
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 :
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 notes, 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 ») :
Suite : L'art de la gravure : comment gravaient-ils la musique manuellement ?