Repeats
Repeats
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' } }
>>
|
Centered measure numbers
Scores of large ensemble works often have bar numbers placed beneath
the system, centered horizontally on the measure’s extent. This
snippet shows how the Measure_counter_engraver may be used to
simulate this notational practice. Here, the engraver has been added
to a Dynamics context.
| | \layout {
\context {
\Dynamics
\consists #Measure_counter_engraver
\override MeasureCounter.direction = #DOWN
\override MeasureCounter.font-encoding = #'latin1
\override MeasureCounter.font-shape = #'italic
% to control the distance of the Dynamics context from the staff:
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #2
}
\context {
\Score
\remove "Bar_number_engraver"
}
}
pattern = \repeat unfold 7 { c'4 d' e' f' }
\new StaffGroup <<
\new Staff {
\pattern
}
\new Staff {
\pattern
}
\new Dynamics {
\startMeasureCount
s1*7
\stopMeasureCount
}
>>
|
Changing the default bar lines
Default bar lines can be changed when re-defined in a score context.
| | % http://lsr.di.unimi.it/LSR/Item?id=964
%%=> http://lists.gnu.org/archive/html/lilypond-user/2014-03/msg00126.html
%%=> https://lilypond.1069038.n5.nabble.com/Changing-the-default-end-repeat-bracket-tc169357.html
\layout {
\context {
\Score
%% Changing the defaults from engraver-init.ly
defaultBarType = #"!"
startRepeatType = #"[|:"
endRepeatType = #":|]"
doubleRepeatType = #":|][|:"
}
}
%% example:
{
c'1
\repeat volta 2 { \repeat unfold 2 c' }
\repeat volta 2 { \repeat unfold 2 c' }
\alternative {
{ c' }
{
%% v2.18 workaround
\once\override Score.VoltaBracket.shorten-pair = #'(1 . -1)
c'
}
}
\bar "|."
}
|
Trémolo et changement de portée
Dans la mesure où \repeat tremolo requiert deux arguments
musicaux pour un trémolo d’accords, la note ou l’accord de la
portée opposée doit être encadré par des accolades et se voir adjoindre
la commande \change Staff.
| | \new PianoStaff <<
\new Staff = "up" \relative c'' {
\key a \major
\time 3/8
s4.
}
\new Staff = "down" \relative c'' {
\key a \major
\time 3/8
\voiceOne
\repeat tremolo 6 {
<a e'>32
{
\change Staff = "up"
\voiceTwo
<cis a' dis>32
}
}
}
>>
|
Impression de trémolo avec ligature flottante
Lorsque la durée totale d’un trémolo est inférieure à la noire,
égale une blanche, ou bien entre une blanche et une ronde, il est
d’usage que toutes les ligatures soient en contact avec les
hampes. Certains styles de gravure font cependant apparaître des
ligatures détachées, centrées entre les hampes. Pour ce type de
trémolo, le nombre de hampes flottantes se gère au travers de la
propriété gap-count de l’objet Beam, et l’écart
entre ligature et hampe se définit par la propriété gap.
| | \relative c'' {
\repeat tremolo 8 { a32 f }
\override Beam.gap-count = #1
\repeat tremolo 8 { a32 f }
\override Beam.gap-count = #2
\repeat tremolo 8 { a32 f }
\override Beam.gap-count = #3
\repeat tremolo 8 { a32 f }
\override Beam.gap-count = #3
\override Beam.gap = #1.33
\repeat tremolo 8 { a32 f }
\override Beam.gap = #1
\repeat tremolo 8 { a32 f }
\override Beam.gap = #0.67
\repeat tremolo 8 { a32 f }
\override Beam.gap = #0.33
\repeat tremolo 8 { a32 f }
}
|
Répétition en pourcent isolée
Des symboles de pourcentage isolés peuvent aussi être obtenus au
moyen d’un silence multimesure dont on modifie l’aspect :
| | makePercent =
#(define-music-function (note) (ly:music?)
"Make a percent repeat the same length as NOTE."
(make-music 'PercentEvent
'length (ly:music-length note)))
\relative c'' {
\makePercent s1
}
|
Compteur de mesures
Le code ci-dessous permet, de façon détournée, d’afficher un compteur de
mesures à l’aide d’une répétition en pourcent rendue transparente.
| | <<
\context Voice = "foo" {
\clef bass
c4 r g r
c4 r g r
c4 r g r
c4 r g r
}
\context Voice = "foo" {
\set countPercentRepeats = ##t
\hide PercentRepeat
\override PercentRepeatCounter.staff-padding = #1
\repeat percent 4 { s1 }
}
>>
|
Numbering groups of measures
This snippet demonstrates the use of the
Measure_counter_engraver to number groups of successive
measures. Any stretch of measures may be numbered, whether consisting
of repetitions or not.
The engraver must be added to the appropriate context. Here, a
Staff context is used; another possibility is a Dynamics
context.
The counter is begun with \startMeasureCount and ended with
\stopMeasureCount. Numbering will start by default with
1, but this behavior may be modified by overriding the
count-from property.
When a measure extends across a line break, the number will appear
twice, the second time in parentheses.
| | \layout {
\context {
\Staff
\consists #Measure_counter_engraver
}
}
\new Staff {
\startMeasureCount
\repeat unfold 7 {
c'4 d' e' f'
}
\stopMeasureCount
\bar "||"
g'4 f' e' d'
\override Staff.MeasureCounter.count-from = #2
\startMeasureCount
\repeat unfold 5 {
g'4 f' e' d'
}
g'4 f'
\bar ""
\break
e'4 d'
\repeat unfold 7 {
g'4 f' e' d'
}
\stopMeasureCount
}
|
Affichage du numéro de répétition en pourcent
Le numéro de mesure répétée sera imprimé à intervalle régulier si vous
déterminez la propriété de contexte repeatCountVisibility.
| | \relative c'' {
\set countPercentRepeats = ##t
\set repeatCountVisibility = #(every-nth-repeat-count-visible 5)
\repeat percent 10 { c1 } \break
\set repeatCountVisibility = #(every-nth-repeat-count-visible 2)
\repeat percent 6 { c1 d1 }
}
|
Compteur de répétition en pourcent
Les répétitions de plus de deux mesures sont surmontées d’un compteur,
si l’on active la propriété countPercentRepeats comme le montre
l’exemple suivant :
| | \relative c'' {
\set countPercentRepeats = ##t
\repeat percent 4 { c1 }
}
|
Positionnement des segno et coda (avec saut de ligne)
Le code ci-dessous permet d’adjoindre à un signe segno un texte
D.S. al Coda, là où se trouverait normalement un bout de portée.
La coda entamera une nouvelle ligne. Une variante, indiquée ici
même, permet de laisser la coda sur la même ligne.
| | {
\clef treble
\key g \major
\time 4/4
\relative c'' {
\repeat unfold 4 {
c4 c c c
}
% Set segno sign as rehearsal mark and adjust size if needed
% \once \override Score.RehearsalMark.font-size = #3
\mark \markup { \musicglyph "scripts.segno" }
\repeat unfold 2 {
c4 c c c
}
% Set coda sign as rehearsal mark and adjust size if needed
\once \override Score.RehearsalMark.font-size = #4
\mark \markup { \musicglyph "scripts.coda" }
\repeat unfold 2 {
c4 c c c
}
% Should Coda be on anew line?
% Coda NOT on new line: use \nobreak
% Coda on new line: DON'T use \nobreak
% \noBreak
\bar "||"
% Set segno sign as rehearsal mark and adjust size if needed
\once \override Score.RehearsalMark.break-visibility =
#begin-of-line-invisible
% \once \override Score.RehearsalMark.font-size = #3
\mark \markup { \musicglyph "scripts.segno" }
% Here begins the trickery!
% \cadenzaOn will suppress the bar count
% and \stopStaff removes the staff lines.
\cadenzaOn
\stopStaff
% Some examples of possible text-displays
% text line-aligned
% ==================
% Move text to the desired position
% \once \override TextScript.extra-offset = #'( 2 . -3.5 )
% | <>^\markup { D.S. al Coda } }
% text center-aligned
% ====================
% Move text to the desired position
% \once \override TextScript.extra-offset = #'( 6 . -5.0 )
% | <>^\markup { \center-column { D.S. "al Coda" } }
% text and symbols center-aligned
% ===============================
% Move text to the desired position
% and tweak spacing for optimum text alignment
\repeat unfold 1 {
s1
\bar ""
}
\once \override TextScript.extra-offset = #'( 0 . -3.0 )
\once \override TextScript.word-space = #1.5
<>^\markup { \center-column { "D.S. al Coda"
\line {
\musicglyph "scripts.coda"
\musicglyph "scripts.tenuto"
\musicglyph "scripts.coda"} } }
% Increasing the unfold counter will expand the staff-free space
\repeat unfold 3 {
s1
\bar ""
}
% Resume bar count and show staff lines again
\startStaff
\cadenzaOff
% Should Coda be on new line?
% Coda NOT on new line: DON'T use \break
% Coda on new line: use \break
\break
% Show up, you clef and key!
\once \override Staff.KeySignature.break-visibility = #end-of-line-invisible
\once \override Staff.Clef.break-visibility = #end-of-line-invisible
% Set coda sign as rehearsal mark and adjust size and position
% Put the coda sign on top of the (treble-)clef
% depending on coda's line-position
% Coda NOT on new line, use this:
% \once \override Score.RehearsalMark.extra-offset = #'( -2 . 1.75 )
% Coda on new line, use this:
\once \override Score.RehearsalMark.extra-offset = #'( -5 . .5 )
\once \override Score.RehearsalMark.font-size = #5
\mark \markup { \musicglyph "scripts.coda" }
% The coda
\repeat unfold 6 {
c4 c c c
}
\bar"|."
}
}
|
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 }
}
|
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 }
}
}
|
Crochet de reprise sous les chiffrages d’accord
L’ajout du Volta_engraver à la bonne portée permet d’imprimer les
crochets de reprise entre les chiffrages et la portée.
| | \score {
<<
\chords {
c1
c1
}
\new Staff \with {
\consists "Volta_engraver"
}
{
\repeat volta 2 { c'1 }
\alternative { c' }
}
>>
\layout {
\context {
\Score
\remove "Volta_engraver"
}
}
}
|
Volta multiportée
L’ajout du Volta_engraver à la portée appropriée permet de
répéter les indications de reprise qui normalement n’apparaissent que
sur la portée supérieure de la partition.
| | voltaMusic = \relative c'' {
\repeat volta 2 {
c1
}
\alternative {
d1
e1
}
}
<<
\new StaffGroup <<
\new Staff \voltaMusic
\new Staff \voltaMusic
>>
\new StaffGroup <<
\new Staff \with { \consists "Volta_engraver" }
\voltaMusic
\new Staff \voltaMusic
>>
>>
|
Indication de reprise avec texte grâce à repeatCommands
La commande \repeat volta permet d’indiquer facilement des
reprises. Il est certains cas où l’adjonction d’un texte sous forme de
\markup nécessite cependant de recourir à la propriété de
contexte repeatCommands.
Dans la mesure où l’argument de repeatCommands est constitué
d’une liste, le plus simple est de définir le texte dans une variable
qui sera ensuite incorporée dans la liste en respectant la syntaxe Scheme
#(list (list 'volta texteIdentificateur)). Les commandes de
début et de fin de reprise peuvent s’ajouter séparément à la liste des
éléments.
| | voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
\relative c'' {
c1
\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))
}
|