1.4.1 Répétition d’un long passage

Cette section présente la syntaxe des répétitions longues.


Répétitions explicites

Adjoindre à la commande \repeat l’opion unfold permet de s’affranchir de ressaisir de la musique répétitive. La syntaxe est identique à celle de la commande \repeat volta abordée plus avant.

Aux fins d’éviter les redites, l’expansion n’est ici pas abordée en détail. Certains exemples des paragraphes qui suivent illustrent cependant des fonctionnalités à la fois des formes volta et unfold ainsi que de la commande \unfoldRepeats qui permet de convertir la forme volta en une forme unfold. Un autre sujet d’intérêt de la commande unfoldRepeats est abordé dans Gestion des répétitions en MIDI.

Dans certains cas, et tout particulièrement dans un contexte \relative, la fonction \repeat unfold ne revient pas à écrire littéralement la même expression musicale plusieurs fois. Ainsi :

\repeat unfold 2 { a'4 b c }

introduit un saut d’octave, contrairement à

a'4 b c |
a'4 b c |

Vous pouvez facilement imbriquer plusieurs fonctions \repeat unfold, ce qui n’est pas aussi simple avec \repeat volta.

Note : L’insertion d’un relative dans une section repeat sans déclaration explicite du contexte Voice génèrera une portée supplémentaire – voir Apparition d'une portée supplémentaire.

Voir aussi

Morceaux choisis : Répétitions.

Référence des propriétés internes : RepeatedMusic, UnfoldedRepeatedMusic.


Répétitions simples

Les reprises courantes, sans alternative, s’indiquent comme ceci :

\repeat volta nombre_de_fois expression_musicale

expression_musicale représente ce qui doît être répété.

\fixed c'' {
  \repeat volta 2 { c2 f }
  R1
  \repeat volta 2 { g2 c }
}

[image of music]

Aucun « début » de reprise n’est indiqué par défaut pour la première mesure d’un morceau. Vous pouvez cependant ajouter une barre de reprise avec un \bar ".|:" avant la première note.

\fixed c'' {
  \repeat volta 2 { \bar ".|:" c2 f }
}

[image of music]

Lorsqu’une reprise sans fin alternative débute au milieu d’une mesure, elle devrait se terminer aussi au milieu d’une mesure, de telle sorte que les mesures soient complètes. En pareil cas, les indications de reprise ne constituent pas des barres de mesure à proprement parler ; il n’est donc pas nécessaire de faire appel à la commande \partial ou à des contrôles d’intégrité de mesure. Le recours à l’instruction \partial est toutefois nécessaire lorsque la reprise est au début d’une pièce commençant par une levée afin de respecter cette entame.

\fixed c'' {
  \partial 4
  \repeat volta 2 {
    c4
    c2 d
    g4 g g
  }
  \repeat volta 2 {
    e4
    f2 g
    c2.
  }
}

[image of music]


Fins alternatives

Une répétition avec fins alternatives s’indique ainsi :

\repeat volta nombre_de_fois expression_musicale
\alternative {
  \volta liste_de_nombres expression_musicale
  \volta liste_de_nombres expression_musicale
  …
}

liste_de_nombres est une liste de nombres, séparés par des virgules, indiquant les occurrences à répéter, de 1 à nombre_de_fois.

\fixed c'' {
  \repeat volta 6 { c4 d e f }
  \alternative {
    \volta 1,2,3 { c2 e }
    \volta 4,5 { f2 d }
    \volta 6 { e2 f }
  }
  c1
}

[image of music]

Si l’on donne trop peu d’alternatives en regard du nombre de fois où le passage doit être rejoué, la première alternative sera jouée plusieurs fois.

Note : Tout élément inclus dans un bloc alternative sera traîté en tant qu’alternative. Quelque chose d’aussi simple qu’un contrôle de mesure placé du mauvais côté d’une accolade peut générer des résultats inattendus.

Note : Une clause relative ne doit jamais se trouver à l’intérieur d’une section repeat : vous aurez immanquablement des portées parasites. Voir Apparition d'une portée supplémentaire.


Autres aspects des fragments répétés

Un bloc \alternative peut prendre place à l’intérieur d’un bloc \repeat afin de produire une notation comparable à des alternatives. Il ne saurait toutefois s’utiliser ainsi pour signifier les alternatives réelles – voir Fins alternatives.

\fixed c'' {
  \repeat volta 2 {
    R1
    \alternative {
      \volta 1 { c1 }
      \volta 2 { d1 }
    }
    R1
  }
}

[image of music]

La présence d’une commande \volta n’est pas réservée aux blocs \alternative. Elle peut s’utiliser n’importe où dans un bloc \repeat pour désigner un fragment qui concerne des reprises particulières. Si le fragment spécifique à une reprise a une durée, celle-ci sera par défaut imprimée sous un crochet comme s’il s’agissait d’un bloc \alternative ; ce crochet peut être effacé – voir Visibilité des objets – ou personnalisé pour répondre au besoin.

Lorsqu’un bloc \repeat est expansé, le fragment spécifique à une occurrence sera omis pour toutes celles auxquelles il ne s’applique pas. Fournir une liste Scheme vide au lieu du nombre de fois supprime carrément la musique.

music = \repeat volta 3 {
  \volta 1 { s1*0_\markup { \italic dolce } }
  a''1
  \volta #'() { \mark "3×" }
}

\new Score { \music }
\new Score { \unfoldRepeats \music }

[image of music]

Lorsqu’un bloc \repeat est expansé, il peut être souhaitable de non seulement filtrer les fragments spécifiques, mais aussi d’ajouter de la musique qui serait absente de la forme \volta. La commande \unfolded permet de désigner la musique qui sera ignorée jusqu’à l’expansion du bloc \repeat qui la contient.

music = \fixed c' {
  \repeat volta 2 {
    c1
    \once \override Score.VoltaBracket.text = "1st time only"
    \once \override Score.VoltaBracket.font-name = "TeX Gyre Schola"
    <<
      \volta 1 { g4 g g g }
      \volta 2 { \unfolded { R1 } }
    >>
    c'1
    \volta 2 { \unfolded { \bar "|." } }
  }
}

\new Score { \music }
\new Score { \unfoldRepeats \music }

[image of music]

Note : Les commandes volta et unfolded fontionnent en respectant la répétition la plus imbriquée qui les entoure.


Barre de segno

La commande \inStaffSegno permet de générer une barre de mesure composite par l’adjonction d’un symbole de segno à une barre de reprise créée par une commande \repeat volta. Qu’il s’agisse d’un début, d’une fin ou d’une double reprise, le type de barre est automatiquement sélectionné. L’indication « D.S. » devra cependant être ajouté manuellement.

En dehors de toute reprise :

\relative {
  e'1
  \inStaffSegno
  f2 g a b
  c1_"D.S." \bar "|."
}

[image of music]

Au début d’une reprise :

\relative {
  e'1
  \repeat volta 2 {
    \inStaffSegno  % start repeat
    f2 g a b
  }
  c1_"D.S." \bar "|."
}

[image of music]

En fin de reprise :

\relative {
  e'1
  \repeat volta 2 {
    f2 g a b
    \inStaffSegno  % end repeat
  }
  f2 g a b
  c1_"D.S." \bar "|."
}

[image of music]

Entre deux reprises :

\relative {
  e'1
  \repeat volta 2 {
    f2 g a b
  }
  \inStaffSegno  % double repeat
  \repeat volta 2 {
    f2 g a b
  }
  c1_"D.S." \bar "|."
}

[image of music]

Des symboles alternatifs de barre de mesure sont aussi accessibles, dans un contexte Score, à l’aide des propriétés segnoType, startRepeatSegnoType, endRepeatSegnoType ou doubleRepeatSegnoType selon les besoins. Ces types de barre alternative doivent être choisis parmi les types prédéfinis ou préalablement créés à l’aide d’une commande \defineBarLine – voir Barres de mesure.

\defineBarLine ":|.S[" #'(":|." "S[" "")
\defineBarLine "]" #'("]" "" "")
\relative {
  e'1
  \repeat volta 2 {
    f2 g a b
    \once \set Score.endRepeatSegnoType = ":|.S["
    \inStaffSegno
  }
  f2 g \bar "]" a b
  c1_"D.S." \bar "|."
}

[image of music]

Morceaux choisis

Diminution de la taille du crochet d’alternative

Les crochets indiquant les fins alternatives s’étalent tout au long de celles-ci. On peut les raccourcir en jouant sur la propriété voltaSpannerDuration. Dans l’exemple suivant, le crochet ne se prolonge que sur une mesure à 3/4.

\relative c'' {
  \time 3/4
  c4 c c
  \set Score.voltaSpannerDuration = #(ly:make-moment 3/4)
  \repeat volta 5 { d4 d d }
  \alternative {
    {
      e4 e e
      f4 f f
    }
    { g4 g g }
  }
}

[image of music]

Ajout du crochet de reprise à d’autres portées

D’ordinaire, le graveur Volta_engraver réside dans le contexte Score ; les crochets précédant une reprise s’impriment donc seulement au-dessus de la portée du haut. On peut ajuster cela en déplaçant ce graveur vers les contextes de portée (Staff) qui doivent comporter ces crochets.

<<
  \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
  \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
  \new Staff \with { \consists "Volta_engraver" } { c'2 g' e' a' }
  \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
>>

[image of music]

Succession de reprises et style de barre par défaut

LilyPond dispose de trois différents styles de barre pour indiquer une succession de reprises. Vous devez opter pour un style par défaut, à l’aide de la propriété doubleRepeatType.

\relative c'' {
  \repeat volta 1 { c1 }
  \set Score.doubleRepeatType = #":..:"
  \repeat volta 1 { c1 }
  \set Score.doubleRepeatType = #":|.|:"
  \repeat volta 1 { c1 }
  \set Score.doubleRepeatType = #":|.:"
  \repeat volta 1 { c1 }
}

[image of music]

Numérotation des mesures et alternatives

Deux méthodes alternatives vous permettent de gérer la numérotation des mesures en cas de reprises.

\relative c'{
  \set Score.alternativeNumberingStyle = #'numbers
  \repeat volta 3 { c4 d e f | }
    \alternative {
      { c4 d e f | c2 d \break }
      { f4 g a b | f4 g a b | f2 a | \break }
      { c4 d e f | c2 d }
    }
  c1 \break
  \set Score.alternativeNumberingStyle = #'numbers-with-letters
  \repeat volta 3 { c,4 d e f | }
    \alternative {
      { c4 d e f | c2 d \break }
      { f4 g a b | f4 g a b | f2 a | \break }
      { c4 d e f | c2 d }
    }
  c1
}

[image of music]

Voir aussi

Glossaire musicologique : répétition, volta.

Manuel de notation : Barres de mesure, Gestion du temps, Modification des greffons de contexte, Modification des liaisons.

Fichiers d’initialisation : ‘ly/engraver-init.ly’.

Morceaux choisis : Répétitions.

Référence des propriétés internes : VoltaBracket, RepeatedMusic, VoltaRepeatedMusic, UnfoldedRepeatedMusic.

Problèmes connus et avertissements

L’extension d’une liaison, dans la forme \volta, n’est possible que pour la première alternative. Selon le même principe, une liaison ne saurait partir de la fin d’une alternative pour se terminer au début de la reprise.

L’aspect visuel d’une liaison se continuant dans les autres alternatives, peut être simulé à l’aide de la commande \repeatTie lorsqu’elle s’arrête sur sa première note – méthode qui cependant ne fonctionne pas pour un TabStaff ; see Tenue et reprise. D’autres moyens existent pour indiquer la prolongation d’une liaison sur des alternatives, y compris dans un TabStaff, en suivant les préceptes donnés à la rubrique Modification des liaisons.

L’aspect visuel d’un glissando se continuant dans les autres alternatives peut être simulé à l’aide d’un glissando partant d’une note d’ornement supplémentaire et masquée. Un exemple se trouve à la rubrique See Rappel du glissando à l’occasion d’une alternative.

Le développement, à l’aide de la commande \unfoldRepeats, d’une répétition qui commence sur une mesure incomplète et contient un bloc alternative avec modification de la propriété measureLength entraînera des messages d’erreur concernant le placement des barres de mesure.

Des reprises imbriquées telles que

\repeat …
\repeat …
\alternative

présentent une ambiguïté, dans la mesure où l’on ne sait à quelle section \repeat attribuer la section \alternative. Pour résoudre cette ambiguïté, il convient de toujours insérer la commande \alternative à l’intérieur de la section \repeat. Il est préférable, dans une telle situation, d’utiliser des accolades pour plus de clarté.

Un bloc \alternative clôturé à l’intérieur même du bloc \repeat – plutôt que venant après – ne produira pas les barres de reprise attendues à la fin des alternatives.


Indications de reprise manuelles

Note : Les méthodes présentées dans les lignes qui suivent ne devraient servir à indiquer que des constructions de répétition inhabituelles. En règle générale, il vaut mieux recourir à la fonction repeat pour créer une reprise ou bien insérer la barre de mesure adéquate. Pour plus d’information, voir le chapitre Barres de mesure.

La propriété repeatCommands sert à contrôler la mise en forme des reprises. On la définit par une suite de commandes de reprise Scheme.

start-repeat

Pour imprimer une barre de reprise .|:

\relative {
  c''1
  \set Score.repeatCommands = #'(start-repeat)
  d4 e f g
  c1
}

[image of music]

Traditionnellement, on n’imprime pas de signe de reprise en début de morceau.

end-repeat

Pour imprimer une barre de reprise :|.

\relative {
  c''1
  d4 e f g
  \set Score.repeatCommands = #'(end-repeat)
  c1
}

[image of music]

(volta nombre) … (volta #f)

Pour obtenir un crochet indiquant le numéro de l’alternative. Pour que le crochet s’imprime effectivement, il faut spécifier explicitement l’endroit où il doit se terminer.

\relative {
  f''4 g a b
  \set Score.repeatCommands = #'((volta "2"))
  g4 a g a
  \set Score.repeatCommands = #'((volta #f))
  c1
}

[image of music]

Plusieurs commandes de reprise peuvent intervenir au même moment :

\relative {
  f''4 g a b
  \set Score.repeatCommands = #'((volta "2, 5") end-repeat)
  g4 a g a
  c1
  \set Score.repeatCommands = #'((volta #f) (volta "95") end-repeat)
  b1
  \set Score.repeatCommands = #'((volta #f))
}

[image of music]

Le crochet indiquant une alternative peut contenir aussi du texte. Il peut s’agir d’un ou plusieurs nombres ou bien d’une indication textuelle (markup) – voir Mise en forme du texte. Le plus simple, dans le cas d’une indication textuelle, est de tout d’abord définir ce markup, puis de l’inclure dans une liste Scheme.

voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
\relative {
  c''1
  \set Score.repeatCommands =
    #(list(list 'volta voltaAdLib) 'start-repeat)
  c4 b d e
  \set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat)
  f1
  \set Score.repeatCommands = #'((volta #f))
}

[image of music]

Voir aussi

Manuel de notation : Barres de mesure, Mise en forme du texte.

Morceaux choisis : Répétitions.

Référence des propriétés internes : VoltaBracket, RepeatedMusic, VoltaRepeatedMusic.


LilyPond — Manuel de notation v2.23.3 (branche de développement).