5.4.6 Estensori
Molti oggetti della notazione musicale si estendono per varie note o addirittura per molte battute. Ne sono un esempio le legature di portamento, le travature, le parentesi dei gruppi irregolari, quelle delle volte delle ripetizioni, i crescendi, i trilli e i glissandi. Tali oggetti in LilyPond si chiamano “spanner”, ovvero estensori, e hanno delle proprietà speciali per regolare il loro aspetto e comportamento. Alcune di queste proprietà sono comuni a tutti gli estensori; altre sono limitate a un sottoinsieme di estensori.
Tutti gli estensori supportano l’interfaccia spanner-interface
. Ma pochi,
essenzialmente quelli che disegnano una linea dritta tra due oggetti, supportano
anche l’interfaccia line-spanner-interface
.
Uso di spanner-interface | ||
Uso di line-spanner-interface |
[ << Modifica delle impostazioni predefinite ] | [Top][Contents][Index] | [ Tabelle del manuale della notazione >> ] |
[ < Estensori ] | [ Up : Estensori ] | [ Uso di line-spanner-interface > ] |
Uso di spanner-interface
Questa interfaccia fornisce due proprietà che si applicano a vari estensori.
La proprietà minimum-length
La lunghezza minima dell’estensore è specificata dalla proprietà
minimum-length
. Aumentando questa si aumenta necessariamente
anche la spaziatura delle note comprese tra le due estremità.
Tuttavia questa modifica non ha effetto su molti estensori, perché
la loro lunghezza è determinata da altre considerazioni. Di seguito
vengono mostrati alcuni esempi in cui è in funzione.
a'~ a' a' % aumenta la lunghezza della legatura di valore -\tweak minimum-length #5 ~ a'
\relative \compressMMRests { a'1 R1*23 % aumenta la lunghezza della misura con pausa \once \override MultiMeasureRest.minimum-length = #20 R1*23 a1 }
\relative { a' \< a a a \! % aumenta la lunghezza della forcella \override Hairpin.minimum-length = #20 a \< a a a \! }
Questa modifica può essere usata anche per aumentare la lunghezza delle legature di portamento e di frase:
\relative { a'( g) a -\tweak minimum-length #5 ( g) a\( g\) a -\tweak minimum-length #5 \( g\) }
Per alcuni oggetti della formattazione, la proprietà minimum-length
diventa effettiva solo se viene richiamata esplicitamente la procedura
set-spacing-rods
. Per farlo, la proprietà springs-and-rods
deve essere impostata su ly:spanner::set-spacing-rods
. Per esempio,
la lunghezza minima di un glissando cambia solo quando si imposta la
proprietà springs-and-rods
:
% default e' \glissando c'' % non funziona da sola \once \override Glissando.minimum-length = #20 e' \glissando c'' % funziona solo quando entrambe le modifiche sono presenti \once \override Glissando.minimum-length = #20 \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods e' \glissando c''
Lo stesso vale per l’oggetto Beam
:
% non funziona da sola \once \override Beam.minimum-length = #20 e'8 e' e' e' % funziona solo quando entrambe le modifiche sono presenti \once \override Beam.minimum-length = #20 \once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods e'8 e' e' e'
La proprietà to-barline
La seconda proprietà utile di spanner-interface
è
to-barline
. Il valore predefinito (vero) fa sì che le forcelle e
gli altri estensori che terminano sulla prima nota di una misura si estendano
invece fino alla stanghetta immediatamente precedente. Se impostata su falso,
l’estensore andrà oltre la stanghetta e terminerà sulla nota stessa:
\relative { a' \< a a a a \! a a a \break \override Hairpin.to-barline = ##f a \< a a a a \! a a a }
Questa proprietà non funziona con tutti gli estensori. Per esempio,
impostandola su #t
non si produce alcun effetto su legature di
portamento o di frase, o su altri estensori per i quali terminare sulla
stanghetta non avrebbe senso.
[ << Modifica delle impostazioni predefinite ] | [Top][Contents][Index] | [ Tabelle del manuale della notazione >> ] |
[ < Uso di spanner-interface ] | [ Up : Estensori ] | [ Visibilità degli oggetti > ] |
Uso di line-spanner-interface
Gli oggetti che supportano l’interfaccia line-spanner-interface
comprendono:
-
DynamicTextSpanner
-
Glissando
-
TextSpanner
-
TrillSpanner
-
VoiceFollower
La routine responsabile del disegno di questi estensori è
ly:line-spanner::print
. Essa determina la posizione esatta
delle due estremità e disegna una linea tra di esse, nello stile
richiesto. Le posizioni delle due estremità dell’estensore sono
calcolate al volo, ma è possibile sovrascrivere le loro coordinate
Y. Le proprietà da specificare sono annidate di due livelli nella
gerarchia della proprietà, ma la sintassi del comando \override
è piuttosto semplice:
e''2 \glissando b' \once \override Glissando.bound-details.left.Y = #3 \once \override Glissando.bound-details.right.Y = #-2 e''2 \glissando b'
Le unità di misura della proprietà Y
sono gli spazi rigo
(staff-space
), con la linea centrale del rigo che è il
punto zero. Per il glissando, questo è il valore per Y
alla
coordinata X che corrisponde al punto centrale della testa di ogni
nota, se si immagina che la linea si estenda fino a là.
Se Y
non è impostato, il valore viene calcolato dalla posizione
verticale del punto di attacco corrispondente dell’estensore.
In caso di un’interruzione di linea, i valori per le estremità sono
specificati dalle sottoliste left-broken
e right-broken
di bound-details
. Per esempio:
\override Glissando.breakable = ##t \override Glissando.bound-details.right-broken.Y = #-3 c''1 \glissando \break f''1
Altre proprietà delle sottoliste left
e right
della proprietà
bound-details
possono essere modificate nello stesso modo di Y
:
Y
Questa imposta la coordinata Y dell’estremità, che si sposta di un certo numero di
staff-space
dalla linea centrale del rigo. Per impostazione predefinita, è il centro dell’oggetto a cui è associato, dunque un glissando punta al centro verticale della testa di nota.Nel caso di estensori orizzontali, come quelli del testo e del trillo, il suo valore è fisso su 0.
attach-dir
Questa determina dove la linea inizia e termina nella direzione X, relativa all’oggetto a cui è associato. Quindi un valore di
-1
(oLEFT
) fa sì che la linea inizi/termini sul lato sinistro della testa della nota a cui è attaccata.X
Questa è la coordinata X assoluta dell’estremità. Viene solitamente calcolata al volo e sovrascriverla produce solitamente un effetto poco utile.
stencil
Gli estensori della linea possono avere dei simboli all’inizio o alla fine, contenuti in questa sottoproprietà. Questa proprietà è per uso interno; si raccomanda di usare
text
al suo posto.text
Questo è un testo markup che viene valutato per produrre lo stampo (stencil, in inglese). Viene usato per mettere cresc., tr e altro testo su estensori orizzontali.
\override TextSpanner.bound-details.left.text = \markup { \small \bold Rall. } \relative { c''2\startTextSpan b c a\stopTextSpan }
stencil-align-dir-y
stencil-offset
Se non si imposta una di queste proprietà, lo stampo viene messo semplicemente all’estremità, centrato sulla linea, come definito nelle sottoproprietà
X
eY
. Impostandostencil-align-dir-y
ostencil-offset
il simbolo si sposterà verticalmente sul margine rispetto all’estremità della linea:\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2 \override TextSpanner.bound-details.right.stencil-align-dir-y = #UP \override TextSpanner.bound-details.left.text = "ggg" \override TextSpanner.bound-details.right.text = "hhh" \relative { c'4^\startTextSpan c c c \stopTextSpan }
Nota bene che valori negativi spostano il testo in su, contrariamente a quanto si potrebbe pensare, perché un valore di
-1
oDOWN
fa sì che si allinei il margine inferiore del testo con la linea dell’estensore. Un valore di1
oUP
allinea il margine superiore del testo con la linea dell’estensore.arrow
Impostando questa sottoproprietà su
#t
viene generata la punta di una freccia a un’estremità della linea.padding
Questa sottoproprietà regola lo spazio tra l’estremità della linea specificata e la fine reale. Senza padding, un glissando inizia e termina nel centro della testa di ogni nota.
La funzione musicale \endSpanners
termina prematuramente l’estensore
che inizia nella nota immediatamente seguente. Viene terminato esattamente
dopo una nota o alla stanghetta seguente se to-barline
è impostato
su vero e c’è una stanghetta prima della nota successiva.
\relative c'' { \endSpanners c2 \startTextSpan c2 c2 \endSpanners c2 \< c2 c2 }
Quando si usa \endSpanners
non è necessario chiudere
\startTextSpan con \stopTextSpan, né è necessario chiudere le
forcelle con \!
.
Vedi anche
Guida al funzionamento interno: TextSpanner, Glissando, VoiceFollower, TrillSpanner, line-spanner-interface.
[ << Modifica delle impostazioni predefinite ] | [Top][Contents][Index] | [ Tabelle del manuale della notazione >> ] |
[ < Uso di spanner-interface ] | [ Up : Estensori ] | [ Visibilità degli oggetti > ] |