| [ << Concetti fondamentali ] | [Inizio][Contenuti][Indice][ ? ] | [ Modifica dell'output >> ] | ||
| [ < Scrivere una partitura da zero ] | [ Su : Estendere i modelli ] | [ Partiture e parti > ] | ||
3.4.4 Ridurre l’input grazie a variabili e funzioni
Finora hai visto questo tipo di cose:
hornNotes = \relative { c''4 b dis c }
\score {
{
\hornNotes
}
}
Potresti anche essere accorto che questo può essere utile nella musica minimalista:
fragmentA = \relative { a'4 a8. b16 }
fragmentB = \relative { a'8. gis16 ees4 }
violin = \new Staff {
\fragmentA \fragmentA |
\fragmentB \fragmentA |
}
\score {
{
\violin
}
}
Tuttavia, puoi usare queste variabili (note anche come macro, o comandi definiti dall’utente) anche per le modifiche manuali:
dolce = \markup { \italic \bold dolce }
centreText = { \once \override TextScript.self-alignment-X = #CENTER }
fthenp =_\markup {
\dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
}
violin = \relative {
\repeat volta 2 {
c''4._\dolce b8 a8 g a b |
\centreText
c4.^"hi there!" d8 e f g d |
c4.\fthenp b8 c4 c-. |
}
}
\score {
{
\violin
}
}
Chiaramente queste variabili sono utili per ridurre la quantità di testo da scrivere. Ma vale la pena tenerle in considerazione anche se le usi una volta sola – perché riducono la complessità. Vediamo l’esempio precedente senza alcuna variabile. È molto difficile da leggere, soprattutto l’ultima linea.
violin = \relative {
\repeat volta 2 {
c''4._\markup { \italic \bold dolce } b8 a8 g a b |
\once \override TextScript.self-alignment-X = #CENTER
c4.^"hi there!" d8 e' f g d |
c,4.\markup {
\dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
}
b8 c4 c-. |
}
}
Finora abbiamo visto la sostituzione statica – quando LilyPond
vede \centreText, lo sostituisce con quel che noi abbiamo
definito che sia (ovvero tutto ciò che sta a destra di
centreText=).
LilyPond può gestire anche la sostituzione non statica (la puoi immaginare come una funzione).
padText =
#(define-music-function
(padding)
(number?)
#{
\once \override TextScript.padding = #padding
#})
\relative {
c'''4^"piu mosso" b a b |
\padText #1.8
c4^"piu mosso" d e f |
\padText #2.6
c4^"piu mosso" fis a g |
}
L’uso di variabili è anche un buon modo per ridurre il lavoro quando
la sintassi di input di LilyPond cambia (vedi
Aggiornare i file con convert-ly). Se si ha un’unica
definizione (come \dolce) per tutti i file di input
(vedi Fogli di stile), allora se la sintassi cambia bisogna
aggiornare soltanto la singola definizione \dolce,
invece di dover modificare tutti i file ‘.ly’.
| [ << Concetti fondamentali ] | [Inizio][Contenuti][Indice][ ? ] | [ Modifica dell'output >> ] | ||
| [ < Scrivere una partitura da zero ] | [ Su : Estendere i modelli ] | [ Partiture e parti > ] | ||
Altre lingue: English, català, česky, deutsch, español, français, magyar, 日本語, nederlands.
About automatic language selection.