@c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
@ignore
- Translation of GIT committish: 6d501730d319a6456acd13870821f0bcad64bf4e
+ Translation of GIT committish: f3e8b5f9b68cab4579873749f4648ba63bc92ac7
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.11"
+@c \version "2.17.20"
@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
@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 \tweak::
+@end menu
+
+@node Il comando \override
+@unnumberedsubsubsec Il comando @code{\override}
+@translationof The \override command
@cindex override, comando
@cindex override, sintassi
g4 a b c |
@end lilypond
-@strong{Il comando \revert}
+@node Il comando \revert
+@unnumberedsubsubsec Il comando @code{\revert}
+@translationof The \revert command
-@cindex ripristino (revert), comando
+@cindex revert, comando
+@cindex ripristino, comando \revert
@funindex \revert
@funindex revert
b4 c |
@end lilypond
-@strong{Il prefisso \once}
+@node Il prefisso \once
+@unnumberedsubsubsec Il prefisso @code{\once}
+@translationof The \once prefix
@funindex \once
@funindex once
@cindex colore, proprietà del
@cindex NoteHead, esempio di sovrascrittura
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+@lilypond[quote,verbatim,relative=1]
c4 d
\override NoteHead.color = #red
e4 f |
b c |
@end lilypond
-@strong{Il comando \overrideProperty}
+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=1]
+c4 d
+\once \stemDown
+e4 f |
+g4 a
+\once \hideNotes
+b c |
+@end lilypond
+
+Tuttavia, i comandi prefediniti che hanno la forma @code{\@dots{}Neutral},
+@code{\@dots{}Off} e @code{\un@dots{}} usano internamente @code{\revert} invece
+di @code{\override} dunque inserire @code{\once} prima di questi comandi
+non produce alcun effetto.
+
+
+@node Il comando \overrideProperty
+@unnumberedsubsubsec Il comando @code{\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}
+@node Il comando \tweak
+@unnumberedsubsubsec Il comando @code{\tweak}
+@translationof The \tweak command
@cindex tweak, comando
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
Il comando @code{\once} può essere usato anche prima del comando @code{\set}.
-@subheading Ripristinare
+@subsubheading Ripristinare
@cindex revert
@cindex ripristinare le proprietà predefinite
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)}
@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à
}
@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à
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à
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à
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
(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
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
delle sovrascritture esplicite.
+@node Diteggiatura
@unnumberedsubsubsec Diteggiatura
+@translationof Fingering
@cindex diteggiatura, posizionamento
@cindex diteggiatura, accordi
@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} è
far posto al testo. Lo si può ottenere con il comando
@code{textLengthOn}.
-@subheading \textLengthOn
+@node Il comando \textLengthOn
+@unnumberedsubsubsec Il comando @code{\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:
@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
@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}.
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\dynamicUp
-a4\f b\mf c\mp b\p
+a4\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
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\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)
+a4\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.
+
+the lyrics spaced away from any notes, they want the piano
+accompaniment spaced away from the vocal line and they want the two
+piano staves pushed together tightly. Let's start with the lyrics.
+
+Il testo vocale si trova all'interno di un sistema, dunque i comandi per
+modificarne la spaziatura sono descritti in @ruser{Flexible vertical spacing within systems}.
+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{Flexible vertical spacing \\paper variables} e
+@ruser{Flexible vertical spacing within systems}.
@node Collisioni tra oggetti
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
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à
@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
\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
+a4\f b\mf a\mp b\p
@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
<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
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}}.
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
@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.
-
-@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:
+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
-\phrasingSlurUp
-\acciaccatura e8\( d8 c~ c d c d\)
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+a8 \( ( 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,relative=2]
+\once \override PhrasingSlur.positions = #'(2.5 . 4.5)
+a8 \( ( 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{Modifying ties and slurs}.
+
Ecco un altro esempio. Vediamo che le travature collidono
con le legature di valore:
Come vedi, la sovrascrittura si applica anche alla prima voce della seconda
misura di otto note, ma a nessuna delle travature nella seconda voce.
-@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
\new Voice {
\voiceTwo
c,8~
- % Reposition the c2 to the right of the merged note
+ % Riposiziona il c2 a destra della nota unita
\once \override NoteColumn.force-hshift = #1.0
- % Move the c2 out of the main note column
- % so the merge will work
+ % 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 {
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 {
@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
+@menu
+* Legature di valore tra note di voci diverse::
+* Simulare una corona nel MIDI::
+@end menu
+
+
@cindex proprietà transparent, uso della
@cindex oggetti, renderli invisibili
@cindex togliere gli oggetti
@cindex oggetti invisibili
@cindex legature di valore tra note di voci diverse
-@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
L'esempio seguente mostra come unire con legature di valore
note appartenenti a voci diverse. Di norma, solo le note nella
<<
{
\tweak Stem.transparent ##t
- \tweak Flag.transparent ##t
b8~ b\noBeam
}
\\
<<
{
\tweak Stem.transparent ##t
- \tweak Flag.transparent ##t
\tweak Stem.length #8
b8~ b\noBeam
}
@end lilypond
@funindex \single
-@cindex tweak, generated from override
-Per @emph{sovrascrivere} la trasparenza di un oggetto grafico,
-avremmo potuto usare la scorciatoia @code{\hide}, come spiegato
+@cindex tweak, generato da un override
+
+Per @emph{sovrascrivere} (con @code{\override}) la trasparenza di un oggetto
+grafico, avremmo potuto usare la scorciatoia @code{\hide}, come spiegato
in precedenza. Ma la modifica manuale con @emph{\tweak} è un'operazione
diversa, che riguarda solo le proprietà generate da una singola espressione
musicale. Tuttavia è possibile convertire le sovrascritture in @emph{tweak}
@end lilypond
In questo caso particolare, la differenza rispetto a @code{\once \hide} non
-è evidente. La differenza è importante quando ci sono vari oggetti che
+è evidente. La differenza è evidente quando ci sono vari oggetti che
si trovano nello stesso punto del tempo musicale (come le teste delle note
in un accordo). In quel caso, @code{\once} avrà effetto su tutti quegli
oggetti mentre @code{\single} solo su uno, ovvero quello generato
dall'espressione musicale immediatamente seguente.
-@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
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
@ref{Advanced tweaks with Scheme}.
@lilypond[quote,verbatim,ragged-right]
-mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+ (make-dynamic-script
+ (markup #:dynamic "mp"
+ #:normal-text #:italic "dolce" ))
inst =
#(define-music-function
@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" @} @}
- #@})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+ (make-dynamic-script
+ (markup #:dynamic "mp"
+ #:normal-text #:italic "dolce" ))
inst =
#(define-music-function
@end example
@lilypond[quote,ragged-right]
-mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+ (make-dynamic-script
+ (markup #:dynamic "mp"
+ #:normal-text #:italic "dolce" ))
inst =
#(define-music-function
@example
%%% definitions.ily
-mpdolce =
-#(make-dynamic-script
- #@{ \markup @{ \hspace #0
- \translate #'(5 . 0)
- \line @{ \dynamic "mp"
- \text \italic "dolce" @} @}
- #@})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+ (make-dynamic-script
+ (markup #:dynamic "mp"
+ #:normal-text #:italic "dolce" ))
inst =
#(define-music-function
\layout@{
\context @{
\Score
- \override MetronomeMark.extra-offset = #'(-9 . 0)
+ \override MetronomeMark.extra-offset = #'(-5 . 0)
\override MetronomeMark.padding = #'3
@}
\context @{
@end example
@lilypond[quote,ragged-right]
-mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+ (make-dynamic-script
+ (markup #:dynamic "mp"
+ #:normal-text #:italic "dolce" ))
inst =
#(define-music-function
\layout{
\context {
\Score
- \override MetronomeMark.extra-offset = #'(-9 . 0)
+ \override MetronomeMark.extra-offset = #'(-5 . 0)
\override MetronomeMark.padding = #'3
}
\context {
@example
%%% web-publish.ily
-mpdolce =
-#(make-dynamic-script
- #@{ \markup @{ \hspace #0
- \translate #'(5 . 0)
- \line @{ \dynamic "mp"
- \text \italic "dolce" @} @}
- #@})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+ (make-dynamic-script
+ (markup #:dynamic "mp"
+ #:normal-text #:italic "dolce" ))
inst =
#(define-music-function
\layout@{
\context @{
\Score
- \override MetronomeMark.extra-offset = #'(-9 . 0)
+ \override MetronomeMark.extra-offset = #'(-5 . 0)
\override MetronomeMark.padding = #'3
@}
\context @{
@end example
@lilypond[quote,ragged-right]
-mpdolce =
-#(make-dynamic-script
- #{ \markup { \hspace #0
- \translate #'(5 . 0)
- \line { \dynamic "mp"
- \text \italic "dolce" } }
- #})
+mpdolce = -\tweak #'self-alignment-X #-0.6 #
+ (make-dynamic-script
+ (markup #:dynamic "mp"
+ #:normal-text #:italic "dolce" ))
inst =
#(define-music-function
\layout{
\context { \Score
- \override MetronomeMark.extra-offset = #'(-9 . 0)
+ \override MetronomeMark.extra-offset = #'(-5 . 0)
\override MetronomeMark.padding = #'3
}
\context { \Voice
(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
Altri esempi che mostrano l'uso di queste interfacce programmabili
si trovano in @rextend{Callback functions}.
-