GNU LilyPond – Manuel de notation: 1.2.3 Gravure du rythme

### 1.2.3 Gravure du rythme

#### Métrique

Le chiffre de mesure indique le mètre d’une pièce : une alternance régulière de temps forts et de temps faibles. Il est indiqué par une fraction au début de la portée :

>     \time 2/4 c2
>     \time 3/4 c2.

La métrique est imprimée en début de morceau, et à chaque fois qu’elle est modifiée. Si cette modification intervient au niveau d’un saut de ligne, une métrique « de précaution » sera imprimée avant de passer à la ligne suivante. Ce comportement par défaut peut être modifié, comme indiqué au chapitre Visibilité des objets.

>     \time 2/4
>     c2 c
>     \break
>     c c
>     \break
>     \time 4/4
>     c c c c

Le symbole de métrique utilisé pour les mesures à 2/2 et 4/4 peut être changé pour un style numérique :

>     % Default style
>     \time 4/4 c1
>     \time 2/2 c1
>     % Change to numeric style
>     \numericTimeSignature
>     \time 4/4 c1
>     \time 2/2 c1
>     % Revert to default style
>     \defaultTimeSignature
>     \time 4/4 c1
>     \time 2/2 c1

Les métriques anciennes font l’objet d’un chapitre particulier.

En plus de déterminer la métrique qui sera imprimée, la commande `\time` réglera aussi les valeurs par défaut des propriétés `baseMoment`, `beatStructure` et `beamExceptions`. Les valeurs prédéterminées par défaut de ces différentes propriétés sont inscrites dans le fichier ‘`scm/time-signature-settings.scm`’. Vous pouvez les modifier de la manière suivante :

>     \score {
>       \relative c' {
>         \overrideTimeSignatureSettings
>           #'(4 . 4)  % timeSignatureFraction
>           #'(1 . 4)  % baseMomentFraction
>           #'(3 1)    % beatStructure
>           #'()       % beamExceptions
>         \time 4/4
>         \repeat unfold 8 { c8 } |
>       }
>     }

`\overrideTimeSignatureSettings` prend quatre arguments :

1. `timeSignatureFraction`, un doublet Scheme indiquant la métrique,
2. `baseMomentFraction`, un doublet Scheme comprenant les numérateur et dénominateur de la fraction indiquant la base de la pulsation,
3. `beatStructure`, une liste Scheme indiquant la structure de cette pulsation, en unité de base,
4. `beamExceptions`, une liste associative des règles de ligature pour cette métrique, en dehors de celles basées sur le temps comme indiqué à la rubrique Définition des règles de ligature automatique.

Le contexte auquel doivent s’appliquer les dérogations introduites par un `\overrideTimeSignatureSettings` doit exister avant l’appel de ces réglages. Autrement dit, vous devrez explicitement mentionner le contexte avant que ne survienne l’appel à `\overrideTimeSignatureSettings` s’il n’y a pas déjà d’élément musical.

>     \score {
>       \relative c' {
>         % This call will fail because the context isn't yet instantiated
>         \overrideTimeSignatureSettings
>           #'(4 . 4)  % timeSignatureFraction
>           #'(1 . 4)  % baseMomentFraction
>           #'(3 1)    % beatStructure
>           #'()       % beamExceptions
>         \time 4/4
>         c8^\markup {"Beamed (2 2)"}
>         \repeat unfold 7 { c8 } |
>         % This call will succeed
>         \overrideTimeSignatureSettings
>           #'(4 . 4)  % timeSignatureFraction
>           #'(1 . 4)  % baseMomentFraction
>           #'(3 1)    % beatStructure
>           #'()       % beamExceptions
>         \time 4/4
>         c8^\markup {"Beamed (3 1)"}
>         \repeat unfold 7 { c8 } |
>       }
>     }

Vous pouvez revenir à tout moment aux réglages prédéterminés d’une métrique :

>     \score{
>       \relative c' {
>         \repeat unfold 8 { c8 } |
>         \overrideTimeSignatureSettings
>           #'(4 . 4)  % timeSignatureFraction
>           #'(1 . 4)  % baseMomentFraction
>           #'(3 1)    % beatStructure
>           #'()       % beamExceptions
>         \time 4/4
>         \repeat unfold 8 { c8 } |
>         \revertTimeSignatureSettings #'(4 . 4)
>         \time 4/4
>         \repeat unfold 8 { c8 } |
>       }
>     }

Le fait de déplacer du contexte `Score` au contexte `Staff` à la fois le `Timing_translator` et le `Default_bar_line_engraver` permet d’obtenir des réglages particuliers pour les différentes portées d’un regroupement :

>     \score {
>       \new StaffGroup <<
>          \new Staff {
>             \overrideTimeSignatureSettings
>               #'(4 . 4)  % timeSignatureFraction
>               #'(1 . 4)  % baseMomentFraction
>               #'(3 1)    % beatStructure
>               #'()       % beamExceptions
>             \time 4/4
>             \repeat unfold 8 {c''8}
>          }
>          \new Staff {
>             \overrideTimeSignatureSettings
>               #'(4 . 4)  % timeSignatureFraction
>               #'(1 . 4)  % baseMomentFraction
>               #'(1 3)    % beatStructure
>               #'()       % beamExceptions
>             \time 4/4
>             \repeat unfold 8 {c''8}
>          }
>       >>
>       \layout {
>         \context {
>           \Score
>           \remove "Timing_translator"
>           \remove "Default_bar_line_engraver"
>         }
>         \context {
>           \Staff
>           \consists "Timing_translator"
>           \consists "Default_bar_line_engraver"
>         }
>       }
>     }

#### Commandes prédéfinies

`\numericTimeSignature`, `\defaultTimeSignature`.

#### Morceaux choisis

Changement de métrique sans affecter les règles de ligature

La commande `\time` gère les propriétés `timeSignatureFraction`, `beatLength`, `beatGrouping` et `measureLength` dans le contexte `Timing`, normalement rattaché à `Score`. Le fait de modifier la valeur de `timeSignatureFraction` aura pour effet de changer l’apparence du symbole affiché sans pour autant affecter les autres propriétés de la métrique :

>     \markup {
>       This snippet is deprecated as of 2.13.5 and will be removed in 2.14
>     }

Métrique décomposée

Des métriques telles que « 5/8 » peuvent s’interpréter sous une forme décomposée — « 3/8 + 2/8 » par exemple — qui combine plusieurs métriques. LilyPond est capable de rendre ce type de notation, plus facile à lire et à interpréter, en imprimant cette métrique composite et en adaptant les règles de ligature automatique en conséquence.

>     #(define ((compound-time one two num) grob)
>        (grob-interpret-markup grob
>                               (markup #:override '(baseline-skip . 0) #:number
>                                       (#:line ((#:column (one num))
>                                                #:vcenter "+"
>                                                (#:column (two num)))))))

>     \relative c' {
>       \override Staff.TimeSignature #'stencil = #(compound-time "2" "3" "8")
>       \time 5/8
>       \set Staff.beatStructure = #'(2 3)
>       c8 d e fis gis
>       c8 fis, gis e d
>       c8 d e4 gis8
>     }

Affichage seulement du numérateur d’une métrique (au lieu d’une fraction)

La métrique est parfois indiquée non pas par une fraction (p.ex. 7/4) mais simplement par son numérateur (7 dans ce cas). L’instruction `\override Staff.TimeSignature #'style = #'single-digit` permet de déroger au style par défaut de manière permanente – un `\revert Staff.TimeSignature #'style` d’annuler ces modifications. Lorsque cette métrique sous le forme d’une seul chiffre ne se présente qu’une seule fois, il suffit de faire précéder l’instruction `\override` d’un simple `\once`.

>     \relative c'' {
>       \time 3/4
>       c4 c c
>       % Change the style permanently
>       \override Staff.TimeSignature #'style = #'single-digit
>       \time 2/4
>       c4 c
>       \time 3/4
>       c4 c c
>       % Revert to default style:
>       \revert Staff.TimeSignature #'style
>       \time 2/4
>       c4 c
>       % single-digit style only for the next time signature
>       \once \override Staff.TimeSignature #'style = #'single-digit
>       \time 5/4
>       c4 c c c c
>       \time 2/4
>       c4 c
>     }

#### Voir aussi

Glossaire musicologique : métrique.

Manuel de notation : Métriques anciennes, Gestion du temps.

Morceaux choisis : Rythme.

Références des propriétés internes : TimeSignature, Timing_translator.

#### Indication métronomique

Une indication métronomique s’insère tout simplement comme ceci :

>     \tempo 4 = 120
>     c2 d
>     e4. d8 c2

Lorsque le réglage précis du métronome est laissé à l’appréciation de l’exécutant, vous pouvez cependant lui fournir une plage :

>     \tempo 4 = 40 ~ 46
>     c4. e8 a4 g
>     b,2 d4 r

Vous pouvez préférer une indication textuelle :

>     \tempo "Allegretto"
>     c4 e d c
>     b4. a16 b c4 r4

Lorsque vous combinez des indications métronomiques sous forme textuelle et numérique, l’indication numérique sera placée entre parenthèses :

>     \tempo "Allegro" 4 = 160
>     g4 c d e
>     d4 b g2

En matière d’indication textuelle, vous pouvez utiliser n’importe quel objet de type markup, comme ici :

>     \tempo \markup { \italic Faster } 4 = 132
>     a8-. r8 b-. r gis-. r a-. r

Mentionner une indication textuelle vide vous permet de mettre entre parenthèses l’indication numérique :

>     \tempo "" 8 = 96
>     d4 g e c

#### Morceaux choisis

Impression du métronome et des repères sous la portée

Les indications de tempo et les marques de repère s’impriment par défaut au-dessus de la portée. Le fait de régler en conséquence la propriété `direction` des objets `MetronomeMark` ou `RehearsalMark` les placera au-dessous de la portée.

>     \layout { ragged-right = ##f }

>     {
>       % Metronome marks below the staff
>       \override Score.MetronomeMark #'direction = #DOWN
>       \tempo 8. = 120
>       c''1

>       % Rehearsal marks below the staff
>       \override Score.RehearsalMark #'direction = #DOWN
>       \mark \default
>       c''1
>     }

Changement de tempo sans indication sur la partition

Vous pouvez indiquer un changement de tempo pour le fichier MIDI sans pour autant l’imprimer. Il suffit alors de le rendre invisible aux interprètes.

>     \score {
>       \new Staff \relative c' {
>         \tempo 4 = 160
>         c4 e g b
>         c4 b d c
>         \set Score.tempoHideNote = ##t
>         \tempo 4 = 96
>         d,4 fis a cis
>         d4 cis e d
>       }
>       \layout { }
>       \midi { }
>     }

Création d’une indication métronomique sous forme d’étiquette

Vous pouvez créer des indications de tempo sous la forme d’étiquettes textuelles – des objets `markup` – notamment des équivalences. Cependant, elles n’apparaîtront pas dans le fichier MIDI.

>     \relative c' {
>       \tempo \markup {
>         \concat {
>           (
>           \smaller \general-align #Y #DOWN \note #"16." #1
>           " = "
>           \smaller \general-align #Y #DOWN \note #"8" #1
>           )
>         }
>       }
>       c1
>       c4 c' c,2
>     }

Pour de plus amples détails, veuillez consulter Mise en forme du texte.

#### Voir aussi

Glossaire musicologique : métronome, indication métronomique, indication du tempo, marque de métronome.

Manuel de notation : Mise en forme du texte, Sortie MIDI.

Morceaux choisis : Notation sur la portée.

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

#### Levées

Les mesures incomplètes, telles que les anacrouses ou levées, doivent être entrées avec la commande `\partial`. La syntaxe de cette commande est

>     \partial durée

où `durée` correspond à la valeur rythmique devant être ajoutée avant la première mesure complète :

>     \partial 4 e4 |
>     a2. c,4 |

Une mesure incomplète peut être de n’importe quelle longueur inférieure à la mesure complète :

>     \partial 8*3 c8 d e |
>     a2. c,4 |

Le programme traduit cette commande `\partial durée` en

>     \set Timing.measurePosition = -durée

Par exemple, `\partial 8*3` est traduit en :

>     \set Timing.measurePosition = #(ly:make-moment -3 8)

La propriété `measurePosition` contient un nombre rationnel qui indique, à ce point précis, où l’on en est de la mesure. Notez qu’il s’agit du résultat d’une soustraction ; `\partial 4` signifie, pour le programme : « Dans cette mesure, il reste juste une noire ».

#### Voir aussi

Glossaire musicologique : anacrouse.

Manuel de notation : Notes d’ornement.

Morceaux choisis : Rythme.

Références des propriétés internes : Timing_translator.

#### Problèmes connus et avertissements

`\partial` n’est destiné à être utilisé qu’en début de pièce. Si on l’utilise ailleurs qu’au début, des messages d’erreurs peuvent s’afficher. Utilisez plutôt `\set Timing.measurePosition` en pareil cas.

#### Musique sans métrique

Les barres de mesure et les numéros de mesure sont calculés automatiquement, ce qui n’est pas souhaitable dans le cas d’une musique non mesurée – les cadences par exemple. Les commandes `\cadenzaOn` et `\cadenzaOff` permettent de désactiver et de rétablir ce comportement automatique.

>     c4 d e d
>     \cadenzaOn
>     c4 c d8[ d d] f4 g4.
>     \cadenzaOff
>     \bar "|"
>     d4 e d c

La numérotation reprend dès la fin d’une cadence, comme si celle-ci n’avait pas existé :

>     % Show all bar numbers
>     \override Score.BarNumber #'break-visibility = #all-visible
>     c4 d e d
>     \cadenzaOn
>     c4 c d8[ d d] f4 g4.
>     \cadenzaOff
>     \bar "|"
>     d4 e d c

L’instruction `\cadenzaOn` désative les ligatures automatiques ; elles seront réactivées après un `\cadenzaOff`. Toutes les ligatures devront donc être indiquées de manière explicite tout au long de la cadence – voir Barres de ligature manuelles).

>     \repeat unfold 8 { c8 }
>     \cadenzaOn
>     \repeat unfold 5 { c8 }
>     \bar"|"
>     \cadenzaOff
>     \repeat unfold 8 { c8 }

Notez bien que ces commandes prédéfinies affecteront toutes les portées de la partition, même si vous ne les placez que dans un simple contexte `Voice`. Pour éviter ce désagrément, transférez le `Timing_translator` du contexte `Score` au contexte `Staff`, comme indiqué au chapitre Notation polymétrique.

#### Commandes prédéfinies

`\cadenzaOn`, `\cadenzaOff`.

#### Voir aussi

Glossaire musicologique : cadence.

Manuel de notation : Visibilité des objets, Notation polymétrique.

Morceaux choisis : Rythme.

#### Problèmes connus et avertissements

LilyPond ne change de ligne ou de page qu’au niveau des barres de mesure. Si votre musique non mesurée s’étend sur plus d’une ligne, il vous faudra insérer des barres de mesure invisibles,

>     \bar ""

pour indiquer où des sauts de ligne peuvent prendre place.

Au risque d’obtenir des messages d’erreur inhabituels, il est fortement recommandé de créer explicitement un contexte `Voice` lorsqu’un morceau débute par un `\cadenzaOn`.

>     \new Voice {
>       \relative c' {
>         \cadenzaOn
>         c16[^"Solo Free Time" d e f] g2.
>         \bar "||"
>         \cadenzaOff
>       }
>     }

#### Notation polymétrique

LilyPond gère les métriques composites, aussi bien de manière explicite que de manière détournée – modification de l’indicateur de métrique et échelonnement de la durée des notes.

Portées aux métriques différentes, mesures d’égale longueur

Il suffit, pour obtenir cette forme de notation, de tout d’abord affecter une même métrique aux différentes portées. L’indicateur de métrique sera ensuite remplacé dans chacune des portées par un quotient donné en argument à la propriété `timeSignatureFraction`. La durée des notes sera enfin proratisée selon la métrique commune (voir Métrique) grâce à la fonction `\scaleDurations`, qui s’utilise tout comme la commande `\times` – sans toutefois créer de crochet de nolet (voir Changement d’échelle des durées).

L’exemple suivant utilise parallèlement des mesures à 3/4, 9/8 et 10/8. Pour la deuxième portée les durées sont multipliées par 2/3 de telle sorte que 2/3 * 9/8 = 3/4 ; pour la troisième elles sont multipliées par 3/5, de telle sorte que 3/5 * 10/8 = 3/4. Les ligatures devront être explicites, la fonction d’échelonnement venant perturber les règles de ligature automatique.

>     \relative c' <<
>       \new Staff {
>         \time 3/4
>         c4 c c |
>         c c c |
>       }
>       \new Staff {
>         \time 3/4
>         \set Staff.timeSignatureFraction = #'(9 . 8)
>         \scaleDurations #'(2 . 3)
>         \repeat unfold 6 { c8[ c c] }
>       }
>       \new Staff {
>         \time 3/4
>         \set Staff.timeSignatureFraction = #'(10 . 8)
>         \scaleDurations #'(3 . 5) {
>           \repeat unfold 2 { c8[ c c] }
>           \repeat unfold 2 { c8[ c] } |
>           c4. c4. \times 2/3 { c8[ c c] } c4
>         }
>       }
>     >>

Portées aux métriques différentes, mesures de longueur inégale

Il arrive aussi que chaque portée ait sa propre métrique. Vous y parviendrez en déplaçant le `Timing_translator` et le `Default_bar_line_engraver` dans le contexte `Staff`.

>     \layout {
>       \context {
>         \Score
>         \remove "Timing_translator"
>         \remove "Default_bar_line_engraver"
>       }
>       \context {
>         \Staff
>         \consists "Timing_translator"
>         \consists "Default_bar_line_engraver"
>       }
>     }

>     % Now each staff has its own time signature.

>     \relative c' <<
>       \new Staff {
>         \time 3/4
>         c4 c c |
>         c c c |
>       }
>       \new Staff {
>         \time 2/4
>         c4 c |
>         c c |
>         c c |
>       }
>       \new Staff {
>         \time 3/8
>         c4. |
>         c8 c c |
>         c4. |
>         c8 c c |
>       }
>     >>

#### Morceaux choisis

Métrique décomposée

Des métriques telles que « 5/8 » peuvent s’interpréter sous une forme décomposée — « 3/8 + 2/8 » par exemple — qui combine plusieurs métriques. LilyPond est capable de rendre ce type de notation, plus facile à lire et à interpréter, en imprimant cette métrique composite et en adaptant les règles de ligature automatique en conséquence.

>     #(define ((compound-time one two num) grob)
>        (grob-interpret-markup grob
>                               (markup #:override '(baseline-skip . 0) #:number
>                                       (#:line ((#:column (one num))
>                                                #:vcenter "+"
>                                                (#:column (two num)))))))

>     \relative c' {
>       \override Staff.TimeSignature #'stencil = #(compound-time "2" "3" "8")
>       \time 5/8
>       \set Staff.beatStructure = #'(2 3)
>       c8 d e fis gis
>       c8 fis, gis e d
>       c8 d e4 gis8
>     }

#### Voir aussi

Glossaire musicologique : polymétrie, métrique composite, métrique.

Manuel de notation : Métrique, Changement d’échelle des durées.

Morceaux choisis : Rythme.

Références des propriétés internes : TimeSignature, Timing_translator, Default_bar_line_engraver, Staff.

#### Problèmes connus et avertissements

L’utilisation de métriques différentes en parallèle entraine un alignement vertical. De ce fait, les barres de mesure ont tendance à fausser l’espacement régulier entre les différentes portées.

#### Découpage automatique des notes

On peut convertir automatiquement les notes longues en notes liées. Il suffit pour cela de remplacer le graveur `Note_heads_engraver` par le graveur `Completion_heads_engraver`. Dans l’exemple suivant, les notes qui dépassent de la mesure sont divisées et liées.

>     \new Voice \with {
>       \remove "Note_heads_engraver"
>       \consists "Completion_heads_engraver"
>     }

>     { c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 }

Ce graveur divise toutes les notes qui sortent de la mesure, et insère des liaisons de prolongation. Dans la pratique, cette fonctionnalité permet de déboguer des partitions complexes : si les mesures ne sont pas entièrement remplies, alors les liaisons de prolongation montrent exactement la durée des décalages de mesure.

#### Voir aussi

Glossaire musicologique : liaison de tenue.

Manuel d’initiation : Tout savoir sur les graveurs, Ajout et suppression de graveurs.

Morceaux choisis : Rythme.

Références des propriétés internes : Note_heads_engraver, Completion_heads_engraver, Forbid_line_break_engraver.

#### Problèmes connus et avertissements

Bien que toutes les durées – particulièrement celles contenant des nolets – ne puissent être exactement représentées avec des notes normales et des points, le graveur `Completion_heads_engraver` n’insérera pas de nolet.

Le `Completion_heads_engraver` affecte seulement les notes, il ne divise pas les silences.

#### Gravure de lignes rythmiques

Au moyen d’une portée rythmique – rhythmic staff en anglais – on peut montrer seulement le rythme d’une mélodie : toutes les notes sont ramenées à la même hauteur, sur une portée d’une seule ligne.

>     <<
>       \new RhythmicStaff {
>         \new Voice = "myRhythm" {
>           \time 4/4
>           c4 e8 f g2
>           r4 g g f
>           g1
>         }
>       }
>       \new Lyrics {
>         \lyricsto "myRhythm" {
>           This is my song
>           I like to sing
>         }
>       }
>     >>

L’utilisation combinée du `Pitch_squash_engraver` et de `\improvisationOn` permet d’afficher la structure rythmique d’une grille d’accords :

>     <<
>       \new ChordNames {
>         \chordmode {
>           c1 f g c
>         }
>       }
>       \new Voice \with {
>         \consists Pitch_squash_engraver
>       } \relative c'' {
>         \improvisationOn
>         c4 c8 c c4 c8 c
>         f4 f8 f f4 f8 f
>         g4 g8 g g4 g8 g
>         c4 c8 c c4 c8 c
>       }
>     >>

#### Commandes prédéfinies

`\improvisationOn`, `\improvisationOff`.

#### Morceaux choisis

Rythmique et guitare

En matière de notation pour guitare, il arrive que soient indiqués les « coups de gratte » en plus de la mélodie, grilles d’accords et diagrammes de tablature.

>     \include "predefined-guitar-fretboards.ly"
>     <<
>       \new ChordNames {
>         \chordmode {
>           c1 | f | g | c
>         }
>       }
>       \new FretBoards {
>         \chordmode {
>           c1 | f | g | c
>         }
>       }
>       \new Voice \with {
>         \consists "Pitch_squash_engraver"
>       } {
>         \relative c'' {
>           \improvisationOn
>           c4 c8 c c4 c8 c
>           f4 f8 f f4 f8 f
>           g4 g8 g g4 g8 g
>           c4 c8 c c4 c8 c
>         }
>       }
>       \new Voice = "melody" {
>         \relative c'' {
>           c2 e4 e4
>           f2. r4
>           g2. a4
>           e4 c2.
>         }
>       }
>       \new Lyrics {
>         \lyricsto "melody" {
>           This is my song.
>           I like to sing.
>         }
>       }
>     >>

#### Voir aussi

Morceaux choisis : Rythme.

Référence des propriétés internes : RhythmicStaff. Pitch_squash_engraver.

Autres langues : English, deutsch, español, 日本語.

#### LilyPond — Manuel de notation