[ << Retouche de partition ] | [Racine][Table des matières][Index] | [ Modèles >> ] |
[ < Dimensionnement des objets graphiques ] | [Plus haut: Retouche de partition ] | [ Collisions d'objets > ] |
5.5 Espacement vertical
En règle générale, LilyPond est plutôt performant en matière d’espacement vertical des objets musicaux. Examinons ce qui se passe avec un chant simple à deux voix accompagnées au piano :
Il n’y a rien à redire quant à l’espacement vertical. Toutefois, partons du principe que nous travaillons avec un éditeur dont les exigences en matière d’espacement vertical sont les suivantes : les paroles doivent être clairement détachées des notes, l’accompagnement de piano séparé du chant et les portées de piano rapprochées l’une de l’autre. Commençons par les paroles.
Les paroles résident dans un système ; les commandes dévolues à leur
espacement sont donc mentionnées à la section
Espacement vertical au sein d'un système. Nous y constatons que
les paroles sont des lignes de non-portée (non-staff lines
) ; les
commandes qui gèrent leur espacement font donc référence à la propriété
nonstaff
. Les décaler de la portée à laquelle elles sont
attachées (celle du haut) jouera sur la propriété relatedstaff
,
les décaler de la ligne inférieure sur la propriété
unrelatedstaff
. Les parties vocales sont membre d’un
VerticalAxisGroup
; ce sont donc les propriétés de ce groupe qui
doivent être ajustées. Faisons un premier essai pour voir :
<< \new ChoirStaff << \new Staff { \new Voice = "music" { b'2 c' c' c' } } \new Lyrics \with { \override VerticalAxisGroup. nonstaff-relatedstaff-spacing.padding = #5 \override VerticalAxisGroup. nonstaff-unrelatedstaff-spacing.padding = #5 } \lyricsto "music" { Here are some lyrics } \new Staff { \clef bass e'2 f e c } >> \new PianoStaff << \new Staff { g''2 c'' c'' a'' } \new Staff { \clef bass e2 f c e } >> >>
L’espacement est maintenant quelque peu exagéré. Lorsque nous
affectons 5 à la variable padding
, LilyPond ajoute cinq espaces
de portée à la distance séparant deux objets, ce qui est plus que
généreux. Nous nous limiterons à 2.
Occupons-nous à présent de séparer l’accompagnement du chant. La
musique vocale fait l’objet d’un ChoirStaff
; il nous faut donc
augmenter l’espace entre ce groupe et la portée de piano qui le suit.
Nous y parviendrons en modifiant la variable basic-distance
de
l’élément staffgroup-staff-spacing
du StaffGrouper
.
<< \new ChoirStaff \with { \override StaffGrouper. staffgroup-staff-spacing.basic-distance = #15 } << \new Staff { \new Voice = "music" { b'2 c' c' c' } } \new Lyrics \with { \override VerticalAxisGroup. nonstaff-relatedstaff-spacing.padding = #2 \override VerticalAxisGroup. nonstaff-unrelatedstaff-spacing.padding = #2 } \lyricsto "music" { Here are some lyrics } \new Staff { \clef bass e'2 f e c } >> \new PianoStaff << \new Staff { g''2 c'' c'' a'' } \new Staff { \clef bass e2 f c e } >> >>
Excellent. Ne reste plus qu’à répondre à la dernière exigence :
resserrer les portées du piano. Pour y parvenir, nous ajusterons à
nouveau les propriétés du StaffGrouper
, ici en jouant à la fois
sur la distance de base (basic-distance
) et le décalage
(padding
) comme ci-dessous :
<< \new ChoirStaff \with { \override StaffGrouper. staffgroup-staff-spacing.basic-distance = #15 } << \new Staff { \new Voice = "music" { b'2 c' c' c' } } \new Lyrics \with { \override VerticalAxisGroup. nonstaff-relatedstaff-spacing.padding = #2 \override VerticalAxisGroup. nonstaff-unrelatedstaff-spacing.padding = #2 } \lyricsto "music" { Here are some lyrics } \new Staff { \clef bass e'2 f e c } >> \new PianoStaff \with { \override StaffGrouper.staff-staff-spacing = #'( (basic-distance . 0) (padding . 0)) } << \new Staff { g''2 c'' c'' a'' } \new Staff { \clef bass e2 f c e } >> >>
Les portées sont vraiment rapprochées, mais c’est ce que veut l’éditeur.
On pourra toujours les écarter au besoin en jouant sur les éléments
padding
ou basic-distance
.
Il existe bien des manières de modifier l’espacement vertical. Le point
crucial à ne pas oublier est que l’espacement des objets au sein d’un
regroupement – un StaffGroup
, tels GrandStaff
ou
PianoStaff
– dépend des variables d’espacement d’un
StaffGrouper
; l’espacement de portées non regroupées (comme
Lyrics
et Staff
) dépend des variables d’un
VerticalAxisGroup
. Voir
Variables d'espacement vertical fluctuant et
Espacement vertical au sein d'un système pour de plus amples
détails.
[ << Retouche de partition ] | [Racine][Table des matières][Index] | [ Modèles >> ] |
[ < Dimensionnement des objets graphiques ] | [Plus haut: Retouche de partition ] | [ Collisions d'objets > ] |