5.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:

[image of music]

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
    }
  >>
>>

[image of music]

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
    }
  >>
>>

[image of music]

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
    }
  >>
>>

[image of music]

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.


Manuale di apprendimento di LilyPond v2.25.22 (development-branch).