[ << Concetti fondamentali ] | [Inizio][Contenuti][Indice][ ? ] | [ Tweaking output >> ] | ||
[ < Scrivere una partitura da zero ] | [ Su : Estendere i modelli ] | [ Partiture e parti > ] |
3.4.4 Ridurre le dimensioni del file grazie a variabili e funzioni
Finora hai visto questo tipo di cose:
hornNotes = \relative c'' { c4 b dis c } \score { { \hornNotes } }
Potresti anche essere accorto che questo può essere utile nella musica minimalista:
fragmentA = \relative c'' { a4 a8. b16 } fragmentB = \relative c'' { a8. 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 } padText = { \once \override TextScript #'padding = #5.0 } fthenp=_\markup{ \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p } violin = \relative c'' { \repeat volta 2 { c4._\dolce b8 a8 g a b | \padText c4.^"hi there!" d8 e' f g d | c,4.\fthenp b8 c4 c-. | } } \score { { \violin } \layout{ragged-right=##t} }
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 c'' { \repeat volta 2 { c4._\markup{ \italic \bold dolce } b8 a8 g a b | \once \override TextScript #'padding = #5.0 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 \padText
, lo sostituisce con quel che noi abbiamo
definito che sia (ovvero tutto ciò che sta a destra di
padtext=
).
LilyPond può gestire anche la sostituzione non statica (la puoi immaginare come una funzione).
padText = #(define-music-function (parser location padding) (number?) #{ \once \override TextScript #'padding = #$padding #}) \relative c''' { c4^"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
Updating files with convert-ly). Se tu hai una
una definizione singola (come \dolce
) per tutti i tuoi file
di input (vedi @ref{Style sheets}), poi se la sintassi cambia devi
soltanto aggiornare la tua singola definizione \dolce
,
invece di dover modificare tutti i file .ly
.
[ << Concetti fondamentali ] | [Inizio][Contenuti][Indice][ ? ] | [ Tweaking output >> ] | ||
[ < Scrivere una partitura da zero ] | [ Su : Estendere i modelli ] | [ Partiture e parti > ] |
Other languages: English, deutsch, español, français, 日本語, nederlands.