@c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
@ignore
- Translation of GIT committish: 92d7753b7a1e9887afcc6ad6864a78940e7878fb
+ Translation of GIT committish: 09ef86c87175cc6c1071eedb022ed1d01a93bcaf
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.14.0"
+@c \version "2.19.22"
@node Concetti fondamentali
@chapter Concetti fondamentali
@translationof Fundamental concepts
-Nel Tutorial abbiamo visto come produrre della bella musica a stampa
-da un semplice file di testo. Questa sezione presenta i concetti e le
+Nel Tutorial abbiamo visto come produrre dei belli spartiti da un
+semplice file di testo. Questa sezione presenta i concetti e le
tecniche richiesti per produrre partiture ugualmente belle, ma
più complesse.
preferiscono. Ma questa flessibilità può creare confusione nei nuovi
utenti. Questa sezione spiegherà in parte questa struttura, ma
sorvolerà su alcuni dettagli in favore della semplicità. Per una
-descrizione completa del formato di input, si veda @ruser{File structure}.
+descrizione completa del formato di input, si veda @ruser{Struttura del file}.
@menu
* Introduzione alla struttura di un file di LilyPond::
\header @{ @}
\score @{
- @var{...compound music expression...} % all the music goes here!
+ @var{ @dots{} espressione musicale composta @dots{} } % tutta la musica va qui!
\layout @{ @}
\midi @{ @}
@}
serve da utile punto di partenza.
@funindex \book
-@funindex book
@funindex \score
-@funindex score
@cindex book (libro)
@cindex score (partitura)
@cindex libro
necessari. LilyPond tratta un input come questo:
@example
-\relative c'' @{
- c4 a d c
+\relative @{
+ c''4 a d c
@}
@end example
\score @{
\new Staff @{
\new Voice @{
- \relative c'' @{
- c4 a b c
+ \relative @{
+ c''4 a b c
@}
@}
@}
quando vengono usati ulteriori comandi, la creazione implicita dei contesti
può dare risultati inattesi, ad esempio creando dei righi non voluti.
Il modo per creare i contesti esplicitamente è spiegato in
-@ref{Contexts and engravers}.
+@ref{Contesti e incisori}.
@warning{Quando si inseriscono più di poche linee di musica, si consiglia
di creare sempre esplicitamente i righi e le voci.}
Ora però torniamo al primo esempio ed esaminiamo il comando
@code{\score}, lasciando gli altri comandi secondo l'impostazione predefinita.
-Un blocco @code{\score} deve sempre contenere una sola espressione musicale,
-e questa deve trovarsi subito dopo il comando @code{\score}.
+Un blocco @code{\score} deve sempre contenere una sola espressione musicale.
Ricorda che un'espressione musicale può essere qualsiasi cosa, da una
singola nota a una grande espressione composta come
@example
@{
\new StaffGroup <<
- @var{...insert the whole score of a Wagner opera in here...}
+ @var{ @dots{} inserisci qui l'intera opera di Wagner @dots{} }
>>
@}
@end example
@noindent
-Tutto quanto è compreso in @code{@{ ... @}} costituisce un'unica
+Tutto quanto è compreso in @code{@{ @dots{} @}} costituisce un'unica
espressione musicale.
Come abbiamo detto prima, il blocco @code{\score} può contenere altri
@end example
@funindex \header
-@funindex header
@funindex \layout
-@funindex layout
@funindex \midi
-@funindex midi
@cindex header
@cindex layout
@cindex midi
@code{\layout @{ @}} e @code{\midi @{@}}. Se questi appaiono come
in figura, LilyPond creerà rispettivamente un output per la stampa
e uno per il MIDI. Sono descritti dettagliatamente nella
-Guida alla notazione, in @ruser{Score layout}, e
-@ruser{Creating MIDI files}.
+Guida alla notazione, in @ruser{Formattazione della partitura}, e
+@ruser{Creazione dell'output MIDI}.
@cindex partiture, multiple
@cindex libro, blocco implicito
@cindex implicito, blocco del libro
@funindex \book
-@funindex book
Puoi scrivere molteplici blocchi @code{\score}. Ciascuno verrà
trattato come una partitura separata, ma saranno tutti combinati in
che si trova dentro un blocco @code{\score} riguarda solo quel blocco
@code{\score}, mentre un blocco @code{\layout} che si trova fuori da un
blocco @code{\score} (e quindi in un blocco @code{\book}, esplicitamente
-o implicitamente) riguraderà ogni @code{\score} in quel @code{\book}.
+o implicitamente) riguarderà ogni @code{\score} in quel @code{\book}.
-Per maggiori dettagli si veda @ruser{Multiple scores in a book}.
+Per maggiori dettagli si veda @ruser{Molteplici partiture in un libro}.
@cindex variabili
i modelli usano questa forma
@example
-melodia = \relative c' @{
- c4 a b c
+melodia = \relative @{
+ c'4 a b c
@}
\score @{
altro nome. Ricordati che puoi usare quasi ogni nome che vuoi, purché esso
contenga solo caratteri alfabetici e sia diverso dai nomi dei comandi di
LilyPond. Le esatte limitazioni relative ai nomi delle variabili sono spiegate
-dettagliatamente in @ruser{File structure}.
+dettagliatamente in @ruser{Struttura del file}.
@seealso
Per una definizione completa del formato di input, si veda
-@ruser{File structure}.
+@ruser{Struttura del file}.
@node La partitura è una (singola) espressione musicale composta
@translationof Score is a (single) compound musical expression
@funindex \score
-@funindex score
@cindex partitura
@cindex score
@cindex contenuto di un blocco score
semplicemente, che @emph{non c'è} alcun mistero. La seguente frase spiega tutto:
@quotation
-@emph{Un blocco @code{\score} deve iniziare con un'espressione musicale composta.}
+@emph{Un blocco @code{\score} deve contenere una sola espressione musicale.}
@end quotation
@noindent
-Per capire cosa si intende per espressione musicale e per espressione
-musicale composta, potrebbe esserti utile ripassare il tutorial,
-@ref{Espressioni musicali}. In quella sezione, abbiamo visto
-come costruire grandi espressioni musicali a partire da piccoli brani -- abbiamo
-iniziato con le note, poi gli accordi, etc. Adesso inzieremo da una grande
-espressione musicale e proseguiremo poi a spiegarne i dettagli. Per semplicità,
-nel nostro esempio useremo soltanto un canto e un pianoforte. Per questa formazione
-non abbiamo bisogno di @code{StaffGroup}, che non fa altro che raggruppare un insieme
-di righi con una parentesi graffa a sinistra, ma abbiamo comunque bisogno dei
-righi per il canto e per il pianoforte.
-
-@example
-\score @{
- @{ % questa parentesi inizia la principale espressione musicale composta
- \new StaffGroup <<
- @var{...inserisci qui la partitura completa di un'opera di Wagner...}
- >>
- @} % questa parentesi chiude la principale espressione musicale composta
- \layout @{ @}
-@}
-@end example
-
-Un'intera opera di Wagner sarebbe probabilmente il doppio di questo
-manuale, quindi aggiungeremo solo un pianoforte e un cantante. Per questo
-ensemble non abbiamo bisongo di @code{StaffGroup}, che non fa altro che
-raggruppare un certo numero di righi con una parentesi a sinistra, dunque lo
-toglieremo. Tuttavia @emph{abbiamo} bisogno di un pianoforte e di una voce.
+Per capire cosa si intende per espressione musicale, potrebbe esserti utile
+ripassare il tutorial, @ref{Espressioni musicali}. In quella sezione, abbiamo
+visto come costruire grandi espressioni musicali a partire da piccoli brani --
+abbiamo iniziato con le note, poi gli accordi, etc. Adesso inizieremo da una
+grande espressione musicale e proseguiremo poi a spiegarne i dettagli. Per
+semplicità, nel nostro esempio useremo soltanto un canto e un pianoforte. Per
+questa formazione non abbiamo bisogno di @code{StaffGroup}, che non fa altro che
+raggruppare un insieme di righi con una parentesi graffa a sinistra, ma abbiamo
+comunque bisogno dei righi per il canto e per il pianoforte.
@example
\score @{
da coltivare, perché ti permette di vedere a colpo d'occhio a cosa serve
ciascun rigo.
-Ricorda che si usano @code{<< ... >>} invece di @code{@{ ... @}} per indicare
+Ricorda che si usa @code{<< @dots{} >>} invece di @code{@{ @dots{} @}} per indicare
la musica simultanea. In questo modo la parte vocale e quella di pianoforte
-appaiono una sopra l'altra nello spartito. Il costrutto @code{<< ... >>} non
+appaiono una sopra l'altra nello spartito. Il costrutto @code{<< @dots{} >>} non
sarebbe necessario per il rigo del cantante nell'esempio precedente se contenesse
-soltanto un'espressione musicale sequenziale, ma @code{<< ... >>} al posto delle
+soltanto un'espressione musicale sequenziale, ma @code{<< @dots{} >>} al posto delle
parentesi è necessario se la musica sul rigo deve contenere due o più espressioni
simultanee, ad esempio due voci simultanee, o una voce con del testo. Vogliamo
avere una voce con del testo, dunque ci servono le parentesi ad angolo. Aggiungeremo
graffe vicine a @code{\new Voice = "vocal"}, possiamo iniziare a scrivere
@example
-\relative c'' @{
- r4 d8\noBeam g, c4 r
+\relative @{
+ r4 d''8\noBeam g, c4 r
@}
@end example
@code{\addlyrics}, questo comando trasforma la modalità di input in modalità
testo. Senza di esso, LilyPond cercherebbe di interpretare i contenuti come
se fossero note, e questo produrrebbe degli errori. (Sono disponibili molte
-altre modalità di input, si veda @ruser{Input modes}.)
+altre modalità di input, si veda @ruser{Modalità di inserimento}.)
Dunque se aggiungiamo un po' di note e una chiave di basso per la mano
sinistra, otteniamo un brano musicale vero e proprio:
@lilypond[verbatim,quote,ragged-right]
-melody = \relative c'' { r4 d8\noBeam g, c4 r }
+melody = \relative { r4 d''8\noBeam g, c4 r }
text = \lyricmode { And God said, }
-upper = \relative c'' { <g d g,>2~ <g d g,> }
-lower = \relative c { b2 e }
+upper = \relative { <g' d g,>2~ <g d g,> }
+lower = \relative { b,2 e }
\score {
<<
@seealso
-Guida alla notazione: @ruser{Structure of a score}.
+Guida alla notazione: @ruser{Struttura di una partitura}.
@node Annidare le espressioni musicali
@lilypond[verbatim,quote,ragged-right]
\new Staff {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
@lilypond[verbatim,quote,ragged-right]
\new Staff = "main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
@seealso
Gli ossia vengono spesso scritti senza armatura di chiave e senza
tempo, e solitamente hanno un font più piccolo. Richiedono ulteriori
-comandi che non sono stati ancora presentati. Si veda @ref{Size of objects},
-e @ruser{Ossia staves}.
+comandi che non sono stati ancora presentati. Si veda @ref{Dimensione degli oggetti},
+e @ruser{Righi ossia}.
@node Sul non annidamento di parentesi e legature di valore
@multitable @columnfractions .3 .7
@headitem Tipo di parentesi
@tab Funzione
-@item @code{@{ .. @}}
+@item @code{@{ @dots{} @}}
@tab Racchiude un frammento di musica sequenziale
-@item @code{< .. >}
+@item @code{< @dots{} >}
@tab Racchiude le note di un accordo
-@item @code{<< .. >>}
+@item @code{<< @dots{} >>}
@tab Racchiude le espressioni musicali simultanee
-@item @code{( .. )}
+@item @code{( @dots{} )}
@tab Contrassegna l'inizio e la fine di una legatura di portamento
-@item @code{\( .. \)}
+@item @code{\( @dots{} \)}
@tab Contrassegna l'inizio e la fine di una legatura di frase
-@item @code{[ .. ]}
- @tab Contrassegna l'inizio e la fine di una cediglia impostata manualmente
+@item @code{[ @dots{} ]}
+ @tab Contrassegna l'inizio e la fine di una travatura impostata manualmente
@end multitable
A questi dovremmo aggiungere altri costrutti che generano linee tra
e lungo le note: legature di valore (contrassegnate dal tilde, @code{~}),
-i gruppi irregolari scritti in questa forma @code{\times x/y @{..@}}, e
-gli abbellimenti, indicati con @code{\grace@{..@}}.
+i gruppi irregolari scritti in questa forma @code{\tuplet x/y @{ @dots{} @}}, e
+gli abbellimenti, indicati con @code{\grace@{ @dots{} @}}.
Fuori da LilyPond, l'uso convenzionale delle parentesi esige che i diversi
-tipi siano annidati adeguatamente, in questo modo, @code{<< [ @{ ( .. )
+tipi siano annidati adeguatamente, in questo modo, @code{<< [ @{ ( @dots{} )
@} ] >>}, dove le parentesi che chiudono si trovano esattamente
nell'ordine opposto alle parentesi che aprono. Questo @strong{è} un
requisito per i tre tipi di parentesi descritti dal termine @q{Racchiude}
queste non sono parentesi nel senso che racchiudono qualcosa -- sono semplicemente
dei contrassegni che indicano dove qualcosa inizia e finisce.
-Quindi, ad esempio, una legatura di frase può iniziare prima di una cediglia
-inserita manualmente e finire prima della fine della cediglia -- non
+Quindi, ad esempio, una legatura di frase può iniziare prima di una travatura
+inserita manualmente e finire prima della fine della travatura -- non
molto musicale, forse, ma possibile:
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
- { g8\( a b[ c b\) a] g4 }
+@lilypond[quote,verbatim,ragged-right]
+\relative { g'8\( a b[ c b\) a] g4 }
@end lilypond
In generale, tipi diversi di parentesi, costrutti in parentesi e segni che
riguardano gruppi irregolari, legature e abbellimenti possono essere combinati
-liberamente. L'esempio seguente mostra una cediglia che si estende su un
+liberamente. L'esempio seguente mostra una travatura che si estende su un
gruppo irregolare (linea 1), una legatura di portamento che si estende su
-una terzina (linea 2), una cediglia e una legatura di portamento che si
+una terzina (linea 2), una travatura e una legatura di portamento che si
estendono su una terzina, una legatura di valore che attraversa due gruppi
irregolari, e una legatura di frase che si estende fuori da un gruppo
irregolare (linee 3 e 4).
-@lilypond[quote,verbatim,fragment,ragged-right]
-{
- r16[ g \times 2/3 { r16 e'8] }
- g16( a \times 2/3 { b16 d) e' }
- g8[( a \times 2/3 { b8 d') e'~] } |
- \times 4/5 { e'32\( a b d' e' } a'4.\)
+@lilypond[quote,verbatim,ragged-right]
+\relative {
+ r16[ g' \tuplet 3/2 { r16 e'8] }
+ g,16( a \tuplet 3/2 { b16 d) e }
+ g,8[( a \tuplet 3/2 { b8 d) e~] } |
+ \tuplet 5/4 { e32\( a, b d e } a4.\)
}
@end lilypond
musica. Se un contesto della voce non è dichiarato esplicitamente, ne
viene creato uno automaticamente, come abbiamo visto all'inizio di questo
capitolo. Alcuni strumenti, come ad esempio un oboe, possono produrre una
-sola nota per volta. La musica scritta per tali strumenti è monofonica e
-necessita di una sola voce. Invece gli strumenti che possono produrre più
-di una nota contemporaneamente, come ad esempio il pianoforte, richiederanno
-spesso voci multiple per codificare le diverse note e ritmi simultanei che
+sola nota per volta. La musica scritta per tali strumenti necessita di
+una sola voce. Invece gli strumenti che possono produrre più di una nota
+contemporaneamente, come ad esempio il pianoforte, richiederanno spesso
+voci multiple per codificare le diverse note e ritmi simultanei che
sono capaci di riprodurre.
Ovviamente, una singola voce può contenere molte note in un accordo,
dunque quando l'uso delle voci multiple è davvero necessario? Si osservi
questo esempio di quattro accordi:
-@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
-\key g \major
-<d g>4 <d fis> <d a'> <d g>
+@lilypond[quote,verbatim,fragment,ragged-right]
+\relative {
+ \key g \major
+ <d' g>4 <d fis> <d a'> <d g>
+}
@end lilypond
Questa musica può essere espressa usando soltanto i simboli dell'accordo,
-ovvero le parentesi angolari, @code{< ... >}, e una singola voce è
+ovvero le parentesi angolari, @code{< @dots{} >}, e una singola voce è
sufficiente. Ma cosa accadrebbe se il Fa# fosse in realtà una nota di un
ottavo seguita da un Sol di un ottavo, una nota di passaggio che porta al La?
In questo caso abbiamo due note che iniziano nello stesso momento ma hanno
@funindex \\
Il modo più semplice per inserire frammenti che utilizzino più di una voce
-su un rigo è scrivere ogni voce come una sequenza (con @code{@{...@}}),
-e poi combinarle in simultanea tramite le doppie parentesi angolari, @code{<<...>>}.
+su un rigo è scrivere ogni voce come una sequenza (con @code{@{ @dots{} @}}),
+e poi combinarle in simultanea tramite le doppie parentesi angolari, @code{<< @dots{} >>}.
Per collocarli in voci distinte, i frammenti devono essere separati da un doppio
backslash, @code{\\}. Senza di esso, le note sarebbero inserite in un'unica
voce, e questo normalmente causerebbe degli errori. Questa tecnica è
-particolarmente adatta ai brani che sono in gran parte monofonici ma
+particolarmente adatta ai brani che sono in gran parte omofonici ma
con brevi e occasionali sezioni polifoniche.
Ecco come suddividere gli accordi precedenti in due voci e aggiungere sia
la nota di passaggio che la legatura di portamento:
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
-\key g \major
-% Voice "1" Voice "2"
-<< { g4 fis8( g) a4 g } \\ { d4 d d d } >>
+@lilypond[quote,verbatim,ragged-right]
+\relative {
+ \key g \major
+ % Voice = "1" Voice = "2"
+ << { g'4 fis8( g) a4 g } \\ { d4 d d d } >>
+}
@end lilypond
Si noti come i gambi della seconda voce adesso siano rivolti in basso.
Ecco un altro semplice esempio:
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
-\key d \minor
-% Voice "1" Voice "2"
-<< { r4 g g4. a8 } \\ { d,2 d4 g } >> |
-<< { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
-<< { a2. r4 } \\ { fis2. s4 } >> |
+@lilypond[quote,verbatim,ragged-right]
+\relative {
+ \key d \minor
+ % Voice = "1" Voice = "2"
+ << { r4 g' g4. a8 } \\ { d,2 d4 g } >> |
+ << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
+ << { a2. r4 } \\ { fis2. s4 } >> |
+}
@end lilypond
Non è necessario usare un costrutto con @code{<< \\ >>} in ogni
può aiutare la leggibilità del codice, ma se ci sono molte note in
ogni battuta è preferibile dividere ogni voce, così:
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
-\key d \minor
-<< {
- % Voice "1"
- r4 g g4. a8 |
- bes4 bes c bes |
- a2. r4 |
-} \\ {
- % Voice "2"
- d,2 d4 g |
- g4 g g8( a) g4 |
- fis2. s4 |
-} >>
+@lilypond[quote,verbatim,ragged-right]
+<<
+ \key d \minor
+ \relative { % Voice = "1"
+ r4 g' g4. a8 |
+ bes4 bes c bes |
+ a2. r4 |
+ } \\
+ \relative { % Voice = "2"
+ d'2 d4 g |
+ g4 g g8( a) g4 |
+ fis2. s4 |
+ }
+>>
@end lilypond
costrutto per scrivere tre o più voci aggiungendo più backslash.
I contesti della voce hanno i nomi @code{"1"}, @code{"2"}, etc.
-In ogni contesto, la direzione verticale di legature di portamento,
-gambi, legature di valore, dinamica, etc., è impostata correttamente.
+I primi contesti impostano le voci @emph{più esterne}, la voce
+più alta nel contesto @code{"1"} e la più bassa nel @code{"2"}. Le voci
+più interne vanno nei contesti @code{"3"} e @code{"4"}. In ogni
+contesto, la direzione verticale di legature di portamento, gambi,
+legature di valore, dinamica, etc., è impostata correttamente.
-@lilypond[quote,verbatim,fragment]
-\new Staff \relative c' {
+@lilypond[quote,verbatim]
+\new Staff \relative {
% Main voice
- c16 d e f
- % Voice "1" Voice "2" Voice "3"
+ c'16 d e f
+ % Voice = "1" Voice = "2" Voice = "3"
<< { g4 f e } \\ { r8 e4 d c8~ } >> |
- << { d2 e } \\ { c8 b16 a b8 g~ g2 } \\ { s4 b c2 } >> |
+ << { d2 e } \\ { c8 b16 a b8 g~ 2 } \\ { s4 b c2 } >> |
}
@end lilypond
Tutte queste voci sono separate dalla voce principale che contiene le
-note e che si trova fuori dal costrutto @code{<< .. >>}, che chiameremo
+note e che si trova fuori dal costrutto @code{<< @dots{} >>}, che chiameremo
il @emph{costrutto simultaneo}. Legature di portamento e di valore
possono connettere solo note che fanno parte della stessa voce, quindi
le legature non possono entrare in un costrutto simultaneo o uscirne. Viceversa,
voce con i triangoli blu.
@lilypond[quote,verbatim]
-\new Staff \relative c' {
+\new Staff \relative {
% Main voice
- c16 d e f
+ c'16 d e f
<< % Bar 1
{
\voiceOneStyle
{ d2 e }
\\
% Voice 2 continues
- { c8 b16 a b8 g~ g2 }
+ { c8 b16 a b8 g~ 2 }
\\
{
\voiceThreeStyle
I comandi @code{\voiceXXXStyle} sono pensati soprattutto
per documenti didattici come questo. Modificano il colore
-della testa, del gambo e delle cediglie, e lo stile della
+della testa, del gambo e delle travature, e lo stile della
testa, così da rendere le voci facilmente distinguibili.
La voce uno è impostata su rombi rossi, la voce due su triangoli blu,
la voce tre su cerchi barrati verdi, e la voce quattro (non impiegata
nell'esempio) su croci magenta; @code{\voiceNeutralStyle} (anch'esso
non usato qui) riporta lo stile all'impostazione predefinita.
Vedremo in seguito come l'utente possa creare comandi simili.
-Si veda @ref{Visibility and color of objects} e
-@ref{Using variables for tweaks}.
+Si veda @ref{Visibilità e colore degli oggetti} e
+@ref{Uso delle variabili per modificare la formattazione}.
@cindex polifonia e modo relativo
@cindex modo relativo e polifonia
all'inizio di ogni voce:
@example
-\relative c' @{ noteA ... @}
+\relative c' @{ noteA @dots{} @}
<<
- \relative c'' @{ < noteB noteC > ... @}
+ \relative c'' @{ < noteB noteC > @dots{} @}
\\
- \relative g' @{ noteD ... @}
+ \relative g' @{ noteD @dots{} @}
>>
-\relative c' @{ noteE ... @}
+\relative c' @{ noteE @dots{} @}
@end example
Analizziamo infine le voci in un brano più complesso. Queste note sono
@c The following should appear as music without code
@lilypond[quote,ragged-right]
-\new Staff \relative c'' {
+\new Staff \relative {
\key aes \major
- << % Voice one
- { c2 aes4. bes8 }
- \\ % Voice two
- { aes2 f4 fes }
- \\ % No voice three
- \\ % Voice four
+ << % Prima voce
+ { c''2 aes4. bes8 }
+ \\ % Voce due
{
- % Ignore these for now - they are explained in Ch 4
- \once \override NoteColumn #'force-hshift = #0
- <ees c>2
- \once \override NoteColumn #'force-hshift = #0.5
+ % Puoi ignorare questi per ora, saranno spiegati nel capitolo 4
+ \once \override NoteColumn.force-hshift = #0
+ <ees, c>2
+ \once \override NoteColumn.force-hshift = #0.5
des2
}
+ \\ % Nessuna terza voce
+ \\ % Quarta voce
+ {
+ \override NoteColumn.force-hshift = #0
+ aes'2 f4 fes
+ }
>> |
<c ees aes c>1 |
}
@c The following should appear as music without code
@c The three voice styles should be defined in -init
@lilypond[quote,ragged-right]
-\new Staff \relative c'' {
+\new Staff \relative {
\key aes \major
<<
- { % Voice one
+ { % Prima voce
\voiceOneStyle
- c2 aes4. bes8
+ c''2 aes4. bes8
}
- \\ % Voice two
+ \\ % Seconda voce
{ \voiceTwoStyle
- aes2 f4 fes
+ % Puoi ignorare questi per ora, saranno spiegati nel capitolo 4
+ \once \override NoteColumn.force-hshift = #0
+ <ees, c>2
+ \once \override NoteColumn.force-hshift = #0.5
+ des2
}
- \\ % No Voice three (we want stems down)
- \\ % Voice four
+ \\ % Nessuna terza voce (vogliamo i gambi in giù)
+ \\ % Quarta voce
{ \voiceThreeStyle
- % Ignore these for now - they are explained in Ch 4
- \once \override NoteColumn #'force-hshift = #0
- <ees c>2
- \once \override NoteColumn #'force-hshift = #0.5
- des2
+ \override NoteColumn.force-hshift = #0
+ aes'2 f4 fes
}
>> |
<c ees aes c>1 |
}
@end lilypond
-
Proviamo a scrivere il codice di questa musica da zero. Come
vedremo, questo pone alcune difficoltà. Come abbiamo imparato,
-iniziamo usando il costrutto @code{<< \\ >>} per inserire la musica
+iniziamo usando il costrutto @code{<< \\ >>} per inserire la musica
della prima battuta in tre voci:
-@lilypond[quote,verbatim,fragment,ragged-right]
-\new Staff \relative c'' {
+@lilypond[quote,verbatim,ragged-right]
+\new Staff \relative {
\key aes \major
<<
- { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { <ees c>2 des2 }
- >>
- <c ees aes c>1
+ { c''2 aes4. bes8 } \\ { <ees, c>2 des } \\ { aes'2 f4 fes }
+ >> |
+ <c ees aes c>1 |
}
@end lilypond
giusti, ma in questo brano i gambi della voce 3 dovrebbero essere in
giù. Possiamo correggere semplicemente omettendo la voce tre e ponendo la
musica nella voce quattro. Si può fare aggiungendo semplicemente un altro
-paio di @code {\\}:
+paio di @code{\\}:
-@lilypond[quote,verbatim,fragment,ragged-right]
-\new Staff \relative c'' {
+@lilypond[quote,verbatim,ragged-right]
+\new Staff \relative {
\key aes \major
- << % Voice one
- { c2 aes4. bes8 }
- \\ % Voice two
- { aes2 f4 fes }
- \\ % Omit Voice three
- \\ % Voice four
- { <ees c>2 des2 }
+ << % Voice one
+ { c''2 aes4. bes8 }
+ \\ % Voice two
+ { <ees, c>2 des }
+ \\ % Omit Voice three
+ \\ % Voice four
+ { aes'2 f4 fes }
>> |
<c ees aes c>1 |
}
@end lilypond
@noindent
-Possiamo vedere che questo corregge la direzione del gambo, ma espone
-a un problema talvolta presente con le voci multiple: i gambi delle note
-in una voce possono collidere con le teste delle note di un'altra voce. Nel
-disporre le note, LilyPond permette alle note o agli accordi di due diverse
-voci di occupare la stessa colonna verticale della nota purché i gambi siano
-in direzioni opposte, ma le note della terza e quarta voce vengono
-spostate, se necessario, per evitare la collisione tra le teste. Questo
-di solito funziona bene, ma in questo esempio le note della voce più bassa,
-con le impostazioni predefinite, appaiono chiaramente disposte in una posizione
-non ottimale. LilyPond fornisce molti modi per aggiustare la collocazione
+Possiamo vedere che questo corregge la direzione del gambo, ma il posizionamento
+orizzontale delle note non è quello che desideriamo. LilyPond sposta le note
+più interne quando queste o i loro gambi collidono con le voci più
+esterne, ma questo non è appropriato nella musica per pianoforte. In altre
+situazioni, gli spostamenti applicati da LilyPond potrebbero non riuscire
+a evitare le collisioni. LilyPond fornisce molti modi per aggiustare la collocazione
orizzontale delle note. Per ora, non siamo ancora pronti a cercare di
correggere questo problema, dunque dovremo aspettare fino a una
-prossima sezione -- si veda la proprietà @code{force-hshift} in @ref{Fixing
-overlapping notation}.
+prossima sezione -- si veda la proprietà @code{force-hshift} in
+@ref{Correggere la sovrapposizione di elementi della notazione}.
+@warning{Il testo e gli @emph{spanner} (come le legature di portamento e di valore, le
+forcelle, etc.) non possono essere create @q{attraverso} le voci.}
@seealso
-Guida alla notazione: @ruser{Multiple voices}.
+Guida alla notazione: @ruser{Più voci}.
@node Definire esplicitamente le voci
@translationof Explicitly instantiating voices
@funindex \voiceOne
-@funindex voiceOne
@funindex \voiceTwo
-@funindex voiceTwo
@funindex \voiceThree
-@funindex voiceThree
@funindex \voiceFour
-@funindex voiceFour
@funindex \oneVoice
-@funindex oneVoice
@funindex \new Voice
@cindex contesti della voce, creazione dei
I contesti della voce possono anche essere creati manualmente,
all'interno di un blocco @code{<< >>} che crea musica polifonica, usando
-@code{\voiceOne} ... @code{\voiceFour} per indicare le direzioni desiderate
+@code{\voiceOne} @dots{} @code{\voiceFour} per indicare le direzioni desiderate
per gambi, legature, etc. Nelle partiture più grandi questo metodo
è più chiaro, perché fa sì che le voci possano essere separate e nominate
in modo più descrittivo.
@example
\new Staff @{
- \relative c' @{
- << @{ e4 f g a @} \\ @{ c,4 d e f @} >>
+ \relative @{
+ << @{ e'4 f g a @} \\ @{ c,4 d e f @} >>
@}
@}
@end example
@example
\new Staff <<
- \new Voice = "1" @{ \voiceOne \relative c' @{ e4 f g a @} @}
- \new Voice = "2" @{ \voiceTwo \relative c' @{ c4 d e f @} @}
+ \new Voice = "1" @{ \voiceOne \relative @{ e'4 f g a @} @}
+ \new Voice = "2" @{ \voiceTwo \relative @{ c'4 d e f @} @}
>>
@end example
@c The following example should not display the code
@lilypond[ragged-right,quote]
\new Staff <<
- \new Voice = "1" { \voiceOne \relative c' { e4 f g a } }
- \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } }
+ \new Voice = "1" { \voiceOne \relative { e'4 f g a } }
+ \new Voice = "2" { \voiceTwo \relative { c'4 d e f } }
>>
@end lilypond
riporta i valori alle normali impostazioni di una singola voce.
Vediamo tramite alcuni semplici esempi quali effetti esattamente
-@code{\oneVoice}, @code{\voiceOne} e @code{voiceTwo} hanno su
+@code{\oneVoice}, @code{\voiceOne} e @code{\voiceTwo} hanno su
markup, legature di valore, legature di portamento, e dinamica:
@lilypond[quote,ragged-right,verbatim]
\relative c'{
% Default behavior or behavior after \oneVoice
- c4 d8~ d e4( f | g4 a) b-> c |
+ c4 d8~ 8 e4( f | g4 a) b-> c |
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
-\relative c' {
+\relative {
\voiceOne
- c4 d8~ d e4( f | g4 a) b-> c |
+ c'4 d8~ 8 e4( f | g4 a) b-> c |
\oneVoice
- c,4 d8~ d e4( f | g4 a) b-> c |
+ c,4 d8~ 8 e4( f | g4 a) b-> c |
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
-\relative c' {
+\relative {
\voiceTwo
- c4 d8~ d e4( f | g4 a) b-> c |
+ c'4 d8~ 8 e4( f | g4 a) b-> c |
\oneVoice
- c,4 d8~ d e4( f | g4 a) b-> c |
+ c,4 d8~ 8 e4( f | g4 a) b-> c |
}
@end lilypond
sì che sia possibile disegnare una legatura di frase sopra di esse.
@lilypond[quote,ragged-right,verbatim]
-\new Staff \relative c' {
+\new Staff \relative {
\voiceOneStyle
- % The following notes are monophonic
- c16^( d e f
+ % This section is homophonic
+ c'16^( d e f
% Start simultaneous section of three voices
<<
% Continue the main voice in parallel
\new Voice {
% Set stems, etc., down
\voiceTwo
- r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
+ r8 e4 d c8~ | 8 b16 a b8 g~ 2 |
}
% Initiate third voice
\new Voice {
di scrivere lo spartito:
@lilypond[quote,ragged-right,verbatim]
-\new Staff \relative c' {
- c16^( d e f
+\new Staff \relative {
+ c'16^( d e f
<<
{ g4 f e | d2 e) | }
\new Voice {
\voiceTwo
r8 e4 d c8~ |
<<
- { c8 b16 a b8 g~ g2 | }
+ { c8 b16 a b8 g~ 2 | }
\new Voice {
\voiceThree
s4 b c2 |
come nel seguente esempio:
@lilypond[quote,ragged-right,verbatim]
-\new Staff \relative c' <<
+\new Staff \relative <<
% Initiate first voice
\new Voice {
\voiceOne
- c16^( d e f g4 f e | d2 e) |
+ c'16^( d e f g4 f e | d2 e) |
}
% Initiate second voice
\new Voice {
% Set stems, etc, down
\voiceTwo
- s4 r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
+ s4 r8 e4 d c8~ | 8 b16 a b8 g~ 2 |
}
% Initiate third voice
\new Voice {
>>
@end lilypond
-@subsubheading Note columns
+@subsubheading Colonne di note
@cindex colonna delle note
@cindex collisioni di note
@cindex note, collisioni di
@cindex comandi di spostamento
@funindex \shiftOff
-@funindex shiftOff
@funindex \shiftOn
-@funindex shiftOn
@funindex \shiftOnn
-@funindex shiftOnn
@funindex \shiftOnnn
-@funindex shiftOnnn
Le note maggiormente ravvicinate all'interno di un accordo o quelle che
compaiono nello stesso momento in voci diverse sono disposte in due, e
@code{\shiftOnn} e @code{\shiftOnnn} definiscono ulteriori livelli di
scarto che possono essere temporaneamente specificati per risolvere
-le collisioni in situazioni complesse -- si veda @ref{Real music example}.
+le collisioni in situazioni complesse -- si veda @ref{Esempio musicale}.
Una colonna di note può contenere soltanto una nota (o accordo) di una
voce con gambi in su e una nota (o accordo) di una voce con gambi in
giù. Se note di due voci che hanno i gambi nella stessa direzione
sono poste nella stessa posizione ed entrambe le voci non hanno uno
spostamento specificato oppure ne hanno uno dello stesso tipo, si
-produrrà il messaggio di errore @qq{Too many clashing note columns}.
+produrrà il messaggio di errore
+@qq{questa voce ha bisogno di un'impostazione @code{@bs{}\voiceXx} o @code{@bs{}\shiftXx}}.
@seealso
-Guida alla notazione: @ruser{Multiple voices}.
+Manuale di apprendimento:
+@ref{Spostare gli oggetti}.
+
+Guida alla notazione: @ruser{Più voci}.
@node Voci e musica vocale
@funindex \new Lyrics
@funindex \lyricsto
-@funindex lyricsto
@funindex Lyrics
@cindex Lyrics, creazione di un contesto
@cindex testo, creazione di un contesto
esplicitamente il testo alle note con @code{\lyricsto@{@}}, tramite
il nome assegnato alla voce.
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,verbatim]
<<
\new Voice = "one" {
- \relative c'' {
+ \relative {
\autoBeamOff
\time 2/4
- c4 b8. a16 | g4. f8 | e4 d | c2 |
+ c''4 b8. a16 | g4. f8 | e4 d | c2 |
}
}
\new Lyrics \lyricsto "one" {
@cindex testo e travatura
@cindex travatura e testo
@funindex \autoBeamOff
-@funindex autoBeamOff
La disposizione automatica delle travature predefinita di LilyPond funziona
bene per la musica strumentale, ma non altrettanto per la musica con testi,
@funindex \new ChoirStaff
@funindex ChoirStaff
@funindex \lyricmode
-@funindex lyricmode
@cindex struttura di una partitura vocale
@cindex rigo per un coro
@lilypond[quote,verbatim]
global = { \key f \major \time 6/8 \partial 8 }
-SopOneMusic = \relative c'' {
- c8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ c4
+SopOneMusic = \relative {
+ c''8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ 4
}
SopOneLyrics = \lyricmode {
Let | flee -- cy flocks the | hills a -- dorn, __
}
-SopTwoMusic = \relative c' {
- r8 | r4. r4 c8 | a'8([ g)] f f([ e)] d | e8([ d)] c bes'
+SopTwoMusic = \relative {
+ r8 | r4. r4 c'8 | a'8([ g)] f f([ e)] d | e8([ d)] c bes'
}
SopTwoLyrics = \lyricmode {
Let | flee -- cy flocks the | hills a -- dorn,
@lilypond[quote,verbatim]
keyTime = { \key c \major \time 4/4 \partial 4 }
-SopMusic = \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 }
+SopMusic = \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 =
\lyricmode { E -- | ter -- nal fa -- ther, | strong to save, }
@end lilypond
@seealso
-Guida alla notazione: @ruser{Vocal music}.
+Guida alla notazione: @ruser{Musica vocale}.
@node Contesti e incisori
nell'output. Ad esempio, si confrontino l'input e l'output del
seguente esempio:
-@lilypond[quote,verbatim,relative=2,fragment]
-cis4 cis2. | a4 a2. |
+@lilypond[quote,verbatim]
+\relative { cis''4 cis2. | a4 a2. | }
@end lilypond
L'input è alquanto essenziale, ma nell'output sono stati aggiunti stanghette,
All'interno di LilyPond, queste regole e pezzi di informazione sono raggruppati
nei @emph{Contesti}. Abbiamo già presentato il contesto @code{Voice}.
Altri contesti sono @code{Staff} e @code{Score}. I contesti sono strutturati
-gerarchicicamente per riflettere la natura gerarchica di una partitura musicale.
+gerarchicamente per riflettere la natura gerarchica di una partitura musicale.
Ad esempio: un contesto @code{Staff} può contenere molti contesti @code{Voice},
e un contesto @code{Score} può contenere molti contesti @code{Staff}.
@seealso
-Guida alla notazione: @ruser{Contexts explained}.
+Guida alla notazione: @ruser{Tutto sui contesti}.
@node Creare i contesti
@translationof Creating contexts
@funindex \new
-@funindex new
@cindex nuovi contesti
@cindex creazione di contesti
@cindex contesti, creazione di
di contesto, predefiniti per tutto lo spartito.. Le informazioni su come
usare i blocchi @code{\with} si trovano sotto il titolo
@qq{Setting context properties with @code{\\with} } in
-@ref{Modifying context properties}.)
+@ref{Modificare le proprietà di contesto}.)
@warning{@bs{}@code{new Score} non dovrebbe essere usato perché il fondamentale
contesto di livello superiore @code{Score} viene creato automaticamente quando
l'espressione musicale all'interno del blocco @bs{}@code{score} viene
interpretata. I valori predefiniti delle proprietà di contesto validi per tutta
la partitura possono essere modificati nel blocco @bs{}@code{layout}. Vedi
-@ref{Modifying context properties}}
+@ref{Modificare le proprietà di contesto}}
Nelle sezioni precedenti hai già visto molti esempi pratici della creazione
di nuovi contesti @code{Staff} e @code{Voice}, ma per ricordarti
\clef "treble"
\key g \minor
\new Voice { % create voice for RH notes
- \relative c'' { % start of RH notes
- d4 ees16 c8. |
+ \relative { % start of RH notes
+ d''4 ees16 c8. |
d4 ees16 c8. |
} % end of RH notes
} % end of RH voice
\key g \minor
\new Voice { % create LH voice one
\voiceOne
- \relative g { % start of LH voice one notes
+ \relative { % start of LH voice one notes
g8 <bes d> ees, <g c> |
g8 <bes d> ees, <g c> |
} % end of LH voice one notes
} % end of LH voice one
\new Voice { % create LH voice two
\voiceTwo
- \relative g { % start of LH voice two notes
+ \relative { % start of LH voice two notes
g4 ees |
g4 ees |
} % end of LH voice two notes
@seealso
-Guida alla notazione: @ruser{Creating contexts}.
+Guida alla notazione: @ruser{Creazione e citazione di un contesto}.
@node Gli incisori
Ogni segno presente nell'output di una partitura realizzata con LilyPond
è prodotto da un @code{Engraver} (incisore). Dunque c'è un incisore per
creare i righi, uno per le teste delle note, uno per i gambi, uno per le
-cediglie, etc, etc. In totale ci sono più di 120 incisori!
+travature, etc, etc. In totale ci sono più di 120 incisori!
Fortunatamente, per gran parte delle partiture è necessario conoscerne
pochi soltanto, e per partiture semplici non occorre conoscerne
alcuno.
@item Accidental_engraver
@tab Crea le alterazioni, le alterazioni di precauzione e di cortesia
@item Beam_engraver
- @tab Incide le cediglie
+ @tab Incide le travature
@item Clef_engraver
@tab Incide le chiavi
@item Completion_heads_engraver
@tab Separa le note che attraversano le stanghette
-@c The old Dynamic_engraver is deprecated. -jm
-@item New_dynamic_engraver
+@item Dynamic_engraver
@tab Crea le forcelle e i testi relativi alla dinamica
@item Forbid_line_break_engraver
@tab Impedisce l'a capo se un elemento musicale è ancora attivo
@smallspace
-Vedremo in seguito come cambiare l'output di Lilypond
+Vedremo in seguito come cambiare l'output di LilyPond
modificando il comportamento degli incisori.
@cindex contesto, proprietà del, modificare
@cindex modificare le proprietà del contesto
@funindex \set
-@funindex set
@funindex \unset
-@funindex unset
I contesti si occupano di tenere i valori di un certo numero di
@emph{proprietà} del contesto. Molte di queste possono essere cambiate
@code{\set}. Questo assume la seguente forma
@example
-\set @emph{NomeDelContesto}.@emph{nomeDellaProprietà} = #@emph{valore}
+\set @emph{NomeContesto}.@emph{nomeProprietà} = #@emph{valore}
@end example
-Dove il @emph{NomeDelContesto} è di solito @code{Score},
+Dove il @emph{NomeContesto} è di solito @code{Score},
@code{Staff} o @code{Voice}. Può essere omesso, e in questo
caso viene considerato il contesto attuale (solitamente @code{Voice}).
-I nomi delle proprietà del contesto consistono in parole unite
-insieme e senza lineette o trattini bassi, e solo la prima
-parola inizia con una lettera maiuscola. Ecco alcuni esempi
+I nomi delle proprietà di contesto consistono in parole unite
+insieme e senza lineette o trattini bassi, e tutte le parole tranne
+la prima iniziano con una lettera maiuscola. Ecco alcuni esempi
di quelle più usate comunemente. Ma ne esistono molte altre.
@c attempt to force this onto a new page
@need 50
@multitable @columnfractions .25 .15 .45 .15
-@headitem nomeDellaProprietà
+@headitem nomeProprietà
@tab Tipo
@tab Funzione
@tab Valore di esempio
@lilypond[quote,verbatim,ragged-right]
<<
- \new Staff \relative c'' {
+ \new Staff \relative {
\set Staff.instrumentName = #"Soprano"
- c2 c
+ c''2 c
}
- \new Staff \relative c' {
+ \new Staff \relative {
\set instrumentName = #"Alto" % Wrong!
- d2 d
+ d'2 d
}
>>
@end lilypond
@lilypond[quote,verbatim,ragged-right]
<<
- \new Staff \relative c'' {
- ais2 aes
+ \new Staff \relative {
+ aeses'2 aes
}
- \new Staff \relative c'' {
+ \new Staff \relative {
\set Staff.extraNatural = ##f
- ais2 aes
+ aeses'2 aes
}
>>
@end lilypond
@lilypond[quote,verbatim,ragged-right]
<<
- \new Staff \relative c'' {
- ais2 aes
+ \new Staff \relative {
+ aeses'2 aes
}
- \new Staff \relative c'' {
+ \new Staff \relative {
\set Score.extraNatural = ##f
- ais2 aes
+ aeses'2 aes
}
>>
@end lilypond
-Un altro esempio: se la proprietà @code{clefOctavation} viene posta
+Un altro esempio: se la proprietà @code{clefTransposition} viene posta
nel contesto @code{Score}, cambia immediatamente il valore
-dell'ottavazione in tutti i righi presenti e imposta un nuovo
+della trasposizione in tutti i righi presenti e imposta un nuovo
valore predefinito che sarà applicato a tutti i righi.
Il comando opposto, @code{\unset}, di fatto rimuove la proprietà
le altre cose) sulla dimensione delle teste delle note. La modifica è relativa
al valore predefinito, non all'ultimo valore impostato.
-@lilypond[quote,verbatim,ragged-right,relative=1,fragment]
-c4 d
-% make note heads smaller
-\set fontSize = #-4
-e4 f |
-% make note heads larger
-\set fontSize = #2.5
-g4 a
-% return to default size
-\unset fontSize
-b4 c |
+@lilypond[quote,verbatim,ragged-right]
+\relative {
+ c'4 d
+ % make note heads smaller
+ \set fontSize = #-4
+ e4 f |
+ % make note heads larger
+ \set fontSize = #2.5
+ g4 a
+ % return to default size
+ \unset fontSize
+ b4 c |
+}
@end lilypond
Abbiamo visto come impostare i valori di diversi tipi di
@subsubheading Impostare le proprietà di contesto con @code{\with}
@funindex \with
-@funindex with
@cindex contesto, proprietà del, impostare con \with
Il valore predefinito delle proprietà di contesto possono essere impostate
anche nel momento in cui il contesto viene creato. Talvolta questo è un
modo più chiaro per specificare il valore della proprietà se questa deve
rimanere fissa per la durata del contesto. Un contesto creato col comando @code{\new}
-può essere immediatamente seguito da un blocco @code{\with @{ .. @}} dove
+può essere immediatamente seguito da un blocco @code{\with @{ @dots{} @}} dove
vengono impostati i valori predefiniti della proprietà. Ad esempio, se vogliamo
eliminare la stampa del bequadro per l'estensione di un rigo possiamo scrivere:
@lilypond[quote,verbatim,ragged-right]
<<
\new Staff {
- \relative c'' {
- gis4 ges aes ais
+ \relative {
+ gisis'4 gis aeses aes
}
}
\new Staff \with { extraNatural = ##f } {
- \relative c'' {
- gis4 ges aes ais
+ \relative {
+ gisis'4 gis aeses aes
}
}
>>
@cindex contesto, proprietà del, impostare con \context
@funindex \context
-@funindex context
I valori delle proprietà di un contesto possono essere impostate in @emph{tutti}
i contesti di un particolare tipo, così come in tutti i contesti @code{Staff}, con un
@lilypond[verbatim,quote]
\score {
\new Staff {
- \relative c'' {
- cis4 e d ces
+ \relative {
+ cisis''4 e d cis
}
}
\layout {
}
@end lilypond
+Se si vuole che la modifica della proprietà venga applicata a tutti i righi
+della partitura:
+
+@lilypond[quote,verbatim]
+\score {
+ <<
+ \new Staff {
+ \relative {
+ gisis'4 gis aeses aes
+ }
+ }
+ \new Staff {
+ \relative {
+ gisis'4 gis aeses aes
+ }
+ }
+ >>
+ \layout {
+ \context {
+ \Score extraNatural = ##f
+ }
+ }
+}
+@end lilypond
+
@noindent
Le proprietà di contesto impostate in questo modo possono essere sovrascritte per
alcuni particolari contesti attraverso asserzioni in un blocco @code{\with}, e tramite
@seealso
Guida alla notazione:
-@ruser{Changing context default settings},
-@ruser{The set command}.
+@ruser{Modifica delle impostazioni predefinite di un contesto},
+@ruser{Il comando set}.
Guida al funzionamento interno:
@rinternals{Contexts},
@cindex rimuovere gli incisori
@funindex \consists
-@funindex consists
@funindex \remove
-@funindex remove
Abbiamo visto che ciascuno dei contesti contiene vari incisori, ognuno
dei quali ha il compito di produrre una parte specifica dell'output,
@lilypond[quote,verbatim,ragged-right]
\new Staff \with {
- \remove Staff_symbol_engraver
+ \remove "Staff_symbol_engraver"
}
-\relative c' {
- c4 d
+\relative {
+ c'4 d
\set fontSize = #-4 % make note heads smaller
e4 f |
\set fontSize = #2.5 % make note heads larger
@lilypond[quote,verbatim,ragged-right]
\new Staff <<
\new Voice \with {
- \consists Ambitus_engraver
+ \consists "Ambitus_engraver"
} {
- \relative c'' {
+ \relative {
\voiceOne
- c4 a b g
+ c''4 a b g
}
}
\new Voice {
- \relative c' {
+ \relative {
\voiceTwo
- c4 e d f
+ c'4 e d f
}
}
>>
@lilypond[quote,verbatim,ragged-right]
\new Staff \with {
- \consists Ambitus_engraver
+ \consists "Ambitus_engraver"
}
<<
\new Voice {
- \relative c'' {
+ \relative {
\voiceOne
- c4 a b g
+ c''4 a b g
}
}
\new Voice {
- \relative c' {
+ \relative {
\voiceTwo
- c4 e d f
+ c'4 e d f
}
}
>>
@subsubheading Modificare tutti i contesti dello stesso tipo
@funindex \layout
-@funindex layout
Gli esempi precedenti mostrano come rimuovere o aggiungere degli incisori
a contesti individuali. È anche possibile rimuovere o aggiungere gli
\score {
<<
\new Staff {
- \relative c'' {
- c4 a b g
+ \relative {
+ c''4 a b g
}
}
\new Staff {
- \relative c' {
- c4 a b g
+ \relative {
+ c'4 a b g
}
}
\new Staff {
\clef "G_8"
- \relative c' {
- c4 a b g
+ \relative {
+ c'4 a b g
}
}
\new Staff {
\clef "bass"
- \relative c {
+ \relative {
c4 a b g
}
}
\layout {
\context {
\Staff
- \consists Ambitus_engraver
+ \consists "Ambitus_engraver"
}
}
}
per tutti i contesti di un particolare tipo includendo il comando
@code{\set} in un blocco @code{\context} nello stesso modo.
-
@seealso
-Guida alla notazione: @ruser{Modifying context plug-ins},
-@ruser{Changing context default settings}.
+Guida alla notazione: @ruser{Modifica dei componenti aggiuntivi di un contesto},
+@ruser{Modifica delle impostazioni predefinite di un contesto}.
+
+@knownissues
+Gli incisori @code{Stem_engraver} e @code{Beam_engraver} fissano i propri
+oggetti alle teste delle note. Se si elimina @code{Note_heads_engraver}
+le teste delle note non vengono prodotte e di conseguenza non vengono creati
+nemmeno i gambi né le travature.
@node Estendere i modelli
Hai letto il tutorial, sai come scrivere la musica, comprendi
i concetti fondamentali. Ma come puoi ottenere i
pentagrammi che desideri? Puoi trovare molti
-modelli (vedi @ref{Templates}) da cui partire.
+modelli (vedi @ref{Modelli}) da cui partire.
Ma se ti serve qualcosa che non è presente lì? Continua a leggere.
@menu
* Soprano e violoncello::
* Partitura vocale a quattro parti SATB::
* Scrivere una partitura da zero::
-* Ridurre le dimensioni del file grazie a variabili e funzioni::
+* Ridurre l'input grazie a variabili e funzioni::
* Partiture e parti::
@end menu
@example
\version @w{"@version{}"}
-melodia = \relative c' @{
+melodia = \relative @{
\clef "treble"
\key c \major
\time 4/4
@example
\version @w{"@version{}"}
-melodia = \relative c' @{
+melodia = \relative @{
\clef "treble"
\key c \major
\time 4/4
@example
\version @w{"@version{}"}
-musicaSoprano = \relative c' @{
+musicaSoprano = \relative @{
\clef "treble"
\key c \major
\time 4/4
Aaa Bee Cee Dee
@}
-musicaVioloncello = \relative c @{
+musicaVioloncello = \relative @{
\clef "bass"
\key c \major
\time 4/4
@noindent
L'aspetto è un po' confuso; l'indentazione non è pulita. Ma si
-può correggere facilmente. Ecco il template completo per soprano
+può correggere facilmente. Ecco il modello completo per soprano
e violoncello.
@lilypond[quote,verbatim,ragged-right,addversion]
-musicaSoprano = \relative c' {
+musicaSoprano = \relative {
\clef "treble"
\key c \major
\time 4/4
Aaa Bee Cee Dee
}
-musicaVioloncello = \relative c {
+musicaVioloncello = \relative {
\clef "bass"
\key c \major
\time 4/4
@seealso
I modelli da cui partire si trovano nell'appendice @q{Modelli},
-si veda @ref{Single staff}.
+si veda @ref{Modelli per rigo singolo}.
@node Partitura vocale a quattro parti SATB
@lilypond[quote,ragged-right]
global = { \key d \major \time 4/4 }
-sopranoMusic = \relative c'' {
+sopranoMusic = \relative {
\clef "treble"
- r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
+ r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
}
sopranoWords = \lyricmode {
Wor -- thy | is the lamb | that was slain |
}
-altoMusic = \relative a' {
+altoMusic = \relative {
\clef "treble"
- r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 |
+ r4 a'2 a4 | fis4. fis8 a2 | g4 fis e2 |
}
altoWords = \sopranoWords
-tenorMusic = \relative c' {
+tenorMusic = \relative {
\clef "G_8"
- r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
+ r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
}
tenorWords = \sopranoWords
-bassMusic = \relative c' {
+bassMusic = \relative {
\clef "bass"
- r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
+ r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
}
bassWords = \sopranoWords
-upper = \relative a' {
+upper = \relative {
\clef "treble"
\global
- r4 <a d fis>2 <a e' a>4 |
+ r4 <a' d fis>2 <a e' a>4 |
<d fis d'>4. <d fis d'>8 <a d a'>2 |
<g cis g'>4 <a d fis> <a cis e>2 |
}
-lower = \relative c, {
+lower = \relative {
\clef "bass"
\global
- <d d'>4 <d d'>2 <cis cis'>4 |
+ <d, d'>4 <d d'>2 <cis cis'>4 |
<b b'>4. <b' b'>8 <fis fis'>2 |
<e e'>4 <d d'> <a' a'>2 |
}
}
@end lilypond
-Nessun modello fornisce esattamente questo assetto. Quello più simile
-è @q{Partitura vocale SATB e riduzione automatica per pianoforte} -- si veda @ref{Vocal
-ensembles} -- ma abbiamo bisogno di modificare l'assetto e aggiungere
+@warning{Questa struttura può essere ottenuta facilmente usando il modello
+integrato @code{satb.ly}, descritto in @ref{Modelli integrati}. Ma per
+facilità d'uso tale modello nasconde deliberatamente la necessaria struttura
+dei contesti, dato che la fornisce automaticamente. Dunque a scopo di
+apprendimento vediamo come costruire questa struttura da zero. Potresti
+aver bisogno di far ciò se il modello integrato non soddisfa le tue
+necessità.}
+
+Il modello @qq{copia e modifica} più simile a questa struttura
+è @ref{Partitura vocale SATB e automatica riduzione per pianoforte}, ma
+abbiamo bisogno di modificare l'assetto e aggiungere
un accompagnamento per pianoforte che non sia derivato automaticamente dalle
parti vocali. Le variabili che si riferiscono alla musica e alle parole per
le parti vocali vanno bene, ma dovremo aggiungere le variabili per la
@lilypond[quote,verbatim,ragged-right,addversion]
global = { \key d \major \time 4/4 }
-sopranoMusic = \relative c'' {
+sopranoMusic = \relative {
\clef "treble"
- r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
+ r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
}
sopranoWords = \lyricmode {
Wor -- thy | is the lamb | that was slain |
}
-altoMusic = \relative a' {
+altoMusic = \relative {
\clef "treble"
- r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
+ r4 a'2 a4 | fis4. fis8 a2 | g4 fis fis2 |
}
altoWords = \sopranoWords
-tenorMusic = \relative c' {
+tenorMusic = \relative {
\clef "G_8"
- r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
+ r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
}
tenorWords = \sopranoWords
-bassMusic = \relative c' {
+bassMusic = \relative {
\clef "bass"
- r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
+ r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
}
bassWords = \sopranoWords
-upper = \relative a' {
+upper = \relative {
\clef "treble"
\global
- r4 <a d fis>2 <a e' a>4 |
+ r4 <a' d fis>2 <a e' a>4 |
<d fis d'>4. <d fis d'>8 <a d a'>2 |
<g cis g'>4 <a d fis> <a cis e>2 |
}
-lower = \relative c, {
+lower = \relative {
\clef "bass"
\global
- <d d'>4 <d d'>2 <cis cis'>4 |
+ <d, d'>4 <d d'>2 <cis cis'>4 |
<b b'>4. <b' b'>8 <fis fis'>2 |
<e e'>4 <d d'> <a' a'>2 |
}
@subsection Scrivere una partitura da zero
@translationof Building a score from scratch
-@cindex template, scrivere il tuo
+@cindex modello, scrivere il tuo
@cindex esempio di scrittura di una partitura
@cindex scrivere una partitura, esempio
@cindex partitura, esempio di scrittura
>>
@end example
-Non è necessario usare il costrutto simultaneo @code{<< .. >>} per il rigo del
+Non è necessario usare il costrutto simultaneo @code{<< @dots{} >>} per il rigo del
secondo manuale e per quello della pedaliera, poiché contengono solo una
espressione musicale, ma non è male usarlo comunque; usare sempre le parentesi
angolari dopo @code{\new Staff} è una buona abitudine da coltivare nel caso ci
sia più di una voce. Per le Voci, è vero l'opposto: queste devono essere
-seguite regolarmente da parentesi graffe @code{@{ .. @}} nel caso in cui la
-musica sia composta da diverse variabili che devono essere eseguite
+seguite regolarmente da parentesi graffe @code{@{ @dots{} @}} nel caso in cui
+la musica sia composta da diverse variabili che devono essere eseguite
consecutivamente.
Aggiungiamo questa struttura al blocco della partitura, e aggiustiamo
(gli oggetti grafici vengono comunemente chiamati @q{grob} nella documentazione
di lilypond) -- non preoccuparti dei dettagli in questo momento; in seguito
verrà fornita una spiegazione approfondita. I curiosi possono dare
-un'occhiata a @ruser{Overview of modifying properties}.
+un'occhiata a @ruser{Panoramica sulla modifica delle proprietà}.
In questo caso, vogliamo modificare soltanto la sottoproprietà
@code{allungabilità}. Di nuovo, chi è curioso può trovare i valori predefiniti
-per la proprietà staff-staff-spacing nel file @file{scm/@/define-grobs@/.scm}
+per la proprietà staff-staff-spacing nel file @file{scm/define-grobs.scm}
guardando la definizione del grob @code{VerticalAxisGroup}. Il valore dell'
@code{allungabilità} viene preso dalla definizione del contesto @code{PianoStaff}
-(nel file @file{ly/@/engraver-init@/.ly}) così che i valori siano identici.
+(nel file @file{ly/engraver-init.ly}) così che i valori siano identici.
@example
\score @{
@}
>> % fine del contesto ManualOne Staff
\new Staff = "ManualTwo" \with @{
- \override VerticalAxisGroup
- #'staff-staff-spacing #'stretchability = 5
+ \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
@} <<
\keyTime
\clef "bass"
composer = "J S Bach"
}
keyTime = { \key c \minor \time 4/4 }
-ManualOneVoiceOneMusic = \relative g' {
- g4 g f ees |
+ManualOneVoiceOneMusic = \relative {
+ g'4 g f ees |
d2 c |
}
-ManualOneVoiceTwoMusic = \relative c' {
- ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
- c8 c4 b8 c8. g16 c b c d |
+ManualOneVoiceTwoMusic = \relative {
+ ees'16 d ees8~ 16 f ees d c8 d~ d c~ |
+ 8 c4 b8 c8. g16 c b c d |
}
-ManualTwoMusic = \relative c' {
- c16 b c8~ c16 b c g a8 g~ g16 g aes ees |
- f16 ees f d g aes g f ees d e8~ ees16 f ees d |
+ManualTwoMusic = \relative {
+ c'16 b c8~ 16 b c g a8 g~ 16 g aes ees |
+ f16 ees f d g aes g f ees d ees8~ 16 f ees d |
}
-PedalOrganMusic = \relative c {
- r8 c16 d ees d ees8~ ees16 a, b g c b c8 |
+PedalOrganMusic = \relative {
+ r8 c16 d ees d ees8~ 16 a, b g c b c8 |
r16 g ees f g f g8 c,2 |
}
}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" \with {
- \override VerticalAxisGroup
- #'staff-staff-spacing #'stretchability = 5
+ \override VerticalAxisGroup.staff-staff-spacing.stretchability = 5
} <<
\keyTime
\clef "bass"
@seealso
Glossario musicale:
-@rglos{system}.
+@rglosnamed{system,sistema}.
@node Ridurre l'input grazie a variabili e funzioni
@subsection Ridurre l'input grazie a variabili e funzioni
Finora hai visto questo tipo di cose:
@lilypond[quote,verbatim,ragged-right]
-hornNotes = \relative c'' { c4 b dis c }
+hornNotes = \relative { c''4 b dis c }
\score {
{
\hornNotes
Potresti anche essere accorto che questo può essere utile nella musica minimalista:
@lilypond[quote,verbatim,ragged-right]
-fragmentA = \relative c'' { a4 a8. b16 }
-fragmentB = \relative c'' { a8. gis16 ees4 }
+fragmentA = \relative { a'4 a8. b16 }
+fragmentB = \relative { a'8. gis16 ees4 }
violin = \new Staff {
\fragmentA \fragmentA |
Tuttavia, puoi usare queste variabili (note anche come
macro, o comandi definiti dall'utente) anche per le modifiche manuali:
-@c TODO Avoid padtext - not needed with skylining
@lilypond[quote,verbatim,ragged-right]
dolce = \markup { \italic \bold dolce }
-padText = { \once \override TextScript #'padding = #5.0 }
+centreText = { \once \override TextScript.self-alignment-X = #CENTER }
+
fthenp =_\markup {
\dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
}
-violin = \relative c'' {
+violin = \relative {
\repeat volta 2 {
- c4._\dolce b8 a8 g a b |
- \padText
- c4.^"hi there!" d8 e' f g d |
- c,4.\fthenp b8 c4 c-. |
+ c''4._\dolce b8 a8 g a b |
+ \centreText
+ c4.^"hi there!" d8 e f g d |
+ c4.\fthenp b8 c4 c-. |
}
}
{
\violin
}
- \layout { ragged-right = ##t }
}
@end lilypond
soprattutto l'ultima linea.
@example
-violin = \relative c'' @{
+violin = \relative @{
\repeat volta 2 @{
- c4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
- \once \override TextScript #'padding = #5.0
+ c''4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
+ \once \override TextScript.self-alignment-X = #CENTER
c4.^"hi there!" d8 e' f g d |
c,4.\markup @{
\dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
@}
@end example
-@c TODO Replace the following with a better example -td
-@c Skylining handles this correctly without padText
-
Finora abbiamo visto la sostituzione statica -- quando LilyPond
-vede @code{\padText}, lo sostituisce con quel che noi abbiamo
+vede @code{\centreText}, lo sostituisce con quel che noi abbiamo
definito che sia (ovvero tutto ciò che sta a destra di
-@code{padtext=}).
+@code{centreText=}).
LilyPond può gestire anche la sostituzione non statica (la puoi
immaginare come una funzione).
@lilypond[quote,verbatim,ragged-right]
padText =
#(define-music-function
- (parser location padding)
+ (padding)
(number?)
#{
- \once \override TextScript #'padding = $padding
+ \once \override TextScript.padding = #padding
#})
-\relative c''' {
- c4^"piu mosso" b a b |
+\relative {
+ c'''4^"piu mosso" b a b |
\padText #1.8
c4^"piu mosso" d e f |
\padText #2.6
L'uso di variabili è anche un buon modo per ridurre il lavoro quando
la sintassi di input di LilyPond cambia (vedi
-@rprogram{Updating files with convert-ly}). Se si ha un'unica
+@rprogram{Aggiornare i file con convert-ly}). Se si ha un'unica
definizione (come @code{\dolce}) per tutti i file di input
-(vedi @ref{Style sheets}), allora se la sintassi cambia bisogna
+(vedi @ref{Fogli di stile}), allora se la sintassi cambia bisogna
aggiornare soltanto la singola definizione @code{\dolce},
-invece di dover modificare tutti i file @code{.ly}.
+invece di dover modificare tutti i file @file{.ly}.
@node Partiture e parti
di un duetto per corno e fagotto
@example
-hornNotes = \relative c @{
+hornNotes = \relative @{
\time 2/4
r4 f8 a | cis4 f | e4 d |
@}
nel seguente output
@lilypond[quote,ragged-right]
-\transpose f c' \relative c {
+\transpose f c' \relative {
\time 2/4
r4 f8 a | cis4 f | e4 d |
}
@end example
Quando la parte viene stampata, le pause multiple devono essere
-condensate. Si può fare impostando una variabile run-time
+compresse. Esiste una funzione musicale per fare ciò:
@example
-\set Score.skipBars = ##t
+\compressMMRests @{ ... @}
@end example
-@noindent
-Questo comando imposta la proprietà @code{skipBars} nel contesto
-@code{Score} su vero (@code{##t}). Aggiungendo la pausa e questa
-opzione alla musica precedente, si arriva al seguente risultato
+Applicandola a @code{hornNotes} si ottiene:
@lilypond[quote,ragged-right]
-\transpose f c' \relative c {
+\compressMMRests \transpose f c' \relative {
\time 2/4
- \set Score.skipBars = ##t
R2*3 |
r4 f8 a | cis4 f | e4 d |
}
ovvero
@lilypond[quote,ragged-right]
-\relative c <<
+\relative <<
\new Staff {
\clef "treble"
\time 2/4
>>
@end lilypond
+@seealso
+Manuale di apprendimento:
+@ref{Organizzare i brani con le variabili}.
+
+Guida alla notazione:
+@ruser{Trasposizione},
+@ruser{Scrittura delle parti},
+@ruser{Pause d'intero},
+@ruser{Inclusione di file LilyPond}.