@c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
@ignore
- Translation of GIT committish: 6da27f9b294c385ff8fc75876e152d67f0b4794e
+ Translation of GIT committish: 5ae5c88bdb1a478263ed874cb823ec58dafc93f9
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.17.6"
+@c \version "2.19.22"
@node Modifica dell'output
@chapter Modifica dell'output
* Manuale del Funzionamento interno::
* Aspetto degli oggetti::
* Posizionamento degli oggetti::
+* Spaziatura verticale::
* Collisioni tra oggetti::
* Altre modifiche::
@end menu
le proprietà di tutti gli altri contesti, come gli oggetti @code{Voice},
gli oggetti @code{Score}, gli oggetti @code{Lyrics} e gli oggetti che
rappresentano tutti gli elementi della notazione, come le stanghette,
-le teste di nota, le legature di valore, i segni di dinamica, etc. A ogni
+le teste di nota, le legature di valore, le dinamiche, etc. A ogni
oggetto corrisponde un relativo insieme di valori di proprietà.
Alcuni tipi di oggetto hanno dei nomi speciali. Gli oggetti che rappresentano
oggetti che hanno una forma estesa in questo modo vengono chiamati «Estensori»
(in inglese @emph{Spanner}).
+Gli estensori non possono essere modificati dopo la loro creazione. Tra questi
+sia @code{StaffSymbol} che @code{LedgerLineSpanner}, che continuano nel corso
+della partitura, a meno che non siano terminati dal comando @code{\stopStaff} e
+poi ricreati col comando @code{\startStaff}.
+
+Esistono anche dei grob @q{astratti} che non stampano niente da soli, bensì
+raccolgono, posizionano e gestiscono altri grob. Esempi comuni sono
+@code{DynamicLineSpanner}, @code{BreakAlignment}, @code{NoteColumn},
+@code{VerticalAxisGroup}, @code{NonMusicalPaperColumn} e simili. Vedremo
+in seguito come si usano alcuni di questi.
+
Resta da spiegare cosa sono le «Interfacce». Molti oggetti, pur essendo
piuttosto diversi, condividono delle caratteristiche comuni che devono
essere elaborate nello stesso modo. Ad esempio, tutti i @emph{grob} hanno un
per modificare le sue proprietà, dunque è utile poter riconoscere i tipi
di oggetti e proprietà dai loro nomi.
+@seealso
+Guida alla notazione:
+@ruser{Modifica delle proprietà}.
+
@node Metodi di modifica
@subsection Metodi di modifica
@cindex metodi di modifica
@cindex modifica, metodi
-@strong{Il comando \override}
+@menu
+* Il comando override::
+* Il comando revert::
+* Il prefisso once::
+* Il comando overrideProperty::
+* Il comando di ritocco tweak::
+* Il prefisso single::
+@end menu
+
+@node Il comando override
+@unnumberedsubsubsec Il comando @code{@bs{}override}
+@translationof The override command
@cindex override, comando
@cindex override, sintassi
La sintassi generale di questo comando è:
@example
-\override @var{Contesto}.@var{OggettoDiFormattazione} #'@var{proprietà-formattazione} =
-#@var{valore}
+\override @var{Contesto}.@var{OggettoDiFormattazione}.@var{proprietà-formattazione} = #@var{valore}
@end example
@noindent
dell'oggetto di formattazione chiamato @var{OggettoDiFormattazione}, che fa
parte del contesto @var{Contesto}, il valore @var{valore}.
-Il @var{Contesto} può essere ommesso (e di solito lo è) quando il
+Il @var{Contesto} può essere omesso (e di solito lo è) quando il
contesto richiesto è implicito e si trova a uno dei livelli più
bassi dei contesti, come ad esempio @code{Voice}, @code{ChordNames} o
@code{Lyrics}. Lo ometteremo in molti degli esempi seguenti; vedremo
useremo soltanto alcune proprietà e valori di facile comprensione,
in modo da spiegare il formato e l'uso di questo comando.
-Per ora non ti preoccupare del @code{#'}, che deve precedere la
-proprietà di formattazione e del@tie{}@code{#}, che deve precedere
-il valore. Tali segni vanno presentati esattamente in questa
-forma. Questo è il comando più usato nelle modifiche e quasi tutto
+Le espressioni fondamentali di LilyPond sono gli elementi musicali come le note,
+le durate e le annotazioni. Le espressioni basilari come numeri,
+stringhe di testo e liste sono elaborate nella @q{modalità Scheme}, che viene
+invocata inserendo @samp{#} prima del valore. Sebbene i valori possano
+avere talvolta una valida rappresentazione nella modalità musicale di LilyPond,
+per coerenza questo manuale li farà sempre precedere da @samp{#}. Per maggiori
+informazioni sulla modalità Scheme, si veda @rextend{LilyPond Scheme syntax}.
+
+@code{\override} è il comando più usato nelle modifiche e quasi tutto
il resto del capitolo ha lo scopo di mostrare alcuni esempi
di utilizzo. Ecco un semplice esempio che mostra come cambiare
il colore della testa di nota:
@cindex colore, proprietà del
@cindex NoteHead, esempio di sovrascrittura
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-c4 d
-\override NoteHead #'color = #red
-e4 f |
-\override NoteHead #'color = #green
-g4 a b c |
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ c'4 d
+ \override NoteHead.color = #red
+ e4 f |
+ \override NoteHead.color = #green
+ g4 a b c |
+}
@end lilypond
-@strong{Il comando \revert}
+@node Il comando revert
+@unnumberedsubsubsec Il comando @code{@bs{}revert}
+@translationof The revert command
-@cindex ripristino (revert), comando
+@cindex revert, comando
+@cindex ripristino, comando \revert
@funindex \revert
@funindex revert
siano stati inseriti vari comandi @code{\override}). Impiega la seguente sintassi:
@example
-\revert @var{Contesto}.@var{OggettoDiFormmattazione} #'@var{proprietà-formattazione}
+\revert @var{Contesto}.@var{OggettoDiFormmattazione}.@var{proprietà-formattazione}
@end example
Anche in questo caso, come per il comando @code{\override}, @var{Contesto} di
@cindex colore, proprietà del
@cindex NoteHead, esempio di sovrascrittura
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-c4 d
-\override NoteHead #'color = #red
-e4 f |
-\override NoteHead #'color = #green
-g4 a
-\revert NoteHead #'color
-b4 c |
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ c'4 d
+ \override NoteHead.color = #red
+ e4 f |
+ \override NoteHead.color = #green
+ g4 a
+ \revert NoteHead.color
+ b4 c |
+}
@end lilypond
-@strong{Il prefisso \once}
+@node Il prefisso once
+@unnumberedsubsubsec Il prefisso @code{@bs{}once}
+@translationof The once prefix
@funindex \once
@funindex once
-Sia il comando @code{\override} che il comando @code{\set} possono essere
-preceduti da @code{\once}. Questo fa sì che il successivo comando @code{\override}
-o @code{\set} sia effettivo solo in relazione a quel determinato momento musicale,
-prima che la proprietà sia ripristinata al suo valore precedente (che può essere diverso da quello predefinito se un altro @code{\override} è
-ancora attivo). Usando lo stesso esempio, possiamo cambiare il colore di
-una singola nota in questo modo:
+I comandi @code{\override}, @code{revert}, @code{\set} e @code{\unset} possono
+essere preceduti da @code{\once}. Questo fa sì che tale comando sia operativo
+solo in quel determinato momento musicale, prima che la proprietà sia
+ripristinata al suo valore precedente (che può essere diverso da quello
+predefinito se un altro @code{\override} è ancora attivo). Usando lo stesso
+esempio, possiamo cambiare il colore di una singola nota in questo modo:
@cindex proprietà del colore, esempio
@cindex colore, proprietà del
@cindex NoteHead, esempio di sovrascrittura
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-c4 d
-\override NoteHead #'color = #red
-e4 f |
-\once \override NoteHead #'color = #green
-g4 a
-\revert NoteHead #'color
-b c |
+@lilypond[quote,verbatim]
+\relative {
+ c'4 d
+ \override NoteHead.color = #red
+ e4 f |
+ \once \override NoteHead.color = #green
+ g4 a
+ \revert NoteHead.color
+ b c |
+}
+@end lilypond
+
+Il prefisso @code{\once} può essere usato anche di fronte a molti
+comandi predefiniti per limitare il loro effetto a un momento musicale:
+
+@lilypond[quote,verbatim]
+\relative {
+ c'4( d)
+ \once \slurDashed
+ e4( f) |
+ g4( a)
+ \once \hideNotes
+ b( c) |
+}
@end lilypond
-@strong{Il comando \overrideProperty}
+
+@node Il comando overrideProperty
+@unnumberedsubsubsec Il comando @code{@bs{}overrideProperty}
+@translationof The overrideProperty command
@cindex overrideProperty, comando
si veda @rextend{Difficult tweaks}.
@c Maybe explain in a later iteration -td
-@strong{Il comando \tweak}
+@c http://lists.gnu.org/archive/html/bug-lilypond/2014-12/msg00041.html
+@c Duplicate node names across LM and NR causes problems to translated manuals (see issue 2266).
+@c As a workaround, I'll slightly change the node name.
+@node Il comando di ritocco tweak
+@unnumberedsubsubsec Il comando di ritocco @code{@bs{}tweak}
+@translationof The tweak command
@cindex tweak, comando
@cindex font-size, esempio
@cindex NoteHead, esempio di sovrascrittura
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-<c e g>4
-\once \override NoteHead #'font-size = #-3
-<c e g>4
-<c e g>4
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ <c' e g>4
+ \once \override NoteHead.font-size = #-3
+ <c e g>4
+ <c e g>4
+}
@end lilypond
Come si vede, la sovrascrittura riguarda @emph{tutte} le teste di nota
@cindex font-size, esempio
@cindex @code{\tweak}, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-<c e g>4
-<c \tweak #'font-size #-3 e g>4
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ <c' e g>4
+ <c \tweak font-size #-3 e g>4
+}
@end lilypond
Si noti che la sintassi di @code{\tweak} è diversa da quella di
forma semplice del comando @code{\tweak} è
@example
-\tweak #'@var{proprietà-formattazione} #@var{valore}
+\tweak @var{proprietà-formattazione} #@var{valore}
@end example
Il comando @code{\tweak} serve anche a modificare soltanto una di una serie
@cindex colore, proprietà del
@cindex @code{\tweak}, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-a4^"Black"
- -\tweak #'color #red ^"Red"
- -\tweak #'color #green _"Green"
+@lilypond[quote,fragment,ragged-right,verbatim]
+a'4^"Black"
+ -\tweak color #red ^"Red"
+ -\tweak color #green _"Green"
@end lilypond
@noindent
esplicitamente l'oggetto di formattazione, purché LilyPond riesca a
seguire la sua origine fino all'evento originale:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-<\tweak Accidental.color #red cis4
- \tweak Accidental.color #green es
- g>
+@lilypond[quote,fragment,ragged-right,verbatim]
+<\tweak Accidental.color #red cis''4
+ \tweak Accidental.color #green es''
+ g''>
@end lilypond
Questa forma estesa del comando @code{\tweak} può essere descritta così
@example
-\tweak @var{oggetto-formattazione} #'@var{proprietà-formattazione} @var{valore}
+\tweak @var{OggettoFormattazione}.@var{proprietà-formattazione} #@var{valore}
@end example
@cindex gruppi irregolari, annidati
@cindex proprietà del colore, esempio
@cindex colore, esempio
-@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-\tweak #'direction #up
-\times 4/3 {
- \tweak #'color #red
- \times 2/3 { c8[ c c] }
- \times 2/3 { c8[ c c] }
- \times 2/3 { c8[ c c] }
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+ \tweak direction #up
+ \tuplet 3/4 {
+ \tweak color #red
+ \tuplet 3/2 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
+ }
}
@end lilypond
@c NOTE Tuplet brackets collide if notes are high on staff
@c See issue 509
-@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\times 2/3 { c8[ c c] }
-\once \override TupletNumber
- #'text = #tuplet-number::calc-fraction-text
-\times 2/3 {
- c8[ c]
- c8[ c]
- \once \override TupletNumber #'transparent = ##t
- \times 2/3 { c8[ c c] }
- \times 2/3 { c8[ c c] }
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \tuplet 3/2 { c'8[ c c] }
+ \once \override TupletNumber.text = #tuplet-number::calc-fraction-text
+ \tuplet 3/2 {
+ c8[ c]
+ c8[ c]
+ \once \override TupletNumber.transparent = ##t
+ \tuplet 3/2 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
+ }
}
@end lilypond
-
@seealso
Guida alla Notazione:
-@ruser{The tweak command}.
+@ruser{Il comando tweak}.
+
+
+@node Il prefisso single
+@unnumberedsubsubsec Il prefisso @code{@bs{}single}
+@translationof The single prefix
+
+@funindex \single
+@cindex tweak, generato da override
+
+Immaginiamo di voler enfatizzare alcune teste di nota in particolare
+colorandole di rosso e aumentandone la dimensione; e immaginiamo anche
+che per comodità abbiamo definito una funzione per fare ciò:
+
+@lilypond[quote,verbatim]
+emphNoteHead = {
+ \override NoteHead.color = #red
+ \override NoteHead.font-size = 2
+}
+\relative {
+ c''4 a \once \emphNoteHead f d |
+}
+@end lilypond
+
+Il prefisso @code{\once} funziona bene se si desidera enfatizzare note
+singole o interi accordi, ma non permette di enfatizzare una singola
+nota @emph{dentro} un accordo. Prima abbiamo visto come si possa usare
+@code{\tweak} per fare ciò, vedi @ref{The tweak command}.
+Ma non è possibile usare @code{\tweak} in una funzione; è in questo caso che
+torna utile il comando @code{\single}:
+
+@lilypond[quote,verbatim]
+emphNoteHead = {
+ \override NoteHead.color = #red
+ \override NoteHead.font-size = 2
+}
+\relative {
+ <c'' a \single \emphNoteHead f d>4
+}
+@end lilypond
+
+In sintesi, @code{\single} converte le modifiche introdotte dal comando
+@code{\override} in modifiche eseguite dal comando @code{\tweak}.
+Ciò significa che quando ci sono vari oggetti che si trovano nello stesso
+momento musicale (come le teste di nota in un accordo), @code{\single} avrà
+effetto su uno solo, quello generato dall'espressione musicale immediatamente
+seguente; a differenza di @code{\once}, che ha effetto su tutti questi oggetti.
+
+Usando @code{\single} in questo modo qualsiasi funzione usata come
+scorciatoia che contiene soltanto @code{\override} può essere applicata
+a note individuali in un accordo. Tuttavia, @code{\single} non converte
+@code{\revert}, @code{\set} e @code{\unset} in modifiche che hanno le
+proprietà di @code{\tweak}.
+
+@seealso
+Manuale di apprendimento:
+@ref{The tweak command},
+@ref{Using variables for layout adjustments}.
@node Manuale del Funzionamento interno
@c Mozart, Die Zauberflöte Nr.7 Duett
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8 bes[( g]) g |
+ \relative {
+ r4 bes'8 bes[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
}
spessore, per essere sicuri che il comando funzioni:
@example
-\override Slur #'thickness = #5.0
+\override Slur.thickness = #5.0
@end example
-Non dimenticare il @code{#'} che precede il nome della
-proprietà e il@tie{}@code{#} che precede il nuovo valore!
+Non dimenticare il@tie{}@code{#} che precede il nuovo valore!
L'ultima domanda è: @q{dove va messo questo comando?} Finché non sei sicuro
e stai ancora imparando, la risposta migliore è: @q{dentro la musica, prima della
@cindex proprietà thickness, esempio
@cindex thickness (spessore), esempio
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
+ \relative {
% Increase thickness of all following slurs from 1.2 to 5.0
- \override Slur #'thickness = #5.0
- r4 bes8 bes[( g]) g |
+ \override Slur.thickness = #5.0
+ r4 bes'8 bes[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
}
tutte le conoscenze di base che ti permetteranno di costruire i tuoi comandi.
Ti manca solo un po' di pratica, che potrai fare grazie ai prossimi esempi.
-@subheading Trovare il contesto
+@subsubheading Trovare il contesto
@cindex contesto, trovare il
@cindex contesto, identificare il corretto
contesti che si trovano al livello più basso, come è sottinteso senza ambiguità
dal fatto che stiamo inserendo delle note, in questo caso possiamo ometterlo.
-@subheading Sovrascrivere una volta sola
+@subsubheading Sovrascrivere una volta sola
@cindex sovrascrivere una volta sola
@cindex \once \override
@cindex proprietà thickness, esempio
@cindex thickness (spessore), esempio
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8
+ \relative {
+ r4 bes'8
% Aumenta lo spessore solo della legatura che segue
- \once \override Slur #'thickness = #5.0
+ \once \override Slur.thickness = #5.0
bes8[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
Il comando @code{\once} può essere usato anche prima del comando @code{\set}.
-@subheading Ripristinare
+@subsubheading Ripristinare
@cindex revert
@cindex ripristinare le proprietà predefinite
@cindex proprietà thickness, esempio
@cindex thickness (spessore), esempio
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8
+ \relative {
+ r4 bes'8
% Aumenta lo spessore solo della legatura che segue
- \once \override Slur #'thickness = #5.0
+ \once \override Slur.thickness = #5.0
bes[( g]) g |
% Aumenta lo spessore solo della legatura che segue
- \once \override Slur #'thickness = #5.0
+ \once \override Slur.thickness = #5.0
g8[( es]) es d[( f]) as |
as8 g
}
@cindex proprietà thickness, esempio
@cindex thickness (spessore), esempio
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8
+ \relative {
+ r4 bes'8
% Aumenta lo spessore di tutte le legature di portamento che seguono da 1.2 a 5.0
- \override Slur #'thickness = #5.0
+ \override Slur.thickness = #5.0
bes[( g]) g |
g8[( es]) es
% Ripristina lo spessore di tutte le legature di portamento che seguono al valore predefinito 1.2
- \revert Slur #'thickness
+ \revert Slur.thickness
d8[( f]) as |
as8 g
}
la proprietà è @code{font-shape} e il valore è
@code{italic}. Come in precedenza, ometteremo il contesto.
-Per inciso, è importante notare che i valori di @code{font-shape},
-essendo dei simboli, devono essere preceduti da un apostrofo
-singolo, @code{'}. Questo è il motivo per cui gli apostrofi sono
-necessari prima di @code{thickness} nell'esempio precedente e prima di
-@code{font-shape} in questo esempio.
-Entrambi sono simboli. I simboli vengono letti internamente da
-LilyPond. Alcuni sono nomi di proprietà, come @code{thickness} o
-@code{font-shape}, altri sono usati come valori da assegnare alle
-proprietà, come @code{italic}. Nota che sono diversi dalle
-stringhe di testo arbitrarie, che appaiono nella forma @code{"una stringa
-di testo"}; maggiori informazioni sui simboli e le stringhe si trovano in
-@rextend{Scheme tutorial}.
+Per inciso, è importante notare che alcune proprietà prendono come valori
+dei simboli, ad esempio @code{italic}; in questo caso i valori devono essere
+preceduti da un apostrofo, @code{'}. I simboli vengono letti internamente da
+LilyPond. Nota che sono diversi dalle stringhe di testo arbitrarie, che
+appaiono nella forma @code{"una stringa di testo"}; maggiori informazioni sui
+simboli e le stringhe si trovano in @rextend{Scheme tutorial}.
Quindi il comando @code{\override} che rende il testo corsivo è:
@example
-\override LyricText #'font-shape = #'italic
+\override LyricText.font-shape = #'italic
@end example
@noindent
@cindex LyricText, esempio di sovrascrittura
@cindex @code{\addlyrics}, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8 bes[( g]) g |
+ \relative {
+ r4 bes'8 bes[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
}
\addlyrics {
- \override LyricText #'font-shape = #'italic
+ \override LyricText.font-shape = #'italic
The man who | feels love's sweet e -- | mo -- tion
}
}
@noindent
e tutto il testo è in corsivo.
-@subheading Specificare il contesto nella modalità testo (\lyricmode)
-
-@cindex contesto, specifarlo nella modalità testo (\lyricmode)
-@cindex modalità testo (\lyricmode), specificare il contesto
-
-Nel caso del testo, se cerchi di specificare il contesto nel
-formato usato prima, il comando non funzionerà. Una sillaba
-inserita in modalità testo (lyricmode) può essere terminata da uno
-spazio, una nuova linea o un numero. Tutti gli altri caratteri vengono
-considerati come parte della sillaba. Per questo motivo uno spazio o una
-nuova linea devono apparire prima del @code{@}} finale per impedire che esso
-sia incluso nella sillaba finale. Analogalmente, bisogna inserire degli spazi
-prima e dopo la virgola o il punto, @q{.}, separando il nome del contesto dal
-nome dell'oggetto: altrimenti, i due nomi verranno considerati insieme e
-l'interprete non sarà in grado di distinguerli. Dunque il comando sarà:
-
-@example
-\override Lyrics . LyricText #'font-shape = #'italic
-@end example
-
@warning{Nel testo bisogna lasciare sempre uno spazio bianco tra l'ultima
sillaba e la parentesi graffa che chiude il blocco.}
-@warning{Nelle sovrascritture (@emph{override}) del testo ci devono essere sempre
-degli spazi intorno al punto tra il nome del contesto e quello dell'oggetto.}
-
@seealso
Estendere: @rextend{Scheme tutorial}.
tra parentesi dopo il nome della proprietà. Ecco una lista dei tipi
che ti possono servire, corredata dalle regole per ciascun tipo e da alcuni
esempi. Ovviamente, se inseriti in un comando @code{\override}, devono
-essere sempre preceduti dal simbolo di cancelletto, @code{#}.
+essere sempre preceduti dal simbolo di cancelletto,@tie{}@code{#}, anche se
+il valore stesso già inizia con@tie{}@code{#}. In questa sede diamo solo
+esempi di costanti: se si desidera elaborare un valore con Scheme, si veda
+@rextend{Calculations in Scheme}.
@multitable @columnfractions .2 .45 .35
@headitem Tipo di proprietà
@tab O Vero (True) o Falso (False), rappresentato da #t o #f
@tab @code{#t}, @code{#f}
@item Dimension (in staff space)
- @tab Un numero positivo decimale (nell'unità di misura dello spazio del rigo)
+ @tab Un numero decimale (nell'unità di misura dello spazio del rigo)
@tab @code{2.5}, @code{0.34}
@item Direction
- @tab Una valida direzione costante o il suo equivalente numerico (sono
-ammessi valori decimali compresi tra -1 e 1)
+ @tab Una valida direzione costante o il suo equivalente numerico
+ (@code{0} o @code{CENTER} indicano una direzione neutrale)
@tab @code{LEFT}, @code{CENTER}, @code{UP},
@code{1}, @w{@code{-1}}
@item Integer
- @tab Un numero positivo intero
- @tab @code{3}, @code{1}
+ @tab Un numero intero
+ @tab @code{3}, @code{-1}
@item List
- @tab Un insieme di valori separato da spazi, racchiuso tra parentesi e
-preceduto da un apostrofo
- @tab @code{'(left-edge staff-bar)}, @code{'(1)},
+ @tab Una sequenza di costanti o simboli separata da spazi, racchiusa
+ tra parentesi e preceduta da un apostrofo
+ @tab @code{'(left-edge staff-bar)}, @code{'(1)}, @code{'()},
@code{'(1.0 0.25 0.5)}
@item Markup
@tab Qualsiasi valido blocco markup
- @tab @code{\markup @{ \italic "cresc." @}}
+ @tab @code{\markup @{ \italic "cresc." @}}, @code{"bagpipe"}
@item Moment
@tab Una frazione di una nota intera costruita con la
funzione make-moment
- @tab @code{(ly:make-moment 1 4)},
- @code{(ly:make-moment 3 8)}
+ @tab @code{(ly:make-moment 1/4)},
+ @code{(ly:make-moment 3/8)}
@item Number
- @tab Qualsiasi valore decimale positivo o negativo
- @tab @code{3.5}, @w{@code{-2.45}}
+ @tab Qualsiasi valore positivo o negativo, possibilmente decimale
+ @tab @code{3}, @w{@code{-2.45}}
@item Pair (of numbers)
@tab Due numeri separati da un @q{spazio . spazio} e racchiusi tra
parentesi precedute da un apostrofo
@tab @code{bend::print}, @code{ly:text-interface::print},
@code{#f}
@item Vector
- @tab Una lista di tre elementi racchiusi tra parentesi e preceduti
-da apostrofo-cancelletto, @code{'#}.
- @tab @code{'#(#t #t #f)}
+ @tab Costanti
+ racchiuse tra @code{#(}@dots{}@code{)}.
+ @tab @code{#(#t #t #f)}
@end multitable
ovviamente, anche di molti altri oggetti grafici). Vediamole una per
volta.
-@subheading stencil
+@menu
+* La proprietà stencil::
+* La proprietà break-visibility::
+* La proprietà transparent::
+* La proprietà color::
+@end menu
+
+@node La proprietà stencil
+@unnumberedsubsubsec La proprietà @code{stencil}
+@translationof The stencil property
@cindex proprietà stencil
@cindex stencil, proprietà
@cindex proprietà stencil, esempio
@cindex stencil, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
- \override BarLine #'stencil = ##f
- c4 b8 c d16 c d8 |
+ \override BarLine.stencil = ##f
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex proprietà stencil, esempio
@cindex stencil, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
- \override Staff.BarLine #'stencil = ##f
- c4 b8 c d16 c d8 |
+ \override Staff.BarLine.stencil = ##f
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@end lilypond
-Ora le stanghette sono sparite.
+Ora le stanghette sono sparite. Impostare la proprietà @code{stencil}
+su @code{#f} è un'operazione talmente frequente che è stata creata una
+scorciatoia, @code{\omit}:
+@funindex \omit
+
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \time 12/16
+ \omit Staff.BarLine
+ c''4 b8 c d16 c d8 |
+ g,8 a16 b8 c d4 e16 |
+ e8
+}
+@end lilypond
Si noti però che impostare la proprietà @code{stencil} su @code{#f}
causerà degli errori nel caso in cui le dimensioni dell'oggetto
@code{point-stencil}, che trasforma lo stencil in un oggetto a dimensione
zero:
-@lilypond[quote,verbatim,relative=2]
-{
- c4 c
- \once \override NoteHead #'stencil = #point-stencil
+@lilypond[quote,verbatim]
+\relative {
+ c''4 c
+ \once \override NoteHead.stencil = #point-stencil
c4 c
}
@end lilypond
-@subheading break-visibility
+@node La proprietà break-visibility
+@unnumberedsubsubsec La proprietà @code{break-visibility}
+@translationof The break-visibility property
@cindex proprietà break-visibility
@cindex break-visibility, proprietà
Questi valori controllano rispettivamente se le stanghette debbano
comparire alla fine, in mezzo o all'inizio dei righi. Dato
che nel nostro esempio vogliamo sopprimere tutte le stanghette, il valore
-che ci serve è @code{'#(#f #f #f)}. Proviamo, ricordando di includere
-il contesto @code{Staff}. Si noti che prima della parentesi di apertura
-abbiamo @code{#'#}. Il @code{'#} deve far parte del valore perché introduce
-un vettore, mentre il primo@tie{}@code{#} deve precedere, come sempre, il
-valore del comando @code{\override}.
+che ci serve è @code{#(#f #f #f)} (equivalente al nome @code{all-invisible}).
+Proviamo, ricordando di includere il contesto @code{Staff}. Si noti che prima
+della parentesi di apertura abbiamo @code{##}. Un @code{#} è necessario
+perché introduce un vettore, mentre il primo@tie{}@code{#} deve precedere, come
+sempre, il valore del comando @code{\override}.
@cindex BarLine, esempio di sovrascrittura
@cindex proprietà break-visibility, esempio
@cindex break-visibility, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
- \override Staff.BarLine #'break-visibility = #'#(#f #f #f)
- c4 b8 c d16 c d8 |
+ \override Staff.BarLine.break-visibility = ##(#f #f #f)
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
E vediamo che anche questo comando elimina tutte le stanghette.
-@subheading transparent
+@node La proprietà transparent
+@unnumberedsubsubsec La proprietà @code{transparent}
+@translationof The transparent property
@cindex proprietà transparent
@cindex transparent, proprietà
@cindex proprietà transparent, esempio
@cindex transparent, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
- \override Staff.TimeSignature #'transparent = ##t
- c4 b8 c d16 c d8 |
+ \override Staff.TimeSignature.transparent = ##t
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@end lilypond
@noindent
-L'indicazione di tempo è scomparsa; è rimasto però uno spazio al suo posto. Magari questo è quello che si
-desidera, ad esempio per creare un esercizio in cui uno studente deve
-riempire degli spazi vuoti. Ma in altre circostanze ciò può
-non essere gradito. Per eliminare lo spazio vuoto bisogna usare la proprietà stencil
-e impostarla su @code{#f}:
+Impostare la proprietà @code{transparent} è un'operazione piuttosto
+frequente, perciò è stata creata la scorciatoia @code{\hide}:
+@funindex \hide
+
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \time 12/16
+ \hide Staff.TimeSignature
+ c''4 b8 c d16 c d8 |
+ g,8 a16 b8 c d4 e16 |
+ e8
+}
+@end lilypond
+
+@noindent
+L'indicazione di tempo è scomparsa; è rimasto però uno spazio al suo posto. Magari
+questo è quello che si desidera, ad esempio per creare un esercizio in cui uno
+studente deve riempire degli spazi vuoti. Ma in altre circostanze ciò può
+non essere gradito. Per eliminare lo spazio vuoto bisogna impostare la
+proprietà stencil su @code{#f}:
@cindex TimeSignature, esempio di sovrascrittura
@cindex proprietà stencil, esempio
@cindex stencil, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
- \override Staff.TimeSignature #'stencil = ##f
- c4 b8 c d16 c d8 |
+ \omit Staff.TimeSignature
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@end lilypond
@noindent
-la differenza è ovvia: se si imposta lo stencil su @code{#f}
-l'oggetto scompare del tutto; se si rende l'oggetto @code{trasparente}
-questo resta dove è, anche se invisibile.
+la differenza è ovvia: se si imposta lo stencil su @code{#f} (possibilmente
+con @code{\omit}) l'oggetto scompare del tutto; se si rende l'oggetto
+@code{trasparente} questo resta dove è, anche se invisibile.
-@subheading color
+@node La proprietà color
+@unnumberedsubsubsec La proprietà @code{color}
+@translationof The color property
@cindex proprietà color
@cindex color, proprietà
stanghetta bianca può imbiancare o meno le linee del rigo che
incrocia. Puoi vedere in alcuni degli esempi successivi che questo
accade in modo imprevedibile. I motivi per cui questo accade e il
-modo in cui è possibile controllarlo sono esposti in @ruser{Painting objects white}.
+modo in cui è possibile controllarlo sono esposti in @ruser{Dipingere gli oggetti di bianco}.
Ma per il momento stiamo imparando la proprietà color, quindi accettiamo questa limitazione.)
L'interfaccia @code{grob-interface} stabilisce che il valore della
in unità interne, ma per evitare di dover imparare quali siano queste
unità vengono forniti vari modi di specificare un colore. Il primo
modo consiste nell'usare uno dei colori @q{normali} elencati nella
-prima tabella in @ruser{List of colors}. Per rendere bianche le
+prima tabella in @ruser{Elenco dei colori}. Per rendere bianche le
stanghette scriviamo:
@cindex BarLine, esempio di sovrascrittura
@cindex proprietà color
@cindex color, proprietà
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
- \override Staff.BarLine #'color = #white
- c4 b8 c d16 c d8 |
+ \override Staff.BarLine.color = #white
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@noindent
e di nuovo vediamo che le stanghette non sono visibili. Si noti
che @emph{white} non è preceduto da un apostrofo, perché non
-è un simbolo, ma una @emph{funzione}. Quando viene chiamata, fornisce
+è un simbolo, ma una @emph{variabile}. Quando viene esaminata, fornisce
la lista di valori interni necessari per impostare il colore su
bianco. Gli altri colori nella lista normale sono anch'essi
-funzioni. Per convincerti che funziona potresti provare a
-cambiare il colore e usare una delle altre funzioni presenti
+delle variabili. Per convincerti che funziona potresti provare a
+cambiare il colore e usare una delle altre variabili presenti
nella lista.
@cindex color, X11
@funindex x11-color
Il secondo modo per cambiare il colore è attraverso la lista
-di nomi di colori X11 che si trova in @ruser{List of colors}.
-Tuttavia questi colori devono essere preceduti da un'altra
-funzione che converte i nomi di colori X11 nella lista di
-valori interni, @code{x11-color}:
+di nomi di colori X11 che si trova in @ruser{Elenco dei colori}.
+Questi colori vengono trasformati in valori reali dalla funzione
+@code{x11-color}, che converte i simboli di colore X11 nella lista
+di valori interni:
@cindex BarLine, esempio di sovrascrittura
@cindex proprietà color, esempio
@cindex color, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
- \override Staff.BarLine #'color = #(x11-color 'white)
- c4 b8 c d16 c d8 |
+ \override Staff.BarLine.color = #(x11-color 'white)
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@noindent
Si noti che in questo caso la funzione @code{x11-color} prende
un simbolo come argomento, dunque il simbolo deve essere preceduto
-da un apostrofo e i due elementi devono essere racchiusi tra parentesi.
+da un apostrofo per impedire che sia considerato una variabile e
+l'intera funzione deve essere racchiusa tra parentesi.
@cindex colori rgb
@cindex rgb, colori
@funindex rgb-color
-Esiste una terza funzione, che converte i valori RGB in colori
+Esiste un'altra funzione, che converte i valori RGB in colori
interni, la funzione @code{rgb-color}. Prende tre argomenti
che specificano l'intensità dei colori rosso, verde e blu.
I valori vanno da 0 a 1. Quindi per avere il colore rosso
@cindex proprietà color, esempio
@cindex color, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
- \override Staff.BarLine #'color = #(rgb-color 1 1 1)
- c4 b8 c d16 c d8 |
+ \override Staff.BarLine.color = #(rgb-color 1 1 1)
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex color, esempio
@cindex x11-color, esempio di utilizzo
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
- \override Staff.StaffSymbol #'color = #(x11-color 'grey30)
- \override Staff.TimeSignature #'color = #(x11-color 'grey60)
- \override Staff.Clef #'color = #(x11-color 'grey60)
- \override Voice.NoteHead #'color = #(x11-color 'grey85)
- \override Voice.Stem #'color = #(x11-color 'grey85)
- \override Staff.BarLine #'color = #(x11-color 'grey10)
- c4 b8 c d16 c d8 |
+ \override Staff.StaffSymbol.color = #(x11-color 'grey30)
+ \override Staff.TimeSignature.color = #(x11-color 'grey60)
+ \override Staff.Clef.color = #(x11-color 'grey60)
+ \override Voice.NoteHead.color = #(x11-color 'grey85)
+ \override Voice.Stem.color = #(x11-color 'grey85)
+ \override Staff.BarLine.color = #(x11-color 'grey10)
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex proprietà alignAboveContext, esempio
@cindex @code{\with}, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
Gli ossia di norma vengono scritti senza chiave e senza indicazione di
tempo e hanno solitamente una dimensione leggermente inferiore a
-quella del rigo pricipale. Sappiamo già come togliere la chiave e
+quella del rigo principale. Sappiamo già come togliere la chiave e
il segno di tempo, cioè impostando semplicemente la proprietà stencil di
ciascun oggetto su @code{#f}, così:
@cindex proprietà alignAboveContext, esempio
@cindex @code{\with}, esempio
-@cindex proprietà stencil, esempio
+@funindex \omit
@cindex Clef, esempio di sovrascrittura
@cindex TimeSignature, esempio di sovrascrittura
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
alignAboveContext = #"main"
}
{
- \override Staff.Clef #'stencil = ##f
- \override Staff.TimeSignature #'stencil = ##f
+ \omit Staff.Clef
+ \omit Staff.TimeSignature
{ f8 f c }
}
>>
Ma qual è la differenza tra modificare il contesto del rigo con
@code{\with} e modificare la proprietà stencil della chiave e
-del segno di tempo con \override? La principale differenza è
-che le modifiche inserite in un blocco @code{\with} vengono applicate
-nel momento in cui viene creato il contesto e permangono come valori
-@strong{predefiniti} per la durata di quel contesto, mentre i
+del segno di tempo con @code{\override} o in questo caso @code{\omit}? La
+principale differenza è che le modifiche inserite in un blocco @code{\with}
+vengono applicate nel momento in cui viene creato il contesto e permangono
+come valori @strong{predefiniti} per la durata di quel contesto, mentre i
comandi @code{\set} o @code{\override} incorporati nel blocco
della musica sono dinamici -- le loro modifiche sono sincronizzate
con un punto preciso della musica. Se le modifiche sono disattivate o
@cindex Clef, esempio di sovrascrittura
@cindex TimeSignature, esempio di sovrascrittura
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
\new Staff \with {
alignAboveContext = #"main"
% Nasconde le chiavi di questo rigo
- \override Clef #'stencil = ##f
+ \override Clef.stencil = ##f
% Nasconde le indicazioni di tempo di questo rigo
- \override TimeSignature #'stencil = ##f
+ \override TimeSignature.stencil = ##f
+ }
+ { f8 f c }
+ >>
+ r4 |
+ }
+}
+@end lilypond
+
+Si possono usare anche le scorciatoie @code{\hide} e @code{\omit} per
+impostare la proprietà @code{transparent} e togliere lo @code{stencil}
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff ="main" {
+ \relative {
+ r4 g'8 g c4 c8 d |
+ e4 r8
+ <<
+ { f8 c c }
+ \new Staff \with {
+ alignAboveContext = #"main"
+ % Nasconde le chiavi di questo rigo
+ \omit Clef
+ % Nasconde le indicazioni di tempo di questo rigo
+ \omit TimeSignature
}
{ f8 f c }
>>
Alcuni oggetti di formattazione sono dei glifi scelti da un tipo di
carattere. Ad esempio le teste di nota, le alterazioni, le annotazioni,
-le chiavi, le indicazioni di tempo, la dinamica, il testo vocale. La loro dimensione
+le chiavi, le indicazioni di tempo, le dinamiche, il testo vocale. La loro dimensione
varia se si modifica la proprietà @code{font-size}, come vedremo a
breve. Altri oggetti di formattazione come le legature di portamento e
di valore -- in generale, tutti gli oggetti estensori (@emph{spanner}) -- vengono
(@code{NoteHead}) con un comando di questo tipo
@example
-\override NoteHead #'font-size = #-2
+\override NoteHead.font-size = #-2
@end example
oppure possiamo modificare la dimensione di tutti i tipi di carattere usando
@cindex proprietà fontSize, esempio
@cindex fontSize, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
\new Staff \with {
alignAboveContext = #"main"
- \override Clef #'stencil = ##f
- \override TimeSignature #'stencil = ##f
+ \omit Clef
+ \omit TimeSignature
% Riduce la dimensione di tutti i tipi di carattere di circa il 24%
fontSize = #-2
}
@cindex proprietà stencil, esempio
@cindex stencil, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
\new Staff \with {
alignAboveContext = #"main"
- \override Clef #'stencil = ##f
- \override TimeSignature #'stencil = ##f
+ \omit Clef
+ \omit TimeSignature
fontSize = #-2
% Riduce proporzionalmente la lunghezza dei gambi e la spaziatura tra le linee
- \override StaffSymbol #'staff-space = #(magstep -2)
+ \override StaffSymbol.staff-space = #(magstep -2)
}
{ f8 f c }
>>
(dentro il rigo) e oggetti outside-staff (fuori dal rigo).
Gli oggetti within-staff sono quelli che si trovano nel rigo, come
-le teste e i gambi delle note, le alterazioni, etc.. La loro posizione
+le teste e i gambi delle note, le alterazioni, etc@dots{} La loro posizione
è determinata perlopiù dalla musica stessa: in verticale sono collocati
su determinate posizioni del rigo o sono collegati
ad altri oggetti disposti in questo modo. Di norma LilyPond evita
@cindex markup, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-c2^"Testo1"
-c2^"Testo2" |
-c2^"Testo3"
-c2^"Testo4" |
+@lilypond[quote,fragment,ragged-right,verbatim]
+c''2^"Testo1"
+c''2^"Testo2" |
+c''2^"Testo3"
+c''2^"Testo4" |
@end lilypond
Di norma, anche i righi sono collocati quanto più possibile ravvicinati
@lilypond[quote,ragged-right,verbatim]
<<
\new Staff {
- \relative c' { c4 a, }
+ \relative { c'4 a, }
}
\new Staff {
- \relative c'''' { c4 a, }
+ \relative { c''''4 a, }
}
>>
@end lilypond
destra o sulla sinistra. Tutto questo viene controllato automaticamente
quando si imposta la proprietà @code{direction}.
+@menu
+* La proprietà direction::
+* Diteggiatura::
+@end menu
+
+@node La proprietà direction
+@unnumberedsubsubsec La proprietà @code{direction}
+@translationof The direction property
+
@cindex down
+@cindex direzione, giù
@cindex up
+@cindex direzione, su
@cindex center
+@cindex direzione, centrale
@cindex neutral
+@cindex direzione, neutrale
-L'esempio seguente mostra nella prima battuta il comportamento predefinito
-dei gambi, per cui i gambi delle note superiori puntano in basso e quelli delle
-note inferiori in alto; poi seguono quattro note con tutti i gambi
-forzati verso il basso, quattro con i gambi forzati verso l'alto e, infine, quattro
-con i gambi nuovamente disposti secondo il comportamento predefinito.
+L'esempio seguente mostra il posizionamento predefinito delle legature di
+portamento nella prima battuta, con legature che iniziano sulle note
+alte poste sopra le note e quelle che iniziano sulle note basse posizionate
+sotto, seguita da una battuta con entrambe le legature forzate verso il
+basso, un'altra battuta con entrambe le legatura forzate verso l'alto e infine
+una battuta con entrambe le legature ripristinate al comportamento predefinito.
-@cindex Stem, esempio di sovrascrittura
+@cindex Slur, esempio di sovrascrittura
+@cindex legatura di portamento, esempio di sovrascrittura
@cindex proprietà direction, esempio
@cindex direction, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-a4 g c a |
-\override Stem #'direction = #DOWN
-a4 g c a |
-\override Stem #'direction = #UP
-a4 g c a |
-\revert Stem #'direction
-a4 g c a |
+@lilypond[quote,fragment,verbatim]
+a'4( g') c''( a') |
+\override Slur.direction = #DOWN
+a'4( g') c''( a') |
+\override Slur.direction = #UP
+a'4( g') c''( a') |
+\revert Slur.direction
+a'4( g') c''( a') |
@end lilypond
Abbiamo usato le costanti @code{DOWN} (giù) e @code{UP} (su).
Queste hanno rispettivamente i valori @w{@code{-1}} e @code{+1}, ed
è possibile usare tali valori numerici al loro posto. In alcuni casi
-si può usare anche il valore @code{0}, che significa @code{UP} per i
-gambi, ma per alcuni oggetti significa @q{center} (centro).
+si può usare anche il valore @code{0}, che significa @code{UP} per le
+legature di portamento, ma per alcuni oggetti significa @q{center} (centro).
Esiste una costante, @code{CENTER} che ha valore @code{0}.
Tuttavia queste sovrascritture esplicite solitamente non vengono usate, perché
@tab I gruppi irregolare sono sotto/sopra le note
@end multitable
-Si noti che questi comandi predefiniti @strong{non} possono essere
-preceduti da @code{\once}. Se desideri limitare l'effetto a una
-singola nota, devi usare il comando @code{\once \override} equivalente
-oppure il comando predefinito seguito, dopo la nota in questione, dal
-corrispondente comando @code{\xxxNeutral}.
+Le varianti neutral/normal di questi comandi usano @code{\revert} e queste
+@strong{non} possono essere precedute da @code{\once}. Se desideri limitare
+l'effetto degli altri comandi (che usano @code{\override}) a un singolo
+momento temporale, devi farli precedere da @code{\once} come faresti con
+delle sovrascritture esplicite.
+
+Oppure, se solo un oggetto della formattazione deve essere forzato verso
+l'alto o verso il basso, si possono usare gli indicatori di
+direzione, @code{^} o @code{_}:
+
+@lilypond[quote,fragment,verbatim]
+a'4( g') c''( a') |
+a'4^( g') c''_( a') |
+@end lilypond
+
+
+@node Diteggiatura
@unnumberedsubsubsec Diteggiatura
+@translationof Fingering
@cindex diteggiatura, posizionamento
@cindex diteggiatura, accordi
@cindex proprietà direction, esempio
@cindex direction, esempio
-@lilypond[quote,verbatim,relative=2]
-c4-5 a-3 f-1 c'-5 |
-\override Fingering #'direction = #DOWN
-c4-5 a-3 f-1 c'-5 |
-\override Fingering #'direction = #UP
-c4-5 a-3 f-1 c'-5 |
+@lilypond[quote,verbatim]
+\relative {
+ c''4-5 a-3 f-1 c'-5 |
+ \override Fingering.direction = #DOWN
+ c4-5 a-3 f-1 c'-5 |
+ \override Fingering.direction = #UP
+ c4-5 a-3 f-1 c'-5 |
+}
@end lilypond
Tuttavia sovrascrivere la proprietà @code{direction} non è il modo
@cindex fingering, esempio
-@lilypond[quote,verbatim,relative=2]
-c4-5 a-3 f-1 c'-5 |
-c4_5 a_3 f_1 c'_5 |
-c4^5 a^3 f^1 c'^5 |
+@lilypond[quote,verbatim]
+\relative {
+ c''4-5 a-3 f-1 c'-5 |
+ c4_5 a_3 f_1 c'_5 |
+ c4^5 a^3 f^1 c'^5 |
+}
@end lilypond
La proprietà @code{direction} viene ignorata negli accordi, ma i
@cindex fingering, esempio
-@lilypond[quote,verbatim,relative=2]
-<c-5 g-3>4
-<c-5 g-3 e-2>4
-<c-5 g-3 e-2 c-1>4
+@lilypond[quote,verbatim]
+\relative {
+ <c''-5 g-3>4
+ <c-5 g-3 e-2>4
+ <c-5 g-3 e-2 c-1>4
+}
@end lilypond
@noindent
@cindex fingering, esempio
-@lilypond[quote,verbatim,relative=2]
-<c-5 g-3 e-2 c-1>4
-<c^5 g_3 e_2 c_1>4
-<c^5 g^3 e^2 c_1>4
+@lilypond[quote,verbatim]
+\relative {
+ <c''-5 g-3 e-2 c-1>4
+ <c^5 g_3 e_2 c_1>4
+ <c^5 g^3 e^2 c_1>4
+}
@end lilypond
È possibile avere un controllo ancora maggiore sulla disposizione della
@cindex @code{\set}, esempio di utilizzo
@cindex proprietà fingeringOrientations, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\set fingeringOrientations = #'(left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
-\set fingeringOrientations = #'(left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4 |
-\set fingeringOrientations = #'(up left down)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
-\set fingeringOrientations = #'(up left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4 |
-\set fingeringOrientations = #'(right)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \set fingeringOrientations = #'(left)
+ <f'-2>4
+ <c-1 e-2 g-3 b-5>4
+ \set fingeringOrientations = #'(left)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4 |
+ \set fingeringOrientations = #'(up left down)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4
+ \set fingeringOrientations = #'(up left)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4 |
+ \set fingeringOrientations = #'(right)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4
+}
@end lilypond
@noindent
valore predefinito di tale proprietà è @w{@code{-5}}, dunque proviamo
con @w{@code{-7}}:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\override Fingering #'font-size = #-7
-\set fingeringOrientations = #'(left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
-\set fingeringOrientations = #'(left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4 |
-\set fingeringOrientations = #'(up left down)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
-\set fingeringOrientations = #'(up left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4 |
-\set fingeringOrientations = #'(right)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \override Fingering.font-size = #-7
+ \set fingeringOrientations = #'(left)
+ <f'-2>4
+ <c-1 e-2 g-3 b-5>4
+ \set fingeringOrientations = #'(left)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4 |
+ \set fingeringOrientations = #'(up left down)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4
+ \set fingeringOrientations = #'(up left)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4 |
+ \set fingeringOrientations = #'(right)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4
+}
@end lilypond
@node Oggetti esterni al rigo
@translationof Outside-staff objects
Gli oggetti esterni al rigo sono disposti automaticamente in modo da evitare
-collisioni. Gli oggetti dai valori più bassi per la proprietà
+collisioni. Ci sono vari modi per modificare la disposizione automatica
+se questa non è ottimale.
+
+@menu
+* La proprietà outside-staff-priority::
+* Il comando textLengthOn::
+* Posizionamento delle dinamiche::
+* Dimensione dei grob::
+@end menu
+
+
+@node La proprietà outside-staff-priority
+@unnumberedsubsubsec La proprietà @code{outside-staff-priority}
+@translationof The outside-staff-priority property
+
+Gli oggetti dai valori più bassi per la proprietà
@code{outside-staff-priority} vengono posizionati più vicino al rigo,
mentre gli altri oggetti esterni al rigo vengono distanziati quanto
basta per evitare collisioni. La proprietà @code{outside-staff-priority} è
all'inizio dell'estensore, che potrebbe includere più forcelle e indicazioni dinamiche
tra loro collegate.
-@multitable @columnfractions .3 .3 .3
+@multitable @columnfractions .3 .15 .45
@headitem Oggetto di formattazione
@tab Priorità
@tab Controlla la posizione di:
@item @code{MetronomeMark}
@tab @code{1000}
@tab Indicazioni metronomiche
+@item @code{SostenutoPedalLineSpanner}
+ @tab @code{1000}
+ @tab Indicazione del pedale
+@item @code{SustainPedalLineSpanner}
+ @tab @code{1000}
+ @tab
+@item @code{UnaCordaPedalLineSpanner}
+ @tab @code{1000}
+ @tab
+@item @code{MeasureCounter}
+ @tab @code{750}
+ @tab Numero della misura
@item @code{VoltaBracketSpanner}
@tab @code{600}
@tab Delimitatori dei finali alternativi delle ripetizioni
+@item @code{InstrumentSwitch}
+ @tab @code{500}
+ @tab Testo per il cambio di strumento
@item @code{TextScript}
@tab @code{450}
@tab Oggetti di testo
@item @code{MultiMeasureRestText}
@tab @code{450}
- @tab Testi sopra pause di più misure
+ @tab Testi sopra pause multiple
+@item @code{CombineTextScript}
+ @tab @code{450}
+ @tab Testo per il combinatore delle parti
@item @code{OttavaBracket}
@tab @code{400}
@tab Estensioni del segno d'ottava
@tab @code{250}
@tab Tutte le indicazioni dinamiche
@item @code{BarNumber}
- @tab @code{ 100}
+ @tab @code{100}
@tab Numeri di battuta
@item @code{TrillSpanner}
@tab @code{50}
@tab Linee ondulate del trillo
+@item @code{AccidentalSuggestion}
+ @tab @code{0}
+ @tab Alterazioni con nota
@end multitable
Ecco un esempio che mostra il posizionamento predefinito di alcuni di
@cindex proprietà bound-details, esempio
@cindex bound-details, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+@lilypond[quote,fragment,ragged-right,verbatim]
% Set details for later Text Spanner
-\override TextSpanner #'(bound-details left text)
+\override TextSpanner.bound-details.left.text
= \markup { \small \bold Slower }
% Place dynamics above staff
\dynamicUp
% Start Ottava Bracket
\ottava #1
-c'4 \startTextSpan
+c''4 \startTextSpan
% Add Dynamic Text and hairpin
-c4\pp\<
-c4
+c''4\pp\<
+c''4
% Add Text Script
-c4^Text |
-c4 c
+c''4^Text |
+c''4 c''
% Add Dynamic Text and terminate hairpin
-c4\ff c \stopTextSpan |
+c''4\ff c'' \stopTextSpan |
% Stop Ottava Bracket
\ottava #0
-c,4 c c c |
+c'4 c' c' c' |
@end lilypond
Questo esempio mostra anche come creare gli estensori (spanner) del testo,
ovvero testo con delle linee che si estendono sopra una sezione musicale.
L'estensore si allunga dal comando @code{\startTextSpan} fino al comando
@code{\stopTextSpan} e il formato del testo è definito dal comando
-@code{\override TextSpanner}. Per maggiori dettagli si veda @ruser{Text spanners}.
+@code{\override TextSpanner}. Per maggiori dettagli si veda @ruser{Estensori del testo}.
Mostra anche come si creano le estensioni del segno d'ottava.
qualsiasi oggetto. Immaginiamo di voler posizionare l'estensione del segno d'ottava
sotto l'estensore del testo nell'esempio precedente. Basta controllare la
priorità dell'oggetto @code{OttavaBracket} nella guida al Funzionamento interno
-o nelle tabelle precedenti e ridurla a un valore inferiore di quello di un
+o nella tabella precedente e ridurla a un valore inferiore di quello di un
oggetto @code{TextSpanner}, ricordando che @code{OttavaBracket} è creato
nel contesto @code{Staff}:
@cindex proprietà bound-details, esempio
@cindex bound-details, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-% Imposta i dettagli per l'estensione del testo vocale seguente
-\override TextSpanner #'(bound-details left text)
+@lilypond[quote,fragment,ragged-right,verbatim]
+% Set details for later Text Spanner
+\override TextSpanner.bound-details.left.text
= \markup { \small \bold Slower }
-% Posiziona le indicazione dinamiche sopra il rigo
+% Place dynamics above staff
\dynamicUp
-% Posiziona l'estensione del segno d'ottava sotto il testo vocale
-\once \override Staff.OttavaBracket #'outside-staff-priority = #340
-% Inizia l'estensione del segno d'ottava
+% Start Ottava Bracket
\ottava #1
-c'4 \startTextSpan
-% Aggiunge l'indicazione dinamica
-c4\pp
-% Aggiunge la forcella della dinamica
-c4\<
-% Aggiunge l'oggetto di testo
-c4^Text |
-c4 c
-% Aggiunge l'indicazione dinamica
-c4\ff c \stopTextSpan |
-% Termina l'estensione de segno d'ottava
+c''4 \startTextSpan
+% Add Dynamic Text and hairpin
+c''4\pp\<
+c''4
+% Add Text Script
+c''4^Text |
+c''4 c''
+% Add Dynamic Text and terminate hairpin
+c''4\ff c'' \stopTextSpan |
+% Stop Ottava Bracket
\ottava #0
-c,4 c c c |
+c'4 c' c' c' |
@end lilypond
Si noti che alcuni di questi oggetti, in particolare i numeri di
Le legature di portamento sono classificate come oggetti interni al rigo, anche
se spesso sono poste sopra il rigo, se le note alle quali sono collegate si
-trovano nella aprte superiore del pentagramma. Questo può far sì che gli oggetti esterni al rigo,
+trovano nella parte superiore del pentagramma. Questo può far sì che gli oggetti esterni al rigo,
come le articolazioni, siano spinti troppo in alto, dato che la legatura viene
posizionata prima. La proprietà @code{avoid-slur} dell'articolazione
può essere impostata su @code{'inside} per portare l'articolazione
insieme ad altri oggetti esterni al rigo in base a quel valore. Ecco un
esempio che mostra l'effetto dei due metodi:
-@lilypond[quote,verbatim,relative=2]
-c4( c^\markup { \tiny \sharp } d4.) c8 |
-c4(
-\once \override TextScript #'avoid-slur = #'inside
-\once \override TextScript #'outside-staff-priority = ##f
-c4^\markup { \tiny \sharp } d4.) c8 |
-\once \override Slur #'outside-staff-priority = #500
-c4( c^\markup { \tiny \sharp } d4.) c8 |
+@lilypond[quote,verbatim]
+\relative c'' {
+ c4( c^\markup { \tiny \sharp } d4.) c8 |
+ c4(
+ \once \override TextScript.avoid-slur = #'inside
+ \once \override TextScript.outside-staff-priority = ##f
+ c4^\markup { \tiny \sharp } d4.) c8 |
+ \once \override Slur.outside-staff-priority = #500
+ c4( c^\markup { \tiny \sharp } d4.) c8 |
+}
@end lilypond
Attraverso la proprietà @code{outside-staff-priority} si può
@cindex proprietà outside-staff-priority, esempio
@cindex outside-staff-priority, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-c2^"Testo1"
-c2^"Testo2" |
-\once \override TextScript #'outside-staff-priority = #500
-c2^"Testo3"
-c2^"Testo4" |
+@lilypond[quote,fragment,ragged-right,verbatim]
+c''2^"Testo1"
+c''2^"Testo2" |
+\once \override TextScript.outside-staff-priority = #500
+c''2^"Testo3"
+c''2^"Testo4" |
@end lilypond
Questo ovviamente pone @qq{Testo3} sopra @qq{Testo4}, ma anche
far posto al testo. Lo si può ottenere con il comando
@code{textLengthOn}.
-@subheading \textLengthOn
+@node Il comando textLengthOn
+@unnumberedsubsubsec Il comando @code{@bs{}textLengthOn}
+@translationof The textLengthOn command
@cindex note, distanziarle insieme al testo
@funindex textLengthOff
Per impostazione predefinita, finché si tratta di formattare la musica il
-testo prodotto dal comando \markup non occupa uno spazio orizzontale.
+testo prodotto dal comando @code{\markup} non occupa uno spazio orizzontale.
Il comando @code{\textLengthOn} inverte questo comportamento e fa sì che
le note si distanzino quanto basti per introdurre il testo:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,fragment,ragged-right,verbatim]
\textLengthOn % Fa sì che le note si distanzino per introdurre il testo
-c2^"Text1"
-c2^"Text2" |
-c2^"Text3"
-c2^"Text4" |
+c''2^"Text1"
+c''2^"Text2" |
+c''2^"Text3"
+c''2^"Text4" |
@end lilypond
Il comando che ripristina il comportamento predefinito è
-@code{\textLengthOff}. Ricorda che @code{\once} funziona solo insieme
-a @code{\override}, @code{\set}, @code{\revert} o @code{\unset},
-dunque non si può usare con @code{\textLengthOn}.
+@code{\textLengthOff}. Altrimenti si può usare @code{\once}
+con @code{\textLengthOn} se l'effetto deve essere limitato
+a un singolo momento musicale.
+Analogalmente, la spaziatura per i segni di chiamata e le indicazioni
+di tempo è regolata in modo indipendente con i comandi @code{\markLengthOn}
+e @code{\markLengthOff}.
@cindex testo a margine, permettere le collisioni
@cindex proprietà outside-staff-priority, esempio
@cindex outside-staff-priority, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-% Questo testo è abbastanza corto per starci senza creare collisioni
-c2^"Tes" c'' |
-R1 |
-
-% Questo è troppo lungo per starci, quindi è spostato più in alto
-c,,2^"Testo" c'' |
-R1 |
-
-% Disattiva l'elusione delle collisioni
-\once \override TextScript #'outside-staff-priority = ##f
-c,,2^"Testo Lungo " c'' |
-R1 |
-
-% Disattiva l'elusione delle collisioni
-\once \override TextScript #'outside-staff-priority = ##f
-\textLengthOn % e attiva textLengthOn
-c,,2^"Testo Lungo " % Gli spazi finali vengono rispettati
-c''2 |
+@lilypond[quote,fragment,ragged-right,verbatim]
+\relative {
+ % Questo testo è abbastanza corto per starci senza creare collisioni
+ c2^"Tes" c'' |
+ R1 |
+
+ % Questo è troppo lungo per starci, quindi è spostato più in alto
+ c,,2^"Testo" c'' |
+ R1 |
+
+ % Disattiva l'elusione delle collisioni
+ \once \override TextScript.outside-staff-priority = ##f
+ c,,2^"Testo Lungo " c'' |
+ R1 |
+
+ % Disattiva l'elusione delle collisioni
+ \once \override TextScript.outside-staff-priority = ##f
+ \textLengthOn % e attiva textLengthOn
+ c,,2^"Testo Lungo " % Gli spazi finali vengono rispettati
+ c''2 |
+}
@end lilypond
-@subheading Dinamica
+@node Posizionamento delle dinamiche
+@unnumberedsubsubsec Posizionamento delle dinamiche
+@translationof Dynamics placement
-@cindex modificare il posizionamento della dinamica
-@cindex dinamica, modificare il posizionamento
+@cindex modificare il posizionamento delle dinamiche
+@cindex dinamiche, modificare il posizionamento
Le indicazioni dinamiche sono di norma poste sotto il
rigo, ma possono essere collocati al di sopra del pentagramma col comando @code{\dynamicUp}.
Si ottengono risultati abbastanza accettabili, come dimostra
questo esempio:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\clef "bass"
-\key aes \major
-\time 9/8
-\dynamicUp
-bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
-ees,2.~\)\mf ees4 r8 |
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \clef "bass"
+ \key aes \major
+ \time 9/8
+ \dynamicUp
+ bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
+ ees,2.~\)\mf ees4 r8 |
+}
@end lilypond
Tuttavia, se le note e le loro dinamiche sono molto vicine,
potrebbe non essere però il posizionamento migliore, come mostra
questo esempio piuttosto improbabile:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim,fragment]
\dynamicUp
-a4\f b\mf c\mp b\p
+\relative { a'4\f b\mf a\mp b\p }
@end lilypond
@noindent
ma non esiste un comando equivalente per i segni di dinamica. Dunque
dovremo scoprire come farlo usando i comandi @code{\override}.
+@node Dimensione dei grob
+@unnumberedsubsubsec Dimensione dei grob
+@translationof Grob sizing
+
@subheading Estensione dei grob
@cindex estensione dei grob
Per impostazione predefinita, gli oggetti esterni al rigo presentano estensione
pari a zero, in modo da potersi sovrapporre nella direzione orizzontale.
-Ciò si ottiene con un trucco, ovvero aggiungendo infinito all'estensione
-sinistra e infinito negativo a quella destra, impostando il valore di
-@code{extra-spacing-width} su @code{'(+inf.0 . -inf.0)}. Dunque, per
+Ciò si ottiene con un trucco, ovvero dando un valore infinito all'estensione
+sinistra e infinito negativo a quella destra, impostando la proprietà
+@code{extra-spacing-width} su @code{'(+inf.0 . -inf.0)}. Per
assicurarci che non si sovrappongano nella direzione orizzontale, dobbiamo
-sovrascrivere il valore di @code{extra-spacing-width} e impostarlo su
-@code{'(0 . 0)} in modo da inserire una larghezza vera e propria. Ecco il
-comando che lo fa sul testo della dinamica:
+sovrascrivere il valore di @code{extra-spacing-width} per dar loro un po' più
+di spazio. Le unità sono lo spazio tra due linee del rigo, dunque spostare
+il margine sinistro di mezza unità a sinistra e quello destro di mezza unità
+a destra dovrebbe dare il risultato desiderato:
@example
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
@end example
@noindent
@cindex proprietà extra-spacing-width, esempio
@cindex extra-spacing-width, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,fragment,ragged-right,verbatim]
\dynamicUp
-\override DynamicText #'extra-spacing-width = #'(0 . 0)
-a4\f b\mf c\mp b\p |
+% Aumenta la larghezza di 1 spazio rigo
+\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
+\relative { a'4\f b\mf a\mp b\p }
@end lilypond
@noindent
-Sicuramente ha impedito un'errata disposizione delle indicazioni
-dinamiche, ma restano due problemi. Le dinamiche dovrebbero
-essere un po' più distanziate; sarebbe inoltre opportuno collocarle
-tutte alla stessa distanza dal rigo.
-Il primo problema è facilmente risolvibile. Invece di
-impostare @code{extra-spacing-width} su zero, possiamo
-aggiungere un po' di spazio. L'unità è lo spazio tra due linee
-del rigo, quindi se spostiamo il margine sinistro mezza unità
-a sinistra e il margine destro mezza unità a destra dovrebbe
-funzionare:
+L'aspetto è migliore, ma sarebbe preferibile avere i segni di dinamica
+allineati alla stessa linea di base invece di spostarsi su e giù seguendo
+la posizione delle note. La proprietà che permette di ottenere tale
+risultato è @code{staff-padding} ed è trattata nella sezione relativa
+alle collisioni (vedi @ref{Collisions of objects}).
-@cindex DynamicText, esempio di sovrascrittura
-@cindex proprietà extra-spacing-width, esempio
-@cindex extra-spacing-width, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\dynamicUp
-% Aumenta la larghezza di 1 spazio rigo
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
-a4\f b\mf c\mp b\p
+@node Spaziatura verticale
+@section Spaziatura verticale
+@translationof Vertical spacing
+
+Di norma, la spaziatura verticale degli oggetti musicali decisa da
+LilyPond è molto buona. Vediamo come si comporta con una semplice
+canzone, composta da due voci e un accompagnamento per pianoforte:
+
+@lilypond[quote,fragment,ragged-right]
+<<
+ \new ChoirStaff
+ <<
+ \new Staff {
+ \new Voice = "music" {
+ b'2 c' c' c'
+ }
+ }
+ \new Lyrics
+ \lyricsto "music" {
+ Here are some lyrics
+ }
+ \new Staff {
+ \clef bass e'2 f e c
+ }
+ >>
+ \new PianoStaff
+ <<
+ \new Staff {
+ g''2 c'' c'' a''
+ }
+ \new Staff {
+ \clef bass e2 f c e
+ }
+ >>
+>>
@end lilypond
-@noindent
-L'aspetto è migliore, ma sarebbe preferibile avere i segni di dinamica
-allineati alla stessa linea di base invece di spostarsi su e giù seguendo la posizione delle note.
-La proprietà che permette di ottenere tale risultato è @code{staff-padding} ed è trattata
-nella sezione seguente.
+Non c'è niente di sbagliato con la spaziatura verticale predefinita. Tuttavia,
+supponiamo che si stia lavorando con un editore che abbia requisiti specifici
+per la spaziatura verticale dei righi e del testo vocale, ovvero maggior spazio
+tra testo e note, e tra l'accompagnamento del pianoforte e la linea vocale, e
+minor spazio tra i righi del pianoforte. Iniziamo dal testo.
+
+Il testo vocale si trova all'interno di un sistema, dunque i comandi per
+modificarne la spaziatura sono descritti in @ruser{Spaziatura verticale flessibile all'interno dei sistemi}.
+Quel paragrafo ci dice che il testo è costituito da linee che non appartengono
+al rigo (@code{non-staff lines}), quindi il comando per cambiarne la spaziatura
+sarà riferito alla proprietà @code{nonstaff}. Per allontanarlo dal rigo a cui
+si riferiscono (la linea superiore) si usa la proprietà @code{relatedstaff}.
+Per allontanarli dalla linea più bassa si usa la proprietà @code{unrelatedstaff}.
+Le parti vocali fanno parte del @code{VerticalAxisGroup}, dunque dobbiamo
+aggiustare le sue proprietà. Proviamo a vedere se funziona.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+ \new ChoirStaff
+ <<
+ \new Staff {
+ \new Voice = "music" {
+ b'2 c' c' c'
+ }
+ }
+ \new Lyrics \with {
+ \override VerticalAxisGroup.
+ nonstaff-relatedstaff-spacing.padding = #5
+ \override VerticalAxisGroup.
+ nonstaff-unrelatedstaff-spacing.padding = #5
+ }
+ \lyricsto "music" {
+ Here are some lyrics
+ }
+ \new Staff {
+ \clef bass e'2 f e c
+ }
+ >>
+ \new PianoStaff
+ <<
+ \new Staff {
+ g''2 c'' c'' a''
+ }
+ \new Staff {
+ \clef bass e2 f c e
+ }
+ >>
+>>
+@end lilypond
+
+Funziona, ma forse non molto bene. Quando impostiamo il
+@code{padding} su 5, LilyPond aggiunge 5 spazi rigo alla distanza
+tra gli oggetti, che è troppo in questo caso. Useremo 2.
+
+Ora allontaniamo la musica per pianoforte dalle parti vocali. La musica
+vocale si trova nel rigo @code{ChoirStaff}, quindi dobbiamo aumentare lo
+spazio tra quel gruppo di righi e il rigo per pianoforte che si trova sotto.
+Lo faremo modificando la proprietà @code{basic-distance} del
+@code{staffgroup-staff-spacing} di @code{StaffGrouper}.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+ \new ChoirStaff \with {
+ \override StaffGrouper.
+ staffgroup-staff-spacing.basic-distance = #15
+ }
+ <<
+ \new Staff {
+ \new Voice = "music" {
+ b'2 c' c' c'
+ }
+ }
+ \new Lyrics \with {
+ \override VerticalAxisGroup.
+ nonstaff-relatedstaff-spacing.padding = #2
+ \override VerticalAxisGroup.
+ nonstaff-unrelatedstaff-spacing.padding = #2
+ }
+ \lyricsto "music" {
+ Here are some lyrics
+ }
+ \new Staff {
+ \clef bass e'2 f e c
+ }
+ >>
+ \new PianoStaff
+ <<
+ \new Staff {
+ g''2 c'' c'' a''
+ }
+ \new Staff {
+ \clef bass e2 f c e
+ }
+ >>
+>>
+@end lilypond
+
+Ottimo. Non ci resta che avvicinare i righi del pianoforte. Per farlo,
+modifichiamo di nuovo le proprietà di @code{StaffGrouper}, ma questa volta
+riduciamo sia @code{basic-distance} che @code{padding}. Ecco come fare:
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+ \new ChoirStaff \with {
+ \override StaffGrouper.
+ staffgroup-staff-spacing.basic-distance = #15
+ }
+ <<
+ \new Staff {
+ \new Voice = "music" {
+ b'2 c' c' c'
+ }
+ }
+ \new Lyrics \with {
+ \override VerticalAxisGroup.
+ nonstaff-relatedstaff-spacing.padding = #2
+ \override VerticalAxisGroup.
+ nonstaff-unrelatedstaff-spacing.padding = #2
+ }
+ \lyricsto "music" {
+ Here are some lyrics
+ }
+ \new Staff {
+ \clef bass e'2 f e c
+ }
+ >>
+ \new PianoStaff \with {
+ \override StaffGrouper.staff-staff-spacing = #'(
+ (basic-distance . 0)
+ (padding . 0))
+ }
+ <<
+ \new Staff {
+ g''2 c'' c'' a''
+ }
+ \new Staff {
+ \clef bass e2 f c e
+ }
+ >>
+>>
+@end lilypond
+
+In questo modo sono molto vicini, ma è quello che vuole l'editore.
+Se necessario, possono essere allontanati modificando @code{padding} o
+@code{basic-distance}.
+
+Ci sono molti modi per modificare la spaziatura verticale. Il punto fondamentale
+da ricordare è che la spaziatura degli oggetti in un contesto @code{StaffGroup}
+(come i gruppi @code{GrandStaff} o @code{PianoStaff}) è controllata dalle
+variabili spaziali di @code{StaffGrouper}. La spaziatura relativa ai righi
+non raggruppati (come @code{Lyrics} e @code{Staff}) è regolata dalle variabili
+del @code{VerticalAxisGroup}. Ulteriori dettagli in
+@ruser{Variabili paper della spaziatura verticale flessibile} e
+@ruser{Spaziatura verticale flessibile all'interno dei sistemi}.
@node Collisioni tra oggetti
qualsiasi oggetto che supporti l'interfaccia @code{side-position-interface} e
quello più vicino (solitamente, la nota o le linee del rigo); @code{staff-padding}
si applica solo a quegli oggetti che stanno sempre fuori dal rigo e regola
-la quantità minima di spazio da inserire tra l'oggetto e il rigo. Nota che
+la distanza minima tra l'oggetto e il rigo. Nota che
@code{staff-padding} non ha alcun effetto sugli oggetti disposti relativamente
alla nota invece che al rigo, anche se può essere sovrascritto senza generare
degli errori per tali oggetti; quindi viene semplicemente ignorata.
tra oggetti come le pause di più misure, le legature di valore e le
note in voci diverse.
+@item
+@code{horizontal-shift}
+
+@cindex horizontal-shift, proprietà
+@cindex proprietà horizontal-shift
+@cindex colonna di note
+@cindex collisioni di note
+@cindex note, collisioni
+@cindex shift, comandi
+@funindex \shiftOff
+@funindex shiftOff
+@funindex \shiftOn
+@funindex shiftOn
+@funindex \shiftOnn
+@funindex shiftOnn
+@funindex \shiftOnnn
+@funindex shiftOnnn
+
+All'interno di una voce, tutte le note che si trovano nello stesso momento
+musicale sono raggruppate in una colonna di note, e viene creato un oggetto
+@code{NoteColumn} per controllare il posizionamento orizzontale di quel
+gruppo di note (vedi @qq{Colonne di note} in @ref{Explicitly instantiating voices}). Se
+@emph{e solo se} due o più colonne di note in un solo contesto Staff, entrambe
+con i gambi nella stessa direzione, si trovano sullo stesso momento musicale,
+i valori delle loro proprietà @code{horizontal-shift} sono usati per attribuire
+un punteggio e le colonne che hanno un punteggio più alto vengono progressivamente spostate
+per evitare le collisioni delle teste di nota. Questa proprietà viene impostata
+dai comandi @code{\voiceXXX} e può essere scavalcata direttamente con un
+comando @code{\override} o, di solito, dai comandi @code{\shiftOn}.
+Attenzione: questa proprietà viene usata per dare un @emph{punteggio} alle
+colonne di note per spostarle orizzontalmente; non specifica la grandezza dello
+spostamento, che viene aumentata progressivamente per gradi in base alla larghezza della
+testa di nota per ogni punteggio. I gradi sono solitamente di metà della
+larghezza della testa di nota, ma possono essere della larghezza intera della
+testa quando c'è un gruppo di note molto ravvicinate.
+
+
@item
@code{force-hshift}
@cindex proprietà force-hshift
@cindex force-hshift, proprietà
-Le note ravvicinate di un accordo o quelle simultanee appartenenti
-a voci diverse sono disposte su due e talvolta più colonne per
-impedire la sovrapposizione delle teste. Tali colonne si chiamano
-colonne di note (@emph{note columns}) e l'oggetto che provvede a crearle
-si chiama @code{NoteColumn}.
-
La proprietà @code{force-hshift} appartiene a @code{NoteColumn}
(più precisamente all'interfaccia @code{note-column-interface}). Modificandola
-è possibile spostare la colonna di note proporzionalmente,
-assumendo come unità la larghezza della testa della nota nella voce superiore. Si usa
+è possibile spostare la colonna di note in situazioni in cui le colonne di
+note sono sovrapposte. Non ha effetto su colonne di note non sovrapposte.
+Viene specificata in unità appropriate per una colonna di note, ovvero la
+larghezza della testa della nota nella prima voce. Si usa
in situazioni complesse in cui i normali comandi @code{\shiftOn} (vedi
@ref{Explicitly instantiating voices}) non risolvono adeguatamente le collisioni tra le
note. Per questo scopo, è preferibile alla proprietà @code{extra-offset}
Vediamo ora come le proprietà presentate nella sezione precedente possano
aiutare a risolvere la sovrapposizione degli elementi della notazione.
-@subheading proprietà padding
+@menu
+* La proprietà padding::
+* La proprietà right-padding::
+* La proprietà staff-padding::
+* La proprietà self-alignment-X::
+* La proprietà staff-position::
+* La proprietà extra-offset::
+* La proprietà positions::
+* La proprietà force-hshift::
+@end menu
+
+@node La proprietà padding
+@unnumberedsubsubsec La proprietà @code{padding}
+@translationof The padding property
@cindex padding
@cindex spaziatura
@cindex proprietà padding, esempio
@cindex padding, esempio
-@lilypond[quote,fragment,relative=1,verbatim]
-c2\fermata
-\override Script #'padding = #3
+@lilypond[quote,fragment,verbatim]
+c'2\fermata
+\override Script.padding = #3
b2\fermata
@end lilypond
@cindex proprietà padding, esempio
@cindex padding, esempio
-@lilypond[quote,fragment,relative=1,verbatim]
+@lilypond[quote,fragment,verbatim]
% Questo non funziona, vedi sotto
-\override MetronomeMark #'padding = #3
+\override MetronomeMark.padding = #3
\tempo 4 = 120
-c1 |
+c'1 |
% Questo funziona
-\override Score.MetronomeMark #'padding = #3
+\override Score.MetronomeMark.padding = #3
\tempo 4 = 80
-d1 |
+d'1 |
@end lilypond
Nota nel secondo esempio come è importante sapere quale contesto
gestisce un certo oggetto. Dato che l'oggetto @code{MetronomeMark}
è regolato dal contesto @code{Score}, le modifiche della proprietà
nel contesto @code{Voice} non vengono prese in considerazione. Per
-approfondire l'argomento si veda @ruser{Modifying properties}.
+approfondire l'argomento si veda @ruser{Modifica delle proprietà}.
Se la proprietà @code{padding} di un oggetto viene aumentata quando
quell'oggetto si trova insieme ad altri oggetti disposti secondo la
quell'oggetto e tutti gli oggetti esterni a esso.
-@subheading right-padding
+@node La proprietà right-padding
+@unnumberedsubsubsec La proprietà @code{right-padding}
+@translationof The right-padding property
@cindex proprietà right-padding
@cindex right-padding, proprietà
@lilypond[quote,ragged-right,verbatim]
sesquisharp = \markup { \sesquisharp }
-\relative c'' {
- c4
+\relative {
+ c''4
% Mostra un triesis (alterazione ascendente di tre quarti di tono) ma lo spazio è troppo stretto
- \once \override Accidental
- #'stencil = #ly:text-interface::print
- \once \override Accidental #'text = #sesquisharp
+ \once \override Accidental.stencil = #ly:text-interface::print
+ \once \override Accidental.text = #sesquisharp
cis4 c
% Ecco come migliorare lo spazio
- \once \override Score.AccidentalPlacement #'right-padding = #0.6
- \once \override Accidental
- #'stencil = #ly:text-interface::print
- \once \override Accidental #'text = #sesquisharp
+ \once \override Score.AccidentalPlacement.right-padding = #0.6
+ \once \override Accidental.stencil = #ly:text-interface::print
+ \once \override Accidental.text = #sesquisharp
cis4 |
}
@end lilypond
@noindent
-@subheading proprietà staff-padding
+@node La proprietà staff-padding
+@unnumberedsubsubsec La proprietà @code{staff-padding}
+@translationof The staff-padding property
@cindex allineare gli oggetti a una base
@cindex oggetti, allinearli a una base
@code{staff-padding} serve ad allineare gli oggetti come i segni di
-dinamica lungo una linea di base a una certa altezza fissa sopra il
-rigo, invece che a un'altezza dipendente dalla posizione della nota al
-quale sono collegati. Non è una proprietà di @code{DynamicText} bensì
+dinamica lungo una linea di base a una certa distanza dal rigo, quando
+nessun altro elemento della notazione li allontana dal rigo.
+Non è una proprietà di @code{DynamicText} bensì
di @code{DynamicLineSpanner}, perché la base deve essere applicata
ugualmente a @strong{tutti} i segni dinamica, compresi quelli creati
come estensori. Ecco come allineare i segni di dinamica nell'esempio
@cindex proprietà staff-padding, esempio
@cindex staff-padding, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\dynamicUp
-% Aumenta la larghezza di 1 unità
-\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
-% Allinea le dinamiche alla base posta 2 unità sopra il rigo
-\override DynamicLineSpanner #'staff-padding = #2
-a4\f b\mf c\mp b\p
+@lilypond[quote,fragment,ragged-right,verbatim]
+\override DynamicLineSpanner.staff-padding = #3
+\relative { a'4\f b\mf a\p b\mp }
@end lilypond
-@subheading proprietà self-alignment-X
+@node La proprietà self-alignment-X
+@unnumberedsubsubsec La proprietà @code{self-alignment-X}
+@translationof The self-alignment-X property
-L'esempio successivo mostra come questa proprietà possa risolvere la
-collisione di un numero di corda con un gambo allineando il bordo
-destro del numero al punto di riferimento della nota a cui si riferisce:
+L'esempio successivo mostra come aggiustare la posizione di un numero
+di corda rispetto a un gambo allineando il bordo destro del numero
+al punto di riferimento della nota a cui si riferisce:
@cindex StringNumber, esempio di sovrascrittura
@cindex proprietà self-alignment-X, esempio
@cindex self-alignment-X, esempio
-@lilypond[quote,fragment,ragged-right,verbatim,relative=3]
+@lilypond[quote,fragment,ragged-right,verbatim]
\voiceOne
-<a\2>
-\once \override StringNumber #'self-alignment-X = #RIGHT
-<a\2>
+<a''\2>
+\once \override StringNumber.self-alignment-X = #RIGHT
+<a''\2>
@end lilypond
-@subheading proprietà staff-position
+
+@node La proprietà staff-position
+@unnumberedsubsubsec La proprietà @code{staff-position}
+@translationof The staff-position property
@cindex collisione tra oggetti all'interno del rigo
le note e le pause simultanee. Ecco un esempio
di collisione di questo tipo:
-@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
-<< { c4 c c c } \\ { R1 } >>
+@lilypond[quote,verbatim,ragged-right]
+<< \relative { c'4 c c c } \\ { R1 } >>
@end lilypond
In questo caso la soluzione migliore è spostare in basso la pausa d'intero, poiché
si trova nella seconda voce. In @code{\voiceTwo} (ovvero nella seconda
-voce di un costrutto @code{<<@{...@} \\ @{...@}>>}) il valore predefinito
+voce di un costrutto @code{<<@{@dots{}@} \\ @{@dots{}@}>>}) il valore predefinito
di @code{staff-position} è -4 per la pausa multipla (MultiMeasureRest), quindi
dobbiamo spostarla più in basso, ad esempio di altri quattro semispazi del
rigo; il nuovo valore sarà @w{@code{-8}}.
@cindex proprietà staff-position, esempio
@cindex staff-position, esempio
-@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+@lilypond[quote,verbatim,ragged-right]
<<
- { c4 c c c }
+ \relative { c'4 c c c }
\\
- \override MultiMeasureRest #'staff-position = #-8
+ \override MultiMeasureRest.staff-position = #-8
{ R1 }
>>
@end lilypond
Questa soluzione è preferibile all'uso di @code{extra-offset}, perché
il taglio addizionale sopra la pausa è inserito automaticamente.
-@subheading proprietà extra-offset
+@node La proprietà extra-offset
+@unnumberedsubsubsec La proprietà @code{extra-offset}
+@translationof The extra-offset property
@cindex posizionare gli oggetti
@cindex posizionare i grob
@lilypond[quote,fragment,relative=1,verbatim]
\stemUp
f4-5
-\once \override Fingering #'extra-offset = #'(-0.3 . -1.8)
+\once \override Fingering.extra-offset = #'(-0.3 . -1.8)
f4-5
@end lilypond
-@subheading proprietà positions
+@node La proprietà positions
+@unnumberedsubsubsec La proprietà @code{positions}
+@translationof The positions property
@cindex controllo manuale di graffette dei gruppi irregolari, travature, legature di portamento e di frase
@cindex travature dei gruppi irregolari, controllo manuale
@cindex legature di frase, controllo manuale
@cindex travature, controllo manuale
-La proprietà @code{positions} permette di controllare manualmente la posizione e
-l'inclinazione delle graffette dei gruppi irregolari, delle legature di portamento e di
-frase e delle travature. Ecco un esempio di una legatura di frase
-dall'aspetto orribile, dovuto al suo tentativo di evitare la legatura
-di portamento sull'acciaccatura.
+La proprietà @code{positions} permette di controllare manualmente la
+posizione verticale e quindi l'inclinazione delle graffette dei
+gruppi irregolari, delle legature di portamento e di frase e
+delle travature. Ecco un esempio in cui una legatura di frase
+e una legatura di portamento collidono:
-@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
-r4 \acciaccatura e8\( d8 c~ c d c d\)
-@end lilypond
-
-@noindent
-Potremmo semplicemente spostare la legatura di frase sopra le note:
-
-@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
-r4
-\phrasingSlurUp
-\acciaccatura e8\( d8 c~ c d c d\)
+@lilypond[quote,verbatim,ragged-right]
+\relative { a'8 \( ( a'16 ) a \) }
@end lilypond
-@noindent
-Questa sarebbe la soluzione migliore. Se, invece, per qualche motivo non
-fosse possibile, l'alternativa sarebbe spostare un po' più in basso l'estremità
-sinistra della legatura di frase tramite la proprietà @code{positions}. Questo
-risolve anche il problema della forma sgraziata.
-
@cindex PhrasingSlur, esempio di sovrascrittura
@cindex proprietà positions, esempio
@cindex positions, esempio
-@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
-r4
-\once \override PhrasingSlur #'positions = #'(-4 . -3)
-\acciaccatura e8\( d8 c~ c d c d\)
+@noindent
+Si potrebbero spostare più in alto le due estremità della legatura
+di frase. Possiamo provare a impostare quella sinistra su 2.5 spazi
+sopra la linea centrale e quella destra a 4.5 spazi; LilyPond
+sceglierà la legatura di frase tra quelle candidate che hanno le
+estremità più vicine a queste:
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\once \override PhrasingSlur.positions = #'(2.5 . 4.5)
+a'8 \( ( a''16 ) a'' \)
@end lilypond
+È migliorato, ma perché non abbassare un po' l'estremità destra
+della legatura di portamento? Se provi vedrai che non può essere
+fatto in questo modo. Il motivo è che non ci sono legature di
+portamento candidate più basse di quella già selezionata, quindi
+in questo caso la proprietà @code{positions} non può produrre
+effetti. Tuttavia, legature di valore, di portamento e di frase
+@emph{possono} essere posizionate e disegnate in modo molto preciso
+se necessario. Per sapere come fare si veda @ruser{Modifica di legature di valore e di portamento}.
+
Ecco un altro esempio. Vediamo che le travature collidono
con le legature di valore:
{
\time 4/2
<<
- { c'1 ~ c'2. e'8 f' }
+ { c'1 ~ 2. e'8 f' }
\\
{ e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
>>
<<
- { c'1 ~ c'2. e'8 f' }
+ { c'1 ~ 2. e'8 f' }
\\
{ e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
>>
{
\time 4/2
<<
- { c'1 ~ c'2. e'8 f' }
+ { c'1 ~ 2. e'8 f' }
\\
{
- \override Beam #'positions = #'(-1 . -1)
+ \override Beam.positions = #'(-1 . -1)
e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g''
}
>>
<<
- { c'1 ~ c'2. e'8 f' }
+ { c'1 ~ 2. e'8 f' }
\\
{ e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
>>
@end lilypond
@noindent
-Come vedi, la sovrascrittura si applica anche alla prima voce della seconda
-misura di otto note, ma a nessuna delle travature nella seconda voce.
+Come vedi, la sovrascrittura si applica anche alla seconda voce della seconda
+misura di otto note, ma a nessuna delle travature nella prima voce, nemmeno
+in quelle della seconda misura. Appena la sovrascrittura non è più attiva,
+deve essere ripristinato, come si vede.
-@subheading proprietà force-hshift
+@node La proprietà force-hshift
+@unnumberedsubsubsec La proprietà @code{force-hshift}
+@translationof The force-hshift property
Possiamo vedere ora come applicare le correzioni finali all'esempio di Chopin
introdotto alla fine del paragrafo @ref{I'm hearing Voices}, che avevamo
lasciato così:
@lilypond[quote,verbatim,fragment,ragged-right]
-\new Staff \relative c'' {
+\new Staff \relative {
\key aes \major
<<
- { c2 aes4. bes8 }
+ { c''2 aes4. bes8 }
\\
{ <ees, c>2 des }
\\
@noindent
La nota interna del primo accordo (ovvero il La bemolle della quarta
voce) non deve essere allontanata dalla colonna della nota più
-alta. Per correggerlo impostiamo @code{force-hshift}, una proprietà
-di @code{NoteColumn}, su zero.
+alta, quindi usiamo @code{\shiftOff}.
Nel secondo accordo preferiamo che il Fa sia allineato al La bemolle e che
la nota più grave sia posizionata leggermente più a destra, in modo da
evitare la collisione dei gambi. Per farlo dobbiamo impostare
@code{force-hshift} nella colonna (@code{NoteColumn}) del Re bemolle
-grave in modo che si sposti a destra di mezzo spazio di rigo.
+grave in modo che si sposti a destra di mezzo spazio di rigo e @code{force-hshift}
+per il Fa su zero. Si usa @code{\once} per evitare che tali impostazioni
+si propaghino oltre il momento musicale immediato, sebbene in questo
+piccolo esempio il @code{\once} e il secondo @code{\override} nella quarta
+voce potrebbero essere omessi. Ma non sarebbe un esempio di buona pratica.
Ecco il risultato finale:
@cindex force-hshift, esempio
@lilypond[quote,verbatim,fragment,ragged-right]
-\new Staff \relative c'' {
+\new Staff \relative {
\key aes \major
<<
- { c2 aes4. bes8 }
+ { c''2 aes4. bes8 }
\\
- {
- <ees, c>2
- \once \override NoteColumn #'force-hshift = #0.5
- des2
- }
+ { <ees, c>2 \once \override NoteColumn.force-hshift = 0.5 des }
\\
\\
- {
- \override NoteColumn #'force-hshift = #0
- aes'2 f4 fes
- }
+ { \once \shiftOff aes'2 \once \shiftOff f4 fes }
>> |
<c ees aes c>1 |
}
@c This example should not be indexed
@c line-width ensures no break
@lilypond[quote,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
- \once \override Tie #'staff-position = #3.5
+ r2 c''4.\( g8 |
+ \once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
\time 6/4
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
- bes2.^\markup { \bold "Moderato" } r8
+ bes2.\tempo "Moderato" r8
<<
{ c,8 d fis bes a }
\new Voice {
\voiceTwo
c,8~
- % Reposition the c2 to the right of the merged note
- \once \override NoteColumn #'force-hshift = #1.0
- % Move the c2 out of the main note column
- % so the merge will work
+ % Riposiziona il c2 a destra della nota unita
+ \once \override NoteColumn.force-hshift = #1.0
+ % Sposta il c2 fuori dalla colonna della nota principale
+ % in modo che l'unione di note (merge) funzioni
\shiftOnn
c2
}
\new Voice {
\voiceThree
s8
- % Stem on the d2 must be down to permit merging
+ % Il gambo di d2 deve essere in giù per permettere l'unione delle note
\stemDown
- % Stem on the d2 should be invisible
+ % Il gambo di d2 deve essere invisibile
\tweak Stem.transparent ##t
- \tweak Flag.transparent ##t
d2
}
\new Voice {
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4. g8 |
+ r2 c''4. g8 |
bes1~ |
\time 6/4
bes2. r8
{ c,8 d fis bes a } % continuazione della voce principale
\new Voice {
\voiceTwo
- c,8~ c2
+ c,8~ 2
}
\new Voice {
\voiceThree
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2 |
+lhMusic = \relative {
+ r2 <c' g ees>2 |
<d g, d>1 |
r2. d,,4 r4 r |
r4
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
+ r2 c''4.\( g8 |
bes1~ |
\time 6/4
bes2. r8
{ c,8 d fis bes a } % continuazione della voce principale
\new Voice {
\voiceTwo
- c,8~ c2
+ c,8~ 2
}
\new Voice {
\voiceThree
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1) |
r2. d,,4 r4 r |
r4
posizionata proprio prima della prima nota della legatura sposta la legatura
3.5 mezzi spazi di rigo sopra la linea centrale:
-@code{\once \override Tie #'staff-position = #3.5}
+@code{\once \override Tie.staff-position = #3.5}
Questo completa la seconda battuta:
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
- \once \override Tie #'staff-position = #3.5
+ r2 c''4.\( g8 |
+ \once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
\time 6/4
{ c,8 d fis bes a } % continuazione della voce principale
\new Voice {
\voiceTwo
- c,8~ c2
+ c,8~ 2
}
\new Voice {
\voiceThree
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
@end lilypond
Proseguiamo con la terza battuta e l'inizio della sezione del Moderato. Nel
-tutorial abbiamo visto come aggiungere del testo in grassetto tramite il
-comando @code{\markup}, quindi aggiungere @qq{Moderato} in grassetto è
-facile. Ma come facciamo ad accorpare le note appartenenti a voci
-diverse? Ancora una volta dobbiamo rivolgerci alla guida alla Notazione per
-un aiuto. Una ricerca del termine @qq{accorpare} (@emph{merge}) nell'indice della
-guida ci porta rapidamente al paragrafo @ruser{Collision resolution}, dove
+tutorial abbiamo visto come aggiungere un'indicazione di tempo col comando
+@code{\tempo}, quindi aggiungere @qq{Moderato} è facile. Ma come facciamo
+ad accorpare le note appartenenti a voci diverse? Ancora una volta
+dobbiamo rivolgerci alla guida alla Notazione per un aiuto. Una ricerca
+del termine @qq{accorpare} (in inglese @emph{merge}) nell'indice della guida
+ci porta rapidamente al paragrafo @ruser{Risoluzione delle collisioni}, dove
troviamo i comandi per allineare le note con teste e punti diversi. Nel
nostro esempio abbiamo bisogno di accorpare entrambi i tipi di note per la
durata della sezione polifonica della terza battuta. Dunque, usando le
@c line-width ensures no break
@lilypond[quote,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
- \once \override Tie #'staff-position = #3.5
+ r2 c''4.\( g8 |
+ \once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
\time 6/4
- bes2.^\markup { \bold "Moderato" } r8
+ bes2.\tempo "Moderato" r8
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
% Inizia la sezione polifonica a quattro voci
{ c,8 d fis bes a } % continuazione della voce principale
\new Voice {
\voiceTwo
- c,8~ c2
+ c,8~ 2
}
\new Voice {
\voiceThree
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
- \once \override Tie #'staff-position = #3.5
+ r2 c''4.\( g8 |
+ \once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
\time 6/4
- bes2.^\markup { \bold "Moderato" } r8
+ bes2.\tempo "Moderato" r8
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
% Inizia la sezione polifonica a quattro voci
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
- \once \override Tie #'staff-position = #3.5
+ r2 c''4.\( g8 |
+ \once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
\time 6/4
\voiceTwo
c,8~
% Riposiziona il c2 a destra della nota unita
- \once \override NoteColumn #'force-hshift = #1.0
+ \once \override NoteColumn.force-hshift = #1.0
% Sposta il c2 fuori dalla colonna della nota principale
% in modo che l'unione di note funzioni
\shiftOnn
s8
% Il gambo di d2 deve essere in giù per permettere l'unione delle note
\stemDown
- % Stem on the d2 should be invisible
+ % Il gambo di d2 deve essere invisibile
\tweak Stem.transparent ##t
- \tweak Flag.transparent ##t
d2
}
\new Voice {
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
@translationof Further tweaking
@menu
-* Altri usi delle modifiche::
-* Uso delle variabili per le modifiche::
+* Altri usi delle modifiche con \tweak::
+* Uso delle variabili per modificare la formattazione::
* Fogli di stile::
* Altre fonti di informazione::
* Modifiche avanzate con Scheme::
@end menu
-@node Altri usi delle modifiche
-@subsection Altri usi delle modifiche
+@node Altri usi delle modifiche con \tweak
+@subsection Altri usi delle modifiche con @code{\tweak}
@translationof Other uses for tweaks
-@cindex proprietà transparent, uso della
-@cindex oggetti, renderli invisibili
-@cindex togliere gli oggetti
-@cindex oggetti, toglierli
-@cindex nascondere gli oggetti
-@cindex oggetti, nascondere
-@cindex oggetti invisibili
-@cindex legature di valore tra note di voci diverse
+@menu
+* Legature di valore tra note di voci diverse::
+* Simulare una corona nel MIDI::
+@end menu
+
+@cindex rimuovere gli oggetti
+@cindex oggetti, rimuoverli
-@subheading Legature di valore tra note di voci diverse
+@node Legature di valore tra note di voci diverse
+@unnumberedsubsubsec Legature di valore tra note di voci diverse
+@translationof Tying notes across voices
+
+@cindex legature di valore tra note di voci diverse
L'esempio seguente mostra come unire con legature di valore
note appartenenti a voci diverse. Di norma, solo le note nella
stessa voce possono essere unite da una legatura di valore.
Se si usano due voci con le note legate in una voce
-@lilypond[quote,fragment,relative=2]
-<< { b8~ b\noBeam } \\ { b8[ g] } >>
+@lilypond[quote]
+<< { b'8~ 8\noBeam } \\ { b'8[ g'] } >>
@end lilypond
@noindent
-e si cancella il primo gambo di quella voce, la legatura sembra
+e si toglie il primo gambo di quella voce e la sua coda, la legatura sembra
attraversare le voci:
-@cindex Stem, esempio di sovrascrittura
-@cindex proprietà transparent, esempio
-@cindex transparent, esempio
+@cindex Stem, esempio di rimozione
+@cindex Flag, esempio di rimozione
+@cindex @code{\omit}, esempio
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,verbatim]
<<
{
- \tweak Stem.transparent ##t
- \tweak Flag.transparent ##t
- b8~ b\noBeam
+ \once \omit Stem
+ \once \omit Flag
+ b'8~ 8\noBeam
}
\\
- { b8[ g] }
+ { b'8[ g'] }
>>
@end lilypond
-Per far sì che il gambo cancellato non schiacci troppo la legatura,
-possiamo allungarlo impostando la proprietà
-@code{length} su @code{8},
+@seealso
+Manuale di apprendimento:
+@ref{The once prefix,,Il prefisso @code{@bs{}once}},
+@ref{The stencil property}.
-@lilypond[quote,fragment,relative=2,verbatim]
-<<
- {
- \tweak Stem.transparent ##t
- \tweak Flag.transparent ##t
- \tweak Stem.length #8
- b8~ b\noBeam
- }
-\\
- { b8[ g] }
->>
-@end lilypond
-@subheading Simulare una corona nel MIDI
+@node Simulare una corona nel MIDI
+@unnumberedsubsubsec Simulare una corona nel MIDI
+@translationof Simulating a fermata in MIDI
@cindex proprietà stencil, uso della
@cindex corona, usarla nel MIDI
la proprietà @code{stencil} piuttosto che la proprietà @code{transparent}
dell'oggetto se si desidera toglierlo dall'output. Se si imposta la
proprietà @code{stencil} su @code{#f} l'oggetto verrà completamente
-rimosso dall'output e quindi non potrà influenzare la disposizone
+rimosso dall'output e quindi non potrà influenzare la disposizione
di altri oggetti posizionati rispetto a esso.
Ad esempio, se volessimo modificare il segno di metronomo solo per
@lilypond[quote,verbatim,ragged-right]
\score {
- \relative c'' {
+ \relative {
% Indicazione di tempo visibile
\tempo 4=120
- a4 a a
- \once \override Score.MetronomeMark #'transparent = ##t
+ a'4 a a
+ \once \hide Score.MetronomeMark
% Indicazione di tempo invisibile per allungare la fermata nel MIDI
\tempo 4=80
a4\fermata |
@lilypond[quote,verbatim,ragged-right]
\score {
- \relative c'' {
+ \relative {
% Indicazione di tempo visibile
\tempo 4=120
- a4 a a
- \once \override Score.MetronomeMark #'stencil = ##f
+ a'4 a a
+ \once \omit Score.MetronomeMark
% Indicazione di tempo invisibile per allungare la fermata nel MIDI
\tempo 4=80
a4\fermata |
Glossario musicale:
@rglosnamed{system,sistema}.
-@node Uso delle variabili per le modifiche
-@subsection Uso delle variabili per le modifiche
-@translationof Using variables for tweaks
+@node Uso delle variabili per modificare la formattazione
+@subsection Uso delle variabili per modificare la formattazione
+@translationof Using variables for layout adjustments
-@cindex variabili, usarle per le modifiche
-@cindex usare le variabili per le modifiche
-@cindex modifiche, usare le variabili per le
+@cindex variabili, usarle per le sovrascritture
+@cindex sovrascritture, usare le variabili per
+@cindex formattazione, usare le variabili per modificare la
I comandi di sovrascrittura sono spesso lunghi e tediosi da
scrivere, e devono essere assolutamente corretti. Se si usa
alternativa possiamo usare i comandi @code{\override} e @code{\revert}?
@example
-@code{\override Lyrics . LyricText #'font-shape = #'italic}
-@code{\override Lyrics . LyricText #'font-series = #'bold}
+@code{\override Lyrics.LyricText.font-shape = #'italic}
+@code{\override Lyrics.LyricText.font-series = #'bold}
-@code{\revert Lyrics . LyricText #'font-shape}
-@code{\revert Lyrics . LyricText #'font-series}
+@code{\revert Lyrics.LyricText.font-shape}
+@code{\revert Lyrics.LyricText.font-series}
@end example
Anche questi sarebbero molto noiosi da inserire se ci fossero
@lilypond[quote,verbatim]
emphasize = {
- \override Lyrics.LyricText #'font-shape = #'italic
- \override Lyrics.LyricText #'font-series = #'bold
+ \override Lyrics.LyricText.font-shape = #'italic
+ \override Lyrics.LyricText.font-series = #'bold
}
normal = {
- \revert Lyrics.LyricText #'font-shape
- \revert Lyrics.LyricText #'font-series
+ \revert Lyrics.LyricText.font-shape
+ \revert Lyrics.LyricText.font-series
}
global = { \key c \major \time 4/4 \partial 4 }
-SopranoMusic = \relative c' { c4 | e4. e8 g4 g | a4 a g }
-AltoMusic = \relative c' { c4 | c4. c8 e4 e | f4 f e }
-TenorMusic = \relative c { e4 | g4. g8 c4. b8 | a8 b c d e4 }
-BassMusic = \relative c { c4 | c4. c8 c4 c | f8 g a b c4 }
+SopranoMusic = \relative { c'4 | e4. e8 g4 g | a4 a g }
+AltoMusic = \relative { c'4 | c4. c8 e4 e | f4 f e }
+TenorMusic = \relative { e4 | g4. g8 c4. b8 | a8 b c d e4 }
+BassMusic = \relative { c4 | c4. c8 c4 c | f8 g a b c4 }
VerseOne = \lyrics {
E -- | ter -- nal \emphasize Fa -- ther, | \normal strong to save,
@lilypond[quote,verbatim,ragged-right]
mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
- #{ ^\markup \bold \box #string #})
+ #{ <>^\markup \bold \box #string #})
-\relative c'' {
+\relative {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
@example
%%% salva queste righe in un file chiamato "definitions.ily"
mpdolce =
-#(make-dynamic-script
- #@{ \markup @{ \hspace #0
- \translate #'(5 . 0)
- \line @{ \dynamic "mp"
- \text \italic "dolce" @} @}
- #@})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@})
+
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
- #@{ ^\markup \bold \box #string #@})
+ #@{ <>^\markup \bold \box #string #@})
@end example
Ci riferiremo a questo file tramite il comando @code{\include} in cima
@example
\include "definitions.ily"
-\relative c'' @{
+\relative @{
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
@lilypond[quote,ragged-right]
mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
- #{ ^\markup \bold \box #string #})
+ #{ <>^\markup \bold \box #string #})
-\relative c'' {
+\relative {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
@example
%%% definitions.ily
mpdolce =
-#(make-dynamic-script
- #@{ \markup @{ \hspace #0
- \translate #'(5 . 0)
- \line @{ \dynamic "mp"
- \text \italic "dolce" @} @}
- #@})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@})
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
- #@{ ^\markup \bold \box #string #@})
+ #@{ <>^\markup \bold \box #string #@})
\layout@{
\context @{
\Score
- \override MetronomeMark #'extra-offset = #'(-9 . 0)
- \override MetronomeMark #'padding = #'3
+ \override MetronomeMark.extra-offset = #'(-5 . 0)
+ \override MetronomeMark.padding = #'3
@}
\context @{
\Staff
- \override TimeSignature #'style = #'numbered
+ \override TimeSignature.style = #'numbered
@}
\context @{
\Voice
- \override Glissando #'thickness = #3
- \override Glissando #'gap = #0.1
+ \override Glissando.thickness = #3
+ \override Glissando.gap = #0.1
@}
@}
@end example
@lilypond[quote,ragged-right]
mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
- #{ ^\markup \bold \box #string #})
+ #{ <>^\markup \bold \box #string #})
\layout{
\context {
\Score
- \override MetronomeMark #'extra-offset = #'(-9 . 0)
- \override MetronomeMark #'padding = #'3
+ \override MetronomeMark.extra-offset = #'(-5 . 0)
+ \override MetronomeMark.padding = #'3
}
\context {
\Staff
- \override TimeSignature #'style = #'numbered
+ \override TimeSignature.style = #'numbered
}
\context {
\Voice
- \override Glissando #'thickness = #3
- \override Glissando #'gap = #0.1
+ \override Glissando.thickness = #3
+ \override Glissando.gap = #0.1
}
}
-\relative c'' {
+\relative {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
@example
%%% web-publish.ily
mpdolce =
-#(make-dynamic-script
- #@{ \markup @{ \hspace #0
- \translate #'(5 . 0)
- \line @{ \dynamic "mp"
- \text \italic "dolce" @} @}
- #@})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@})
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
- #@{ ^\markup \bold \box #string #@})
+ #@{ <>^\markup \bold \box #string #@})
#(set-global-staff-size 23)
\layout@{
\context @{
\Score
- \override MetronomeMark #'extra-offset = #'(-9 . 0)
- \override MetronomeMark #'padding = #'3
+ \override MetronomeMark.extra-offset = #'(-5 . 0)
+ \override MetronomeMark.padding = #'3
@}
\context @{
\Staff
@}
\context @{
\Voice
- \override Glissando #'thickness = #3
- \override Glissando #'gap = #0.1
+ \override Glissando.thickness = #3
+ \override Glissando.gap = #0.1
@}
@}
@end example
@lilypond[quote,ragged-right]
mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+ \tweak self-alignment-X #-0.6
+ #(make-dynamic-script
+ #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #})
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
- #{ ^\markup \bold \box #string #})
+ #{ <>^\markup \bold \box #string #})
#(set-global-staff-size 23)
\layout{
\context { \Score
- \override MetronomeMark #'extra-offset = #'(-9 . 0)
- \override MetronomeMark #'padding = #'3
+ \override MetronomeMark.extra-offset = #'(-5 . 0)
+ \override MetronomeMark.padding = #'3
}
\context { \Voice
- \override Glissando #'thickness = #3
- \override Glissando #'gap = #0.1
+ \override Glissando.thickness = #3
+ \override Glissando.gap = #0.1
}
}
-\relative c'' {
+\relative {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
(come nelle distribuzioni GNU/Linux o nelle istallazioni tramite
fink o cygwin) o compilandolo dai sorgenti:
-@strong{Scaricato da lilypond.org}
+@subsubheading Scaricato da lilypond.org
@itemize @bullet
@item GNU/Linux
@end itemize
-@strong{Istallato da un gestore di pacchetti o compilato da sorgenti}
+@subsubheading Istallato da un gestore di pacchetti o compilato da sorgenti
Vai in
@file{@var{PREFIX}/share/lilypond/@var{X.Y.Z}/}, dove
Apri @file{ly/property-init.ly} in un editor di testo. Quello
che usi normalmente per i file @code{.ly} va bene. Questo file
contiene le definizioni di tutti i comandi predefiniti standard
-di LilyPond, come @code{\stemUp} e @code{\slurDotted}. Vedrai
+di LilyPond, come @code{\tieUp} e @code{\slurDotted}. Vedrai
che questi non sono altro che definizioni di variabili che
contengono uno o più comandi @code{\override}. Ad esempio,
-@code{/tieDotted} è definito così:
+@code{\tieDotted} è definito così:
@example
tieDotted = @{
- \override Tie #'dash-period = #0.75
- \override Tie #'dash-fraction = #0.1
+ \override Tie.dash-period = #0.75
+ \override Tie.dash-fraction = #0.1
@}
@end example
((0) (x11-color 'violet )) ; for B
)))
-\relative c' {
+\relative {
% Fa sì che il colore sia preso dalla procedura color-notehead
- \override NoteHead #'color = #color-notehead
+ \override NoteHead.color = #color-notehead
a2 b | c2 d | e2 f | g2 a |
}
@end lilypond
Altri esempi che mostrano l'uso di queste interfacce programmabili
si trovano in @rextend{Callback functions}.
-