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 ] | [Inizio][Contenuti][Indice] | [ Tabelle del manuale della notazione >> ] | 
| [ < Estensori ] | [ Su : Estensori ] | [ Uso di line-spanner-interface > ] | 
Uso di spanner-interface
Questa interfaccia fornisce tre 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à minimum-length-after-break
La proprietà minimum-length-after-break può essere usata per
allungare stensori spezzati dopo un a capo.
Come per la proprietà minimum-length, viene spesso usata per impostare
la proprietà springs-and-rods su ly:spanner::set-spacing-rods.
{ \once \override Tie.minimum-length-after-break = 20 a1~ \break a1 \once \override Slur.minimum-length-after-break = 20 a1( \break d'1) \once \override TextSpanner.springs-and-rods = #ly:spanner::set-spacing-rods \once \override TextSpanner.minimum-length-after-break = 20 a1\startTextSpan \break a1\stopTextSpan \once \override Hairpin.after-line-breaking = ##t \once \override Hairpin.to-barline = ##f \once \override Hairpin.minimum-length-after-break = 20 a1\< \break a1\! \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods \once \override Glissando.breakable = ##t \once \override Glissando.after-line-breaking = ##t \once \override Glissando.minimum-length-after-break = 20 a1\glissando \break d'1 }
 La proprietà to-barline
La terza 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 ] | [Inizio][Contenuti][Indice] | [ Tabelle del manuale della notazione >> ] | 
| [ < Uso di spanner-interface ] | [ Su : 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-spacedalla 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(o- LEFT) 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 - textal 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à - Xe- Y. Impostando- stencil-align-dir-yo- stencil-offsetil 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 - -1o- DOWNfa sì che si allinei il margine inferiore del testo con la linea dell’estensore. Un valore di- 1o- UPallinea il margine superiore del testo con la linea dell’estensore.
-  arrow
- Impostando questa sottoproprietà su - #tviene 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 ] | [Inizio][Contenuti][Indice] | [ Tabelle del manuale della notazione >> ] | 
| [ < Uso di spanner-interface ] | [ Su : Estensori ] | [ Visibilità degli oggetti > ] | 
![[image of music]](../95/lily-da71e1fa.png)
![[image of music]](../48/lily-cadbab86.png)
![[image of music]](../30/lily-48171a38.png)
![[image of music]](../45/lily-0a2bf799.png)
![[image of music]](../97/lily-153001e2.png)
![[image of music]](../75/lily-52b5ef89.png)
![[image of music]](../66/lily-da9ae651.png)
![[image of music]](../58/lily-3c43c1b5.png)
![[image of music]](../67/lily-dade2278.png)
![[image of music]](../3c/lily-bda777e3.png)
![[image of music]](../2e/lily-00363041.png)
![[image of music]](../fc/lily-72205ab8.png)
![[image of music]](../ad/lily-afa12921.png)