5.6.2 Esempi della funzione di sostituzione

Questa sezione presenta alcuni esempi di funzione di sostituzione. L’obiettivo non è fornire un elenco esaustivo, ma mostrare soltanto alcune delle possibilità di semplici funzioni di sostituzione.

Nel primo esempio, viene definita una funzione che semplifica il padding di un oggetto TextScript:

padText =
#(define-music-function
 (padding)
 (number?)
 #{
 \once \override TextScript.padding = #padding
 #})
\relative {
 c''4^"più mosso" b a b
 \padText #1.8
 c4^"più mosso" b a b
 \padText #2.6
 c4^"più mosso" b a b
}

[image of music]

Oltre ai numeri, si possono usare come argomenti delle funzioni musicali anche le espressioni musicali, come le note:

custosNote =
#(define-music-function
 (note)
 (ly:music?)
 #{
 \tweak NoteHead.stencil #ly:text-interface::print
 \tweak NoteHead.text
 \markup \musicglyph "custodes.mensural.u0"
 \tweak Stem.stencil ##f
 #note
 #})
\relative { c'4 d e f \custosNote g }

[image of music]

Entrambe queste funzioni sono semplici espressioni singole dove manca soltanto l’ultimo elemento di una chiamata di una funzione o di una sovrascrittura. Per queste particolari definizioni di funzione, esiste una sintassi alternativa più semplice, che consiste nello scrivere interamente la parte costante dell’espressione e sostituire il suo elemento finale mancante con \etc:

padText =
 \once \override TextScript.padding = \etc
\relative {
 c''4^"più mosso" b a b
 \padText #1.8
 c4^"più mosso" b a b
 \padText #2.6
 c4^"più mosso" b a b
}

[image of music]

custosNote =
 \tweak NoteHead.stencil #ly:text-interface::print
 \tweak NoteHead.text
 \markup \musicglyph "custodes.mensural.u0"
 \tweak Stem.stencil ##f
 \etc
\relative { c'4 d e f \custosNote g }

[image of music]

Si possono definire funzioni di sostituzione con molteplici argomenti:

tempoPadded =
#(define-music-function
 (padding tempotext)
 (number? markup?)
 #{
 \once \override Score.MetronomeMark.padding = #padding
 \tempo \markup { \bold #tempotext }
 #})
\relative {
 \tempo \markup { "Tempo basso" }
 c''4 d e f g1
 \tempoPadded #4.0 "Tempo alto"
 g4 f e d c1
}

[image of music]


<< Torna all'indice della documentazione

LilyPond — Guida alla Notazione v2.21.82 (ramo di sviluppo).

AltStyle によって変換されたページ (->オリジナル) /