2.4.1 Organizzare i brani con le variabili

Quando tutti gli elementi discussi precedentemente vengono combinati insieme per produrre file di maggiori dimensioni, anche le espressioni musicali diventano molto più grandi. Nella musica polifonica con molti righi musicali, i file di input possono diventare molto confusi. Possiamo ridurre tale confusione attraverso l’uso delle variabili.

Con le variabili (conosciute anche come identificatori o macro), possiamo scomporre le espressioni musicali complesse. Una variabile viene assegnata nel seguente modo:

namedMusic = { … }

I contenuti dell’espressione musicale namedMusic possono essere usati in seguito ponendo una barra inversa (backslash) di fronte al nome (\namedMusic, proprio come in un normale comando LilyPond).

violin = \new Staff {
  \relative {
    a'4 b c b
  }
}
cello = \new Staff {
  \relative {
    \clef "bass"
    e2 d
  }
}
{
  <<
    \violin
    \cello
  >>
}

[image of music]

Per convenzione, il nome di una variabile è composto soltanto da caratteri alfabetici. Informazioni più dettagliate in Struttura del file.

Le variabili devono essere definite prima della principale espressione musicale, ma possono poi essere usate quante volte si vuole e ovunque, una volta definite. Possono essere usate anche all’interno della definizione di un’altra variabile successiva, dando la possibilità di accorciare l’input se una sezione della musica viene ripetuta molte volte.

tripletA = \tuplet 3/2 { c,8 e g }
barA = { \tripletA \tripletA \tripletA \tripletA }

\relative c'' {
  \barA \barA
}

[image of music]

Le variabili possono essere utilizzate per molti tipi di oggetto nell’input. Ad esempio,

larghezza = 60  % un numero da passare a una variabile di \paper (l'unità di misura è il millimetro)
nome = "Wendy"  % una stringa da passare a un markup
foglioA5 = \paper { #(set-paper-size "a5") }

A seconda dei suoi contesti, la variabile può essere usata in punti differenti. L’esempio seguente usa le variabili mostrate sopra:

\paper {
  \foglioA5
  line-width = \larghezza
}
{
  c4^\nome
}

LilyPond — Manuale di apprendimento v2.22.1 (ramo stabile).