| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Useful concepts and properties
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Input modes
Il modo in cui la notazione contenuta in un file di input è interpretata è
determinato dalla modalità di inserimento corrente. In generale, esistono
due modi di specificare la modalità: una forma lunga, come \chordmode,
e una breve, come \chords. La forma lunga viene usata tipicamente
quando si passa l’input a una variabile o quando si inserisce l’input
direttamente in un contesto creato esplicitamente. La forma breve crea
implicitamente un contesto del tipo corretto per quell’input e passa l’input
a questo direttamente. È utile in casi semplici in cui non è necessario
creare esplicitamente il contesto.
Viene attivata col comando \chordmode e fa sì che l’input
sia interpretato con la sintassi della notazione degli accordi, vedi
Notazione per accordi. La musica in modalità accordo viene elaborata
come accordi su un rigo se inserita in un contesto Staff, come
nomi di accordo se inserita in un contesto ChordNames oppure come
diagrammi della tastiera se inserita in un contesto FretBoards.
La modalità accordo viene attivata anche col comando \chords.
Anche questo fa sì che l’input che segue sia interpretato con la sintassi
della notazione degli accordi, ma in aggiunta crea implicitamente un nuovo
contesto ChordNames e elabora l’input al suo interno come nomi di
accordo, vedi Stampa dei nomi degli accordi.
Viene attivata col comando \drummode e fa sì che l’input
sia interpretato con la sintassi della notazione delle percussioni,
vedi Notazione di base per percussioni. La musica in modalità percussioni
è elaborata come note percussive se inserita in un contesto DrumStaff.
La modalità percussioni viene attivata anche col comando \drums.
Anche questo fa sì che l’input che segue sia interpretato con la sintassi
della notazione delle percussioni, ma in aggiunta crea implicitamente un
nuovo contesto DrumStaff e elabora l’input come note percussive,
vedi Notazione di base per percussioni.
Viene attivata col comando \figuremode e fa sì che
l’input che segue sia interpretato con la sintassi del basso
continuo, vedi Inserimento del basso continuo. La musica in modalità
basso continuo viene elaborata come basso continuo se inserita in un
contesto FiguredBass o in un contesto Staff.
La modalità basso continuo viene attivata anche col comando \figures.
Anche questo fa sì che l’input che segue sia interpretato con la sintassi
del basso continuo, ma in aggiunta crea implicitamente un nuovo contesto
FiguredBass e elabora l’input al suo interno come basso figurato,
vedi Introduzione al basso continuo.
Non esistono speciali modalità di inserimento per i simboli della tastiera e dell’intavolatura (o tablatura).
Per creare diagrammi in intavolatura, inserire note o accordi nella modalità
nota e visualizzarli in un contesto TabStaff, vedi
Intavolature predefinite.
Per creare diagrammi della tastiera sopra un rigo, inserire le note o gli
accordi in modalità nota o in modalità accordo e elaborarli in un contesto
FretBoards, vedi Diagrammi dei tasti automatici. Altrimenti i diagrammi
possono essere inseriti come testo (markup) sopra le note usando il comando
\fret-diagram, vedi Diagrammi dei tasti.
Viene attivata col comando \lyricmode e fa sì che l’input
sia interpretato come sillabe del testo vocale con durate opzionali
e modificatori del testo associato, vedi Musica vocale. L’input in
modalità testo vocale viene elaborato come sillabe del testo se inserite
in un contesto Lyrics.
La modalità testo vocale viene attivata anche col comando \lyrics.
Anche questo fa sì che l’input che segue sia interpretato come sillabe del
testo ma in aggiunta crea implicitamente un nuovo contesto Lyrics e
elabora l’input al suo interno come sillabe.
La modalità testo vocale viene attivata anche col comando \addlyrics.
Anche questo crea implicitamente un nuovo contesto Lyrics e aggiunge
anche un comando implicito \lyricsto che associa il testo vocale che
segue con la musica che lo precede, vedi Durate automatiche delle sillabe..
Viene attivata col comando \markup e fa sì che l’input
sia interpretato con la sintassi di markup, vedi
Comandi per markup.
Questa è la modalità predefinita e può essere attivata esplicitamente
col comando \notemode. L’input viene interpretato come altezze,
durate, markup, etc. e rappresentato come notazione musicale su un rigo.
Normalmente non è necessario specificare la modalità nota esplicitamente, ma potrebbe essere utile farlo in alcune situazioni, per esempio se si è in modalità testo vocale o accordo o qualsiasi altra modalità e si vuole inserire qualcosa che può essere fatto solo con la sintassi della modalità nota.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Direction and placement
Nella composizione tipografica musicale la direzione e il posizionamento di molti elementi è una questione di gusto. Per esempio, i gambi delle note possono essere rivolti in su o in giù; testi, dinamiche e altri segni espressivi possono essere posti sopra o sotto il rigo; il testo può essere allineato a sinistra, destra o al centro; etc. La maggior parte di queste scelte possono essere lasciate alla decisione di LilyPond, ma in alcuni casi si può voler forzare una direzione o un posizionamento particolari.
| Indicatori di direzione delle articolazioni | ||
| La proprietà direction |
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Articulation direction indicators
Per impostazione predefinita alcune direzioni sono sempre in su o sempre in giù (es: le dinamiche o la corona), mentre altri elementi possono alternare tra su e giù in base alla direzione del gambo (come le legature di portamento o gli accenti).
L’azione predefinita può essere modificata anteponendo all’articolazione
un indicatore di direzione. Sono disponbibili tre indicatori
di direzione: ^ (ovvero “su”), _ (ovvero “giù”)
e - (ovvero “usa la direzione predefinita”). L’indicatore di
direzione solitamente può essere omesso, nel qual caso viene supposto -,
ma un indicatore di direzione è sempre richiesto prima di
\tweak
\markup
\tag
-1
-., ->, --
Gli indicatori di direzione hanno effetto soltanto sulla nota vicina:
\relative { c''2( c) c2_( c) c2( c) c2^( c) }
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof The direction property
La posizione della direzione di molti oggetti della formattazione è regolata
dalla proprietà direction.
Il valore della proprietà direction può essere impostata su 1,
ovvero “su” o “sopra”, oppure su -1, ovvero “giù” o
“sotto”. I simboli UP e DOWN possono essere usati al
posto di 1 e -1. La direzione predefinita può essere
specificata impostando direction su 0 o CENTER.
Altrimenti, in molti casi esistono comandi predefiniti per specificare la
direzione. Questo hanno la forma
\xxxUp, \xxxDown o \xxxNeutral |
dove \xxxNeutral significa “usa la direzione predefinita”.
Vedi
(learning)Oggetti interni al rigo section ‘Oggetti interni al rigo’ in Manuale di Apprendimento.
In pochi casi, per esempio l’arpeggio, il valore della proprietà direction
può specificare se l’oggetto debba essere posizionato a destra o a sinistra
dell’oggetto genitore. In questo caso -1 o LEFT significano
“a sinistra” e 1 o RIGHT significano “a destra”.
0 o CENTER significano “usa la direzione predefinita”.
Queste indicazioni hanno effetto su tutte le note finché non vengono annullate.
\relative { c''2( c) \slurDown c2( c) c2( c) \slurNeutral c2( c) }
Nella musica polifonica, generalmente è meglio specificare una voce esplicita invece di cambiare la direzione di un oggetto. Maggiori informazioni in Più voci.
Manuale di apprendimento: (learning)Oggetti interni al rigo section ‘Oggetti interni al rigo’ in Manuale di Apprendimento.
Guida alla notazione: Più voci.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Distances and measurements
Le distanze in LilyPond sono di due tipi: assolute e proporzionali.
Le distanze assolute si usano per specificare i margini, le indentazioni e
altri dettagli della formattazione di pagina; per impostazione predefinita
sono specificate in millimetri. Le distanze possono essere specificate in
altre unità di misura appendendo alla quantità \mm, \cm,
\in (inch, ovvero pollici) o \pt (punti, 1/72.27 di
un pollice). Le distanze della formattazione di pagina possono essere
specificate anche in unità di misura proporzionali (vedi paragrafo seguente)
appendendo \staff-space alla quantità. La formattazione di pagina è
trattata dettagliatamente in Formattazione della pagina.
Le distanze proporzionali sono sempre specificate in unità di spazi
rigo o, raramente, mezzo spazio rigo. Lo spazio rigo è la distanza
tra due linee del rigo adiacenti. Il valore predfinito può essere
modificato globalmente impostando la dimensione globale del rigo oppure
può essere sovrascritto localmente cambiando la proprietà staff-space
di StaffSymbol. Le distanze proporzionali vengono ridimensionate
automaticamente insieme a qualsiasi cambiamento nella dimensione globale
del rigo o nella proprietà staff-space di StaffSymbol, mentre i
tipi di carattere vengono ridimensionati automaticamente soltanto con i
cambiamenti alla dimensione globale del rigo. Questa permette quindi di
variare facilmente la dimensione complessiva di una partitura. I metodi
per impostare la dimensione globale del rigo sono descritti in
Impostare la dimensione del rigo.
Se soltanto una sezione di una partitura deve essere elaborata su una
scala diversa, per esempio una sezione ossia o una nota a piè di pagina,
non si può cambiare la dimensione globale del rigo perché ciò avrebbe
effetto sull’intera partitura. In questi casi bisogna modificare sia
la proprietà staff-space di StaffSymbol sia la dimensione
dei tipi di carattere. Esiste una funzione Scheme, magstep, che
permette di convertire una modifica della dimensione del tipo di carattere
nella modifica equivalente in staff-space. Questa funzione è spiegata
e esemplificata in
(learning)Lunghezza e spessore degli oggetti section ‘Lunghezza e spessore degli oggetti’ in Manuale di Apprendimento.
Manuale di apprendimento: (learning)Lunghezza e spessore degli oggetti section ‘Lunghezza e spessore degli oggetti’ in Manuale di Apprendimento.
Guida alla notazione: Formattazione della pagina, Impostare la dimensione del rigo.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Dimensions
Le dimensioni di un oggetto grafico specificano le posizioni delle estremità
sinistra e destra e di quelle inferiore e superiore del riquadro in cui sono
iscritti gli oggetti come distanze dal punto di riferimento degli oggetti in
unità di spazi rigo. Queste posizioni sono solitamente scritte come due
coppie Scheme. Per esempio, il comando di testo \with-dimensions prende
tre argomenti: i primi due sono una coppia Scheme che indica le posizioni
delle estremità sinistra e destra e un’altra coppia Scheme che indica le
posizioni delle estremità inferiore e superiore:
\with-dimensions #'(-5 . 10) #'(-3 . 15) arg |
Questo comando specifica un riquadro per arg il cui margine sinistro si trova a -5, il margine destro a 10, il margine inferiore a -3 e quello superiore a 15, tutti misurati a partire dal punto di riferimento degli oggetti in unità di spazi rigo.
Guida alla notazione: Distanze e misurazioni.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Staff symbol properties
La posizione verticale e il numero delle linee del rigo possono essere definiti contemporaneamente. Come mostra l’esempio seguente, le posizioni delle note non sono influenzate dalle posizioni delle linee del rigo.
Nota: La proprietà 'line-positions sovrascrive la proprietà
'line-count. Il numero di linee del rigo è definito implicitamente
dal numero di elementi nella lista di valori per 'line-positions.
\new Staff \with { \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7) } \relative { a4 e' f b | d1 }
La larghezza di un rigo può essere modificata. Le unità sono spazi rigo. La spaziatura degli oggetti dentro il rigo non è influenzata da questa impostazione.
\new Staff \with { \override StaffSymbol.width = #23 } \relative { a4 e' f b | d1 }
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Spanners
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 |
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
spanner-interface@translationof Using the spanner-interface
Questa interfaccia fornisce due proprietà che si applicano a vari estensori.
minimum-lengthLa 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'
to-barlineLa 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.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
line-spanner-interface@translationof Using the 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:
YQuesta 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-dirQuesta 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.
XQuesta è la coordinata X assoluta dell’estremità. Viene solitamente calcolata al volo e sovrascriverla produce solitamente un effetto poco utile.
stencilGli 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.
textQuesto è 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-ystencil-offsetSe non si imposta una di queste proprietà, lo stampo viene messo semplicemente
all’estremità, centrato sulla linea, come definito nelle sottoproprietà
X e Y. Impostando stencil-align-dir-y o
stencil-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 o
DOWN fa sì che si allinei il margine inferiore del testo con
la linea dell’estensore. Un valore di 1 o UP allinea il margine
superiore del testo con la linea dell’estensore.
arrowImpostando questa sottoproprietà su #t viene generata la punta di una
freccia a un’estremità della linea.
paddingQuesta 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 \!.
Guida al funzionamento interno: (internals)TextSpanner section ‘TextSpanner’ in Guida al Funzionamento Interno, (internals)Glissando section ‘Glissando’ in Guida al Funzionamento Interno, (internals)VoiceFollower section ‘VoiceFollower’ in Guida al Funzionamento Interno, (internals)TrillSpanner section ‘TrillSpanner’ in Guida al Funzionamento Interno, (internals)line-spanner-interface section ‘line-spanner-interface’ in Guida al Funzionamento Interno.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Visibility of objects
Esistono quattro modi principali per regolare la visibilità degli oggetti della
formattazione: si può togliere il loro stampo, possono essere resi trasparenti,
possono essere colorati di bianco o si può sovrascrivere la loro proprietà
break-visibility. Le prime tre sono valide per tutti gli oggetti
della formattazione; l’ultimo solo per alcuni, gli oggetti che possono essere
interrotti, o spezzati, (break, in inglese).
Il Manuale di apprendimento contiene un’introduzione a queste quattro tecniche
in
(learning)Visibilità e colore degli oggetti section ‘Visibilità e colore degli oggetti’ in Manuale di Apprendimento.
Esistono anche altre tecniche che sono specifiche di alcuni oggetti della formattazione. Queste sono trattate in Considerazioni speciali.
| Soppressione dello stampo | ||
| Rendere gli oggetti trasparenti | ||
| Dipingere gli oggetti di bianco | ||
| Uso di break-visibility | ||
| Considerazioni speciali |
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Removing the stencil
Tutti gli oggetti della formattazione hanno una proprietà stencil (in
italiano, stampo). Per impostazione predefinita questa è impostata sulla
funzione specifica che disegna quell’oggetto. Se questa proprietà viene
sovrascritta e impostata su #f, non verrà richiamata alcuna funzione
e l’oggetto non verrà disegnato. L’azione predefinita può essere ripristinata
con \revert.
a1 a \override Score.BarLine.stencil = ##f a a \revert Score.BarLine.stencil a a a
Questa operazione piuttosto comune ha una scorciatoia, \omit:
a1 a \omit Score.BarLine a a \undo \omit Score.BarLine a a a
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Making objects transparent
Tutti gli oggetti della formattazione hanno una proprietà transparent
la cui impostazione predefinita è #f (falso). Se impostata su #t
(vero), l’oggetto occupa sempre lo spazio ma è reso invisibile.
a'4 a' \once \override NoteHead.transparent = ##t a' a'
Questa operazione piuttosto comune ha una scorciatoia, \hide:
a'4 a' \once \hide NoteHead a' a'
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Painting objects white
Tutti gli oggetti della formattazione hanno una proprietà del colore il cui
valore predefinito è black (nero). Se questa viene sovrascritta con
white (bianco) l’oggetto non sarà più distinguibile dallo sfondo. Tuttavia
se l’oggetto attraversa altri oggetti, il colore dei punti di contatto saranno
determinati dall’ordine in cui sono disegnati, e ciò potrebbe lasciare
un’immagine “spettrale” dell’oggetto bianco, come mostrato qui:
\override Staff.Clef.color = #white a'1
Ciò può essere evitato cambiando l’ordine di stampa degli oggetti.
Tutti gli oggetti della formattazione hanno una proprietà layer
(strato) che deve essere impostata su un numero intero.
Gli oggetti col valore più basso di layer sono disegnati
per primi, poi vengono disegnati quelli con valori via via più
alti, dunque gli oggetti con valori più alti stanno sopra gli
oggetti con valori più bassi. Per impostazione predefinita alla
maggior parte degli oggetti viene assegnato un valore di layer
pari a 1, sebbene ad alcuni oggetti, tra cui StaffSymbol e
BarLine, sia assegnato un valore di 0. L’ordine con cui
vengono stampati oggetti con lo stesso valore di layer è indeterminato.
Nell’esempio precedente la chiave bianca, con un valore predefinito di
layer di 1, viene disegnato dopo le linee del rigo (il cui
valore predefinito di layer è 0), dunque sta sopra di esse.
Per cambiare tale comportamento, all’oggetto Clef deve essere assegnato
un valore di layer inferiore, per esempio -1, in modo che
venga disegnato prima:
\override Staff.Clef.color = #white \override Staff.Clef.layer = #-1 a'1
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Using break-visibility
La maggior parte degli oggetti della formattazione sono stampati una
volta sola, ma alcuni come le stanghette, le chiavi, le indicazioni
di tempo e le armature di chiave possono dover essere stampate
due volte quando si verifica un’interruzione di linea – una volta al
termine della linea e di nuovo all’inizio della linea successiva.
Tali oggetti, chiamati spezzabili, (dall’inglese breakable)
hanno una proprietà, break-visibility, per regolare
la loro visibilità nelle tre posizioni in cui potrebbero apparire:
all’inizio di una linea, in mezzo a una linea se vengono modificati
e al termine di una linea se un cambiamento ha luogo lì.
Per esempio, l’indicazione di tempo viene stampata all’inizio della prima linea, ma da nessuna altra parte a meno che non cambi e allora verrà stampata nel punto in cui il cambiamento ha luogo. Se tale cambiamento si verifica al termine di una linea, la nuova indicazione di tempo verrà stampata all’inizio della linea successiva e un’indicazione di tempo di precauzione verrà stampata anche al termine della linea precedente.
Tale comportamento è regolato dalla proprietà break-visibility, che
è spiegata in
(learning)Visibilità e colore degli oggetti section ‘Visibilità e colore degli oggetti’ in Manuale di Apprendimento. Questa proprietà
prende un vettore di tre valori booleani che, in ordine, determinano se
l’oggetto è stampato al termine, in mezzo o all’inizio di una linea. O, per
essere più precisi, prima di un’interruzione di linea, dove non c’è
un’interruzione di linea oppure dopo un’interruzione di linea.
Altrimenti, queste otto combinazoni possono essere specificate da funzioni predefinite, definite in ‘scm/output-lib.scm’, dove le ultime tre colonne indicano se gli oggetti della formattazione saranno visibili nelle posizioni mostrate nell’intestazione delle colonne:
| Funzione | Forma | Prima di | Senza | Dopo |
|---|---|---|---|---|
| vettoriale | interruzione | interruzione | interruzione | |
all-visible | #(#t #t #t) | sì | sì | sì |
begin-of-line-visible | #(#f #f #t) | no | no | sì |
center-visible | #(#f #t #f) | no | sì | no |
end-of-line-visible | #(#t #f #f) | sì | no | no |
begin-of-line-invisible | #(#t #t #f) | sì | sì | no |
center-invisible | #(#t #f #t) | sì | no | sì |
end-of-line-invisible | #(#f #t #t) | no | sì | sì |
all-invisible | #(#f #f #f) | no | no | no |
Le impostazioni predefinite di break-visibility dipendono dall’oggetto
della formattazione. La tabella seguente mostra tutti gli oggetti rilevanti
che sono influenzati da break-visibility e l’impostazione predefinita
di questa proprietà:
| Oggetto formattazione | Contesto abituale | Impostazione predefinita |
|---|---|---|
BarLine | Score | calcolato |
BarNumber | Score | begin-of-line-visible |
BreathingSign | Voice | begin-of-line-invisible |
Clef | Staff | begin-of-line-visible |
Custos | Staff | end-of-line-visible |
DoublePercentRepeat | Voice | begin-of-line-invisible |
KeyCancellation | Staff | begin-of-line-invisible |
KeySignature | Staff | begin-of-line-visible |
ClefModifier | Staff | begin-of-line-visible |
RehearsalMark | Score | end-of-line-invisible |
TimeSignature | Staff | all-visible |
L’esempio successivo mostra l’uso della forma vettoriale per regolare la visibilità delle stanghette:
\relative { f'4 g a b f4 g a b % Toglie la stanghetta al termine della linea corrente \once \override Score.BarLine.break-visibility = ##(#f #t #t) \break f4 g a b f4 g a b }
Sebbene tutti i componenti del vettore usati per sovrascrivere
break-visibility debbano essere presenti, non tutti sono
funzionanti con qualsiasi oggetto della formattazione, e alcune
combinazioni potrebbero perfino dare errore. Esistono le seguenti
limitazioni:
1.
begin-of-line-invisible per stampare e all-invisible per
sopprimere.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Special considerations
La proprietà break-visibility controlla la visibilità delle
armature di chiave e dei cambi di chiave solo all’inizio delle linee,
ovvero dopo un’interruzione di linea. Non ha effetto sulla visibilità
dell’armatura di chiave o della chiave che seguono un cambio esplicito
dell’armatura o della chiave all’interno o alla fine di una linea.
Nell’esempio seguente l’armatura di chiave che segue il cambio esplicito
a Si bemolle maggiore è ancora visibile, anche se all-invisible
è impostata.
\relative { \key g \major f'4 g a b % Tentativo di eliminazione di tutte le armature di chiave \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }
La visibilità di questi cambi espliciti di armatura e di chiave è
controllata dalle proprietà explicitKeySignatureVisibility e
explicitClefVisibility. Sono equivalenti alla proprietà
break-visibility e prendono entrambe come argomento un vettore
di tre booleani o le funzioni predefinite elencate prima, proprio
come break-visibility. Entrambe le proprietà appartengono al
contesto Staff, non agli oggetti della formattazione stessi, dunque
si impostano col comando \set. La loro impostazione predefinita
è all-visible. Queste proprietà regolano solo la visibilità
di armature di chiave e chiavi risultanti da cambi espliciti e non
quelli all’inizio delle linee; per eliminare questi ultimi bisogna
sempre sovrascrivere break-visibility nell’oggetto appropriato.
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }
Per eliminare i bequadri stampati su un cambio di chiave esplicito,
impostare la proprietà del contesto Staff printKeyCancellation
su #f:
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.printKeyCancellation = ##f \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }
Con queste modifiche restano solo le alterazioni accanto alle note per indicare il cambio di armatura.
Nota bene che quando si cambia l’armatura su Do maggiore o La minore
i bequadri sono l’unica indicazione del cambio di chiave. In questo
caso impostando printKeyCancellation su #f non si ottiene
alcun effetto:
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.printKeyCancellation = ##f \key c \major f4 g a b \break f4 g a b f4 g a b }
Per sopprimere i bequadri anche quando la tonalità passa a
Do maggiore o La minore, sovrascrivere la
visibilità del grob KeyCancellation:
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \override Staff.KeyCancellation.break-visibility = #all-invisible \key c \major f4 g a b \break f4 g a b f4 g a b }
In un caso particolare, la stampa delle stanghette può essere disattivata
impostando la proprietà automaticBars nel contesto Score. Se impostata
su #f, le stanghette non verranno stampate automaticamente; devono
invece essere create esplicitamente con un comando \bar. Diversamente
dal comando predefinito \cadenzaOn, le misure vengono comunque contate.
La generazione delle battute riprenderà in base a quel conteggio se questa
proprietà viene poi impostata su #t. Se impostata su #f, le
interruzioni di linea possono trovarsi solo su comandi \bar espliciti.
Il piccolo simbolo di trasposizione sulle chiavi trasposte è prodotto
dall’oggetto di formattazione ClefModifier. La sua visibilità
è ereditata automaticamente dall’oggetto Clef, dunque non è necessario
applicare una modifica di break-visibility agli oggetti ClefModifier
per sopprimere i simboli di trasposizione per le chiavi invisibili.
Per cambi di chiave espliciti, la proprietà explicitClefVisibility
regola sia il simbolo della chiave che qualsiasi simbolo di trasposizione
ad esso associato.
Manuale di apprendimento: (learning)Visibilità e colore degli oggetti section ‘Visibilità e colore degli oggetti’ in Manuale di Apprendimento.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Line styles
Alcune indicazioni esecutive, come rallentando, accelerando e trilli sono scritte in forma testuale e sono estese per varie misure tramite delle linee, talvolta puntate o ondulate.
Queste usano tutte le stesse routine del glissando per disegnare i
testi e le linee, dunque il loro comportamento viene modificato nello
stesso modo. Viene fatto con un estensore, e la routine responsabile
del disegno degli estensori è ly:line-spanner::print. Questa
routine determina la posizione esatta dei due punti di estensione e
disegna una linea tra loro, nello stile richiesto.
Ecco un esempio che mostra i vari stili di linea disponibili, e come impostarli..
\relative { d''2 \glissando d'2 \once \override Glissando.style = #'dashed-line d,2 \glissando d'2 \override Glissando.style = #'dotted-line d,2 \glissando d'2 \override Glissando.style = #'zigzag d,2 \glissando d'2 \override Glissando.style = #'trill d,2 \glissando d'2 }
I punti delle estremità dell’estensore sono calcolati al volo per ogni oggetto grafico, ma è possibile sovrascriverli:
\relative { e''2 \glissando f \once \override Glissando.bound-details.right.Y = #-2 e2 \glissando f }
Il valore di Y è impostato su -2 per l’estremità
destra. Quella sinistra può essere aggiustata ugualmente specificando
left invece di right.
Se Y non è impostata, il valore è calcolato a partire dalla posizione
verticale dei punti di attacco sinistro e destro dell’estensore.
Sono possibili altre modifiche degli estensori; maggiori dettagli in Estensori.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Rotating objects
Sia gli oggetti della formattazione che il testo compreso in un blocco markup possono essere ruotati di qualsiasi angolo in quasi qualsiasi punto, ma il metodo per farlo cambia.
| Rotazione degli oggetti della formattazione | ||
| Rotazione del testo |
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Rotating layout objects
Tutti gli oggetti della formattazione che supportano l’interfaccia
grob-interface possono essere ruotati impostando la loro
proprietà rotation. Questa prende come argomento una lista
di tre elementi: l’angolo di rotazione in senso antiorario, e le
coordinate x e y del punto relativo al punto di riferimento dell’oggetto
intorno al quale si deve eseguire la rotazione. L’angolo di rotazione
è specificato in gradi e le coordinate in spazi rigo.
L’angolo di rotazione e le coordinate del punto di rotazione devono essere determinate per prova e errore.
Esistono solo poche situazioni in cui la rotazione degli oggetti della formattazione è utile; l’esempio seguente ne mostra uno:
g4\< e' d'' f''\! \override Hairpin.rotation = #'(15 -1 0) g4\< e' d'' f''\!
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Rotating markup
Tutto il testo in un blocco \markup può essere ruotato di qualsiasi
angolo facendolo precedere dal comando \rotate. Il comando prende
due argomenti: l’angolo di rotazione in gradi in senso antiorario e il
testo da ruotare. Le estensioni del testo non sono ruotate: prendono il
loro valore dagli estremi delle coordinate x e y del testo ruotato.
Nell’esempio seguente la proprietà outside-staff-priority del testo
è impostata su #f per disabilitare l’elusione automatica delle collisioni,
che spingerebbe parte del testo troppo in alto.
\override TextScript.outside-staff-priority = ##f g4^\markup { \rotate #30 "un Sol" } b^\markup { \rotate #30 "un Si" } des'^\markup { \rotate #30 "un Re bemolle" } fis'^\markup { \rotate #30 "un Fa diesis" }
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] |
This document was generated by gub on Luglio 13, 2020 using texi2html 1.82.
Altre lingue: English, català, deutsch, español, français, 日本語.
A proposito della selezione automatica della lingua.