| [ << Modifica dell'output ] | [Inizio][Contenuti][Indice] | [ Modelli >> ] |
| [ < Dimensione dei grob ] | [ Su : Modifica dell'output ] | [ Collisioni tra oggetti > ] |
4.5 Spaziatura verticale
Di norma, la spaziatura verticale degli oggetti musicali decisa da LilyPond è molto buona. Vediamo come si comporta con una semplice canzone, composta da due voci e un accompagnamento per pianoforte:
Non c’è niente di sbagliato con la spaziatura verticale predefinita. Tuttavia, supponiamo che si stia lavorando con un editore che abbia requisiti specifici per la spaziatura verticale dei righi e del testo vocale, ovvero maggior spazio tra testo e note, e tra l’accompagnamento del pianoforte e la linea vocale, e minor spazio tra i righi del pianoforte. Iniziamo dal testo.
Il testo vocale si trova all’interno di un sistema, dunque i comandi per
modificarne la spaziatura sono descritti in
Spaziatura verticale flessibile all'interno dei sistemi.
Quel paragrafo ci dice che il testo è costituito da linee che non appartengono
al rigo (non-staff lines), quindi il comando per cambiarne la spaziatura
sarà riferito alla proprietà nonstaff. Per allontanarlo dal rigo a cui
si riferiscono (la linea superiore) si usa la proprietà relatedstaff.
Per allontanarli dalla linea più bassa si usa la proprietà unrelatedstaff.
Le parti vocali fanno parte del VerticalAxisGroup, dunque dobbiamo
aggiustare le sue proprietà. Proviamo a vedere se funziona.
<<
\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
}
>>
>>
Funziona, ma forse non molto bene. Quando impostiamo il
padding su 5, LilyPond aggiunge 5 spazi rigo alla distanza
tra gli oggetti, che è troppo in questo caso. Useremo 2.
Ora allontaniamo la musica per pianoforte dalle parti vocali. La musica
vocale si trova nel rigo ChoirStaff, quindi dobbiamo aumentare lo
spazio tra quel gruppo di righi e il rigo per pianoforte che si trova sotto.
Lo faremo modificando la proprietà basic-distance del
staffgroup-staff-spacing di 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
}
>>
>>
Ottimo. Non ci resta che avvicinare i righi del pianoforte. Per farlo,
modifichiamo di nuovo le proprietà di StaffGrouper, ma questa volta
riduciamo sia basic-distance che padding. Ecco come fare:
<<
\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
}
>>
>>
In questo modo sono molto vicini, ma è quello che vuole l’editore.
Se necessario, possono essere allontanati modificando padding o
basic-distance.
Ci sono molti modi per modificare la spaziatura verticale. Il punto fondamentale
da ricordare è che la spaziatura degli oggetti in un contesto StaffGroup
(come i gruppi GrandStaff o PianoStaff) è controllata dalle
variabili spaziali di StaffGrouper. La spaziatura relativa ai righi
non raggruppati (come Lyrics e Staff) è regolata dalle variabili
del VerticalAxisGroup. Ulteriori dettagli in
Variabili paper della spaziatura verticale flessibile e
Spaziatura verticale flessibile all'interno dei sistemi.
| [ << Modifica dell'output ] | [Inizio][Contenuti][Indice] | [ Modelli >> ] |
| [ < Dimensione dei grob ] | [ Su : Modifica dell'output ] | [ Collisioni tra oggetti > ] |