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 des commandes \repeat volta et \repeat segno abordées plus avant.

Afin d’éviter les redites, l’expansion n’est ici pas abordée en détail. Certains exemples des paragraphes qui suivent illustrent différentes fonctionnalités de la commande \unfoldRepeats qui permet de convertir les formes volta ou segno 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 ou \repeat segno.

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 peut s’indiquer de deux manières différentes. La syntaxe préférentielle est la suivante :

\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]

Une autre syntaxe, plus ancienne et toujours prise en charge, consiste à instancier le bloc \alternative à la suite de l’expression musicale répétée. Elle produit les mêmes effets.

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

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.

\fixed c'' {
  \repeat volta 6 {
    c4 d e f
    \alternative {
      { c2 e }
      { f2 d }
      { e2 f }
    }
  }
  c1
}

[image of music]

Les blocs \alternative peuvent s’imbriquer.

music = \fixed c' {
  \repeat volta 3 {
    s1_"A"
    \alternative {
      \volta 1 { s1_"B" }
      \volta 2,3 {
        s1_"C"
        \once \set Score.voltaSpannerDuration = #(ly:make-moment 1)
        s1_"D"
        \alternative {
          \volta 2 { s1_"E" }
          \volta 3 { s1_"F" }
        }
      }
    }
  }
  \fine
}

\score { \music }
\score { \unfoldRepeats \music }

[image of music]

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.

Note : Lorsque la numérotation des mesures est activée au sein des alternatives, elle s’applique sur l’ensemble de ces alternatives.


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 – 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 éléments d’un bloc \alternative. Elle peut s’utiliser n’importe où dans un bloc \repeat pour désigner un fragment qui concerne des reprises particulières, tout en ne créant pas de crochet pour les autres cas.

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 #'() { s1*0_\markup { \bold "3×" } }
  g''1
}

\score { \music }
\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 « repliée ». 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
    <<
      \volta #'() {
        \once \override TextSpanner.bound-details.left.text =
          "2nd time tacet"
        s4*7\startTextSpan s4\stopTextSpan
      }
      \volta 1 { f4 f f f | f f f f }
      \volta 2 { \unfolded { R1*2 } }
    >>
    c'1
    \volta 2 { \unfolded { \bar "|." } }
  }
  \fine
}

\score { \music }
\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.


Reprises Al-fine

La commande \fine met un point final à la musique, mais la placer à l’intérieur d’une forme « repliée » de reprise en suspend les effets. Lorsqu’une reprise contenant \fine est expansée, la commande \fine est déroulée avec le reste de la musique et interviendra là où elle doit se produire dans la musique expansée. Il est donc nécessaire de bien spécifier à quelle occurence le Fine doit se réaliser – voir Autres aspects des fragments répétés.

music = \fixed c' {
  \repeat volta 2 {
    f1
    \volta 2 \fine
    b1
  }
}

\score { \music }
\score { \unfoldRepeats \music }

[image of music]

Comme illustré ci-dessus, \fine crée, à la toute fin de la musique, une barre finale sans instruction Fine. Il est possible de forcer l’impression de ce Fine en activant la propriété de contexte finalFineTextVisibility.

\fixed c' {
  \set Score.finalFineTextVisibility = ##t
  f1
  \fine
}

[image of music]

Le texte affiché par la commande \fine est modifiable à l’aide de la propriété de contexte fineText.

\fixed c' {
  \set Score.fineText = "Fin."
  \repeat volta 2 {
    f1
    \volta 2 \fine
    b1
  }
}

[image of music]

Pour de plus amples détails concernant les interactions avec les autres barres de mesure et les options pour modifier leur apparence, voir Barres de mesure automatiques.

Voir aussi

Glossaire musicologique : fine.

Manuel de notation : Autres aspects des fragments répétés, Barres de mesure automatiques, Division en sections.

Morceaux choisis : Reprises.

Référence des propriétés internes : FineEvent, Jump_engraver, JumpScript.


Structure d’une reprise Segno

Les commandes \repeat segno et \repeat volta ne diffèrent que par la notation qu’il en résultera. Si les sections précédentes contiennent des informations d’ordre général quant à la manière de saisir de la musique répétée, des alternatives et de différentes variations, les paragraphes qui suivent couvrent les particularités liées à la notation avec segno sans reprendre tout ce qui a trait à la syntaxe de saisie.

\repeat segno permet de noter des reprises comportant des instructions D.C. ou D.S. dans leur présentation. Il s’agit d’indiquer par le signe segno le début d’un fragment répété lorsqu’il n’est pas en début de pièce. D’autre part, les fins alternatives seront indiquées par un signe coda en lieu et place des crochets d’alternative, si tant est que celles-ci soient exécutées en séquence – autrement dit pas dans le cas de \volta 1,3 puis \volta 2,4.

Lorsque la numérotation des mesures est activée pour les alternatives, elle s’applique en présence de crochets, qu’il soient créés par \repeat segno ou \repeat volta, mais pas en présence d’indications de coda.

Les cas habituels d’utilisation sont les suivants.

al fine

Les instructions de reprise comportent un al Fine si la commande \fine a déjà été libellée – voir Reprises Al-fine.

music = \fixed c' {
  f1
  \repeat segno 2 {
    g1
    \volta 2 \fine
    a1
  }
  \section
}

\score { \music }
\score { \unfoldRepeats \music }

[image of music]

alla coda

Le début de chaque alternative est implicitement marqué d’un \codaMark \default. Les instructions de reprise des alternatives incluent « al … e poi la … » renvoyant à la marque de la première alternative et au repère où se reporter. Si tant est que la durée de la dernière alternative est nulle, le repère automatique est supprimé, ce qui permet de le remplacer par un libellé de section.

music = \fixed c' {
  f1
  \repeat segno 2 {
    g1
    \alternative {
      \volta 1 { \repeat unfold 4 { a2 } }
      \volta 2 \volta #'() {
        \section
        \sectionLabel "Coda"
      }
    }
  }
  b1
  \fine
}

\score { \music }
\score { \unfoldRepeats \music }

[image of music]

L’instruction de retour peut s’abréger par la définition d’une procédure de mise en forme alternative – voir Apparence d’une reprise Segno.

da capo

Les instructions de reprise incluent D.C. lorsque le fragment à répéter est en début de partition. Les cas d’emploi de da capo suivent le même principe que les cas de dal segno.

music = \fixed c' {
  \repeat segno 2 {
    g1
  }
  \fine
}

\score { \music }
\score { \unfoldRepeats \music }

[image of music]

dal segno

Les instructions de reprise incluent D.S. lorsque le fragment à répéter n’est pas en début de partition. Le début du fragment répété est implicitement marqué d’un \segnoMark \default.

music = \fixed c' {
  f1
  \repeat segno 2 {
    g1
  }
  c1_"D.S." \bar "|."
  \repeat segno 2 {
    a1
  }
  \fine
}

\score { \music }
\score { \unfoldRepeats \music }

[image of music]

Il est possible de forcer une reprise dal-segno en début de partition – voir Apparence d’une reprise Segno.

retour multiple

L’instruction pour une reprise qui doît être exécutée plus d’une fois inclue « … V. ». Le passage concerné devra être joué une fois de plus que le nombre indiqué par l’instruction.

music = \fixed c' {
  \repeat segno 3 {
    g1
  }
  \fine
}

\score { \music }
\score { \unfoldRepeats \music }

[image of music]

Voir aussi

Glossaire musicologique : da capo, dal segno, fine.

Manuel de notation : Autres aspects des fragments répétés, Barres de mesure automatiques, Division en sections, Fins alternatives, Marque de section, Répétitions simples, Reprises Al-fine.

Morceaux choisis : Répétitions et reprises.

Référence des propriétés internes : CodaMark, JumpScript, SectionLabel, SegnoMark.


Apparence d’une reprise Segno

Les marques et instructions de retour créées par \repeat segno peuvent bénéficier de quelques adaptations.

Les instructions de retour sont formatées par la procédure Scheme spécifiée dans la propriété dalSegnoTextFormatter. Un formateur prédéfini permet d’obtenir des instructions raccourcies.

\fixed c' {
  \set Score.dalSegnoTextFormatter = #format-dal-segno-text-brief
  f1
  \repeat segno 2 {
    g1
    \alternative {
      \volta 1 { a1 }
      \volta 2 \volta #'() {
        \section
        \sectionLabel "Coda"
      }
    }
  }
  b1
  \fine
}

[image of music]

Les numéros de séquence des marques en début de fragment répété et en tête de première alternative peuvent être définis explicitement sans pour autant interférer avec les instructions automatiques de retour – voir Indications de reprise manuelles.

\fixed c' {
  \repeat segno 2 {
    \volta #'() { \segnoMark 2 }
    g1
    \alternative {
      \volta 1 {
        \volta #'() { \codaMark 2 }
        \repeat unfold 8 { a4 }
      }
      \volta 2 \volta #'() {
        \section
        \sectionLabel "Coda"
      }
    }
  }
  b1
  \fine
}

[image of music]

Sans le \segnoMark 2 explicité, ceci aurait été présenté comme une reprise da-capo.

Au lieu d’afficher un segno en tant que repère surplombant la portée, il est possible de l’imprimer sous forme de barre de mesure en affectant la propriété segnoStyle à bar-line. Afin de lever toute ambiguité, seule la première barre de segno sera dépourvue de marque.

\fixed c' {
  \set Score.segnoStyle = #'bar-line
  R1
  \repeat unfold 3 {
    \repeat segno 2 {
      R1*2
    }
  }
  \fine
}

[image of music]

Lorsqu’une barre de segno coïncide avec une autre barre spéciale, sera automatiquement choisie une combinaison de barres parmi un jeu prédéfini. Pour chaque combinaison prise en compte, la barre de mesure peut être personnalisée à l’aide de propriétés de contexte – voir Barres de mesure automatiques.

Les marques de segno et de coda sont formatées par des procédures spécifiées dans les propriétés segnoMarkFormatter et codaMarkFormatter. Elles sont comparables aux procédures chargées de formater les repères – voir Indications de repère.

\fixed c' {
  \set Score.segnoMarkFormatter = #format-mark-numbers
  \set Score.segnoStyle = #'bar-line
  R1
  \repeat unfold 3 {
    \repeat segno 2 {
      R1*2
    }
  }
  \fine
}

[image of music]

Il existe un formateur prédéfini alternatif de segno qui imprime un repère même sur la première barre de mesure :

\fixed c' {
  \set Score.segnoMarkFormatter = #format-segno-mark
  \set Score.segnoStyle = #'bar-line
  R1
  \repeat unfold 3 {
    \segnoMark \default
    R1*2
  }
}

[image of music]

Il existe un formateur prédéfini alternatif de segno qui imprime des signes \varcoda.

\fixed c' {
  \set Score.codaMarkFormatter = #format-varcoda-mark
  R1
  \repeat unfold 3 {
    \codaMark \default
    R1*2
  }
}

[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]

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, Barres de mesure automatiques, Gestion du temps, Modification des greffons de contexte, Modification des liaisons.

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

Morceaux choisis : Répétitions et reprises.

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 ; voir 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 Voir 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é.


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 du style « volta ». On la définit par une liste de commandes en Scheme. En règle générale, chaque élément est lui-même une liste de la forme '(commande args…), tout en sachant qu’une commande sans argument peut s’abrégér en un symbole – par exemple, '((start-repeat)) peut se libéller simplement en '(start-repeat).

end-repeat

Pour terminer un fragment répété.

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

[image of music]

start-repeat

Pour entamer un fragement répété.

\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.

volta texte

Lorsque texte est un markup, ouvre un crochet d’alternative et lui affecte le label mentionné. Le crochet prendra fin lorsque texte est égal à #f. 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]

Les repères de Segno et Coda se créent avec les commandes \segnoMark, \inStaffSegno et \codaMark. La syntaxe consacrée est :

\codaMark n
\segnoMark n

n sont des numéros de séquence, ou bien \default pour utiliser une numérotation automatique. Les indications de repère, de segno et de coda sont incrémentées indépendamment l’une de l’autre.

\fixed c' {
  e1
  \segnoMark \default
  e1
  \segnoMark \default
  g1
  \codaMark \default
  g1
  \codaMark \default
  b1
  \codaMark 96
  b1
  \segnoMark 96
}

[image of music]

Au commencement d’une pièce, ni \segnoMark \default ni \codaMark \default ne créent de marque. Spécifier ‘1’ permet de forcer leur apparition.

\fixed c' {
  \segnoMark 1
  f1
}

[image of music]

La commande \inStaffSegno est équivalente à \segnoMark \default à ceci près qu’elle affectera temporairement la propriété segnoStyle à bar-line afin de forcer son impression en tant que barre de mesure.

\fixed c' {
  e1
  \inStaffSegno
  g1
  \segnoMark \default
  b1
}

[image of music]

Pour de plus amples informations sur la manière d’affecter l’affichage des repères de segno ou de coda, voir Apparence d’une reprise Segno.

La création d’instructions de saut arbitraires s’obtient à l’aide de la commande \jump.

\fixed c' {
  \time 2/4
  f4 a
  b4 c'8 d'
  c'4 c
  \jump "Gavotte I D.C."
  \section
}

[image of music]

Voir aussi

Manuel de notation : Apparence d’une reprise Segno, Barres de mesure, Indications de repère, Mise en forme du texte.

Morceaux choisis : Répétitions et reprises.

Référence des propriétés internes : CodaMark, Jump_engraver, JumpScript, Mark_engraver, SegnoMark, SegnoRepeatedMusic, VoltaBracket, VoltaRepeatedMusic.


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