GNU LilyPond – Manuel de notation: 4.5.5 Notation proportionnelle

### 4.5.5 Notation proportionnelle

LilyPond prend en charge la notation proportionnelle. Il s’agit dans ce cas de représenter la notation selon un espacement strictement relatif aux durées. Ce type d’espacement pourrait se comparer à l’utilisation de papier millimétré pour positionner les notes au fil de la portée. Certaines œuvres de la fin du XXe siècle et à l’aube du XXIe utilisent cette proportionnalité dans le but de clarifier des structures rythmiques complexes, d’aider au positionnement d’indications temporelles ou autres éléments graphiques directement dans la partition.

LilyPond met à votre disposition cinq réglages différents, qui peuvent s’utiliser conjointement ou individuellement, aux fins de mettre au point cette notation proportionnelle.

- `proportionalNotationDuration`
- `uniform-stretching`
- `strict-note-spacing`
- `\remove "Separating_line_group_engraver"`
- `\override PaperColumn.used = ##t`

Nous allons examiner, dans les différents exemples qui suivent, les effets de ces réglages et comment ils interagissent.

Commençons par cette mesure toute simple qui utilise l’espacement classique et justifiée à gauche.

>     \score {
>       <<
>         \new RhythmicStaff {
>           c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
>         }
>       >>
>     }

Vous constatez que la blanche qui entame la mesure prend moins de la moitié de l’espace. De même, les doubles croches et le quintolet de doubles (donc des vingtièmes de ronde) qui terminent cette mesure n’en occupent pas la moitié de l’espace horizontal.

En matière de gravure traditionnelle, cet espacement correspond tout à fait à nos attentes, puisque nous pouvons rogner de l’espace sur la blanche et ainsi gagner en largeur sur toute la mesure qui fait une ronde.

Par contre, si nous avons besoin d’insérer une indication temporelle ou un autre graphisme en surplomb ou en dessous de notre partition, nous aurons besoin de la notation proportionnelle. Celle-ci s’active en définissant la propriété `proportionalNotationDuration`.

>     \score {
>       <<
>         \new RhythmicStaff {
>           c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
>         }
>       >>
>      \layout {
>         \context {
>           \Score
>           proportionalNotationDuration = #(ly:make-moment 1/20)
>         }
>       }
>     }

La blanche du début et les notes plus rapides de la deuxième moitié de la mesure occupent maintenant exactement le même espace horizontal. Nous pourrions donc y insérer, au-dessus ou au-dessous, une indication temporelle ou autre graphisme.

`proportionalNotationDuration` est une propriété attachée au contexte `Score`. Rappelez-vous que vous pouvez régler les propriétés d’un contexte à trois différents endroits de votre fichier : dans un bloc `\with`, dans un bloc `\context` ou au beau milieu de la musique à l’aide de la commande `\set`. Vous pouvez donc définir `proportionalNotationDuration` selon l’une de ces trois façons, à l’instar de n’importe quelle définition de contexte.

La propriété `proportionalNotationDuration` prend en unique argument la durée de référence qui servira de base pour espacer toute la musique. La fonction Scheme `make-moment` intégrée à LilyPond prend deux arguments : un numérateur et un dénominateur qui représentent une fraction de ronde. L’appel de `(ly:make-moment 1/20)` produit donc une durée de référence égale à un vingtième de ronde. Vous pourriez tout aussi bien utiliser `(ly:make-moment 1/16)`, `(ly:make-moment 1/8)` ou `(ly:make-moment 3/97)`.

Se pose alors le problème de fournir la juste durée de référence à `proportionalNotationDuration`. Il faut en l’occurrence procéder par tâtonnement, en commençant par une valeur proche de la note la plus rapide (la durée la plus courte) du morceau. Au plus la durée de référence est petite, au plus la musique sera étalée ; à l’inverse, une durée de référence élevée produira une musique resserrée.

>     \score {
>       <<
>         \new RhythmicStaff {
>           c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
>         }
>       >>
>       \layout {
>         \context {
>           \Score
>           proportionalNotationDuration = #(ly:make-moment 1/8)
>         }
>       }
>     }

>     \score {
>       <<
>         \new RhythmicStaff {
>           c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
>         }
>       >>
>       \layout {
>         \context {
>           \Score
>           proportionalNotationDuration = #(ly:make-moment 1/16)
>         }
>       }
>     }

>     \score {
>       <<
>         \new RhythmicStaff {
>           c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
>         }
>       >>
>       \layout {
>         \context {
>           \Score
>           proportionalNotationDuration = #(ly:make-moment 1/32)
>         }
>       }
>     }

Vous ne manquerez pas de noter qu’une durée de référence trop grande, comme la croche pour la première ligne, a pour conséquence de resserrer la musique, ce qui peut aboutir à des chevauchements de têtes. Vous remarquez aussi que, par principe, la notation proportionnelle occupe beaucoup plus d’espace horizontal que l’espacement traditionnel. La notation proportionnelle met en évidence le rythme au détriment de l’espacement horizontal.

Examinons à présent le moyen d’optimiser l’espacement de n-olets en tuilage.

Reprenons notre exemple de départ, avec son espacement traditionnel, et ajoutons lui une portée incluant un autre type de n-olet.

>     \score {
>       <<
>         \new RhythmicStaff {
>           c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
>         }
>         \new RhythmicStaff {
>           \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
>         }
>       >>
>     }

L’espacement est loin d’être idéal, pour la simple raison que l’espacement régulier des notes de la portée inférieure ne s’étire pas uniformément. Il est vrai que de telles constructions complexes en n-olets sont assez rares en gravure traditionnelle, ce qui explique que les règles qu’elle applique peuvent amener à ce résultat. Le recours à `proportionalNotationDuration` permet d’arranger les choses.

>     \score {
>       <<
>         \new RhythmicStaff {
>           c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
>         }
>         \new RhythmicStaff {
>           \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
>         }
>       >>
>       \layout {
>         \context {
>           \Score
>           proportionalNotationDuration = #(ly:make-moment 1/20)
>         }
>       }
>     }

Cependant, si l’on observe de près, il est évident que les notes de la deuxième moitié du ennaolet ont tendance à s’espacer légèrement plus que celles de la première moitié. Afin d’uniformiser cet étalement, nous allons activer le `uniform-stretching`, propriété attachée au `SpacingSpanner`.

>     \score {
>       <<
>         \new RhythmicStaff {
>           c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 }
>         }
>         \new RhythmicStaff {
>           \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 }
>         }
>       >>
>       \layout {
>         \context {
>           \Score
>           proportionalNotationDuration = #(ly:make-moment 1/20)
>           \override SpacingSpanner.uniform-stretching = ##t
>         }
>       }
>     }

L’espacement sur les deux portées est maintenant correct, les relations rythmiques sont clairement perceptibles, et nous pourrions y insérer une indication temporelle ou autre graphisme selon notre envie.

Notez bien que la prise en charge de la notation proportionnelle par LilyPond demande que, dans chaque partition, soit activée la propriété `uniform-stretching` du `SpacingSpanner`. Dans le cas contraire, utiliser `proportionalNotationDuration` aura pour conséquence, entre autres, un espacement erroné lorsque vous y aurez inséré des silences invisibles skip.

Le `SpacingSpanner` est en fait un objet graphique abstrait attaché au contexte `Score`. Tout comme pour la propriété `proportionalNotationDuration`, les réglages du `SpacingSpanner` peuvent se faire à trois différents endroits de votre fichier : dans un bloc `\with`, dans un bloc `\context` ou au beau milieu de la musique à l’aide de la commande `\set`.

Gardez bien à l’esprit qu’il n’y a qu’un seul `SpacingSpanner` par `Score`. Il s’ensuit que `uniform-stretching` est soit activé, soit désactivé, et dans tous les cas pour l’intégralité de la partition. Vous pourriez toutefois avoir besoin de modifier ce comportement en cours de partition, et recourir alors à l’instruction `\newSpacingSection` – pour de plus amples détails, voir la rubrique Changement d’espacement en cours de partition.

Intéressons-nous maintenant au `Separating_line_group_engraver`, qui est désactivé pour la plupart des partitions en notation proportionnelle. Voici ce qui apparaît dans une partition traditionnelle : il y a toujours un « espace préservé » juste avant la première note de chaque portée.

>     \paper {
>       indent = #0
>     }

>     \new Staff {
>       c'1
>       \break
>       c'1
>     }

Cet espace, géré par le `Separating_line_group_engraver`, est aussi présent lorsqu’intervient un changement de métrique, d’armure ou de clef. Désactiver le `Separating_line_group_engraver` revient à réduire cet espace à zéro.

>     \paper {
>       indent = #0
>     }

>     \new Staff \with {
>       \remove "Separating_line_group_engraver"
>     } {
>       c'1
>       \break
>       c'1
>     }

Les éléments non musicaux tels que métrique, armure, clef et altérations, posent problème lorsqu’on travaille en notation proportionnelle. Bien qu’aucune notion de durée ne leur soit attachée, ces éléments « consomment » de l’espace. Différentes approches permettent cependant de gérer ce problème.

Éviter les problèmes d’espacement avec l’armure est chose aisée : il suffit qu’il n’y en ait pas ! C’est bien souvent le cas en musique contemporaine, où l’on trouve le plus d’ouvrages en notation proportionnelle. Il en va de même pour la métrique, et tout particulièrement lorsque la partition comporte un quadrillage temporel ou autres graphismes. L’absence de métrique reste cependant exceptionnelle et la plupart des partitions en notation proportionnelle laissent apparaître quelques métriques. Il est par contre pratiquement impossible de se passer de clef et d’altération.

L’une des options permettant de s’affranchir de l’espacement dû aux éléments non musicaux consiste en l’activation de la propriété `strict-note-spacing` attachée au `SpacingSpanner`. Observons les deux portées suivantes :

>     \new Staff {
>       \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
>       c''8 8 8 \clef alto d' 2
>     }

>     \new Staff {
>       \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
>       \override Score.SpacingSpanner.strict-note-spacing = ##t
>       c''8 8 8 \clef alto d' 2
>     }

Toutes deux affichent un espacement proportionnel. Cependant, la première ligne laisse apparaître un espacement plus lâche en raison de la présence d’un changement de clef. En ce qui concerne la deuxième ligne, l’espacement est strictement observé dès lors que la propriété `strict-note-spacing` a préalablement été activée. Comme vous pouvez le constater, l’activation de `strict-note-spacing` a pour conséquence que l’algorithme d’espacement ignore tout bonnement la largeur des métriques, armures, clefs et altérations.

En plus de ceux que nous venons de voir, vous trouverez d’autres réglages en usage dans la notation proportionnelle comme, entre autres,

- `\override SpacingSpanner.strict-grace-spacing = ##t`
- `\set tupletFullLength = ##t`
- `\override Beam.breakable = ##t`
- `\override Glissando.breakable = ##t`
- `\override TextSpanner.breakable = ##t`
- `\remove "Forbid_line_break_engraver"` (dans un contexte de voix)

Ces différents réglages permettent un espacement strict des notes d’ornement, d’étendre les indications de n-olet afin d’indiquer de façon évidente leurs bornes et d’autoriser le tronçonnement des extenseurs à l’occasion d’un saut de ligne ou de page. Nous vous renvoyons aux différentes rubriques associées du manuel pour chacun de ces réglages.

#### Voir aussi

Manuel de notation : Changement d’espacement en cours de partition.

Morceaux choisis : Espacements.

#### LilyPond — Manuel de notation v2.22.2 (branche stable).