| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Horizontal spacing
| 4.5.1 Panoramica sulla spaziatura orizzontale | ||
| 4.5.2 Nuova spaziatura nel corso di un brano | ||
| 4.5.3 Modifica della spaziatura orizzontale | ||
| 4.5.4 Larghezza della linea | ||
| 4.5.5 Notazione proporzionale |
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Horizontal spacing overview
Il motore della spaziatura traduce le differenze delle durate delle
note in distanze allungabili (‘springs’) di diversa lunghezza. Durate
più lunghe occupano più spazio, quelle più brevi ne occupano meno.
Le durate più brevi occupano una quantità fissa di spazio (regolata da
shortest-duration-space nell’oggetto
(internals)SpacingSpanner section ‘SpacingSpanner’ in Guida al Funzionamento Interno).
Più lunga è la durata, più spazio occupa: raddoppiando una durata
si aggiunge spazio alla nota di una quantità pari al valore di
spacing-increment.
Per esempio, il brano seguente contiene molte minime, semiminime e crome; la croma (1/8) è seguita da 1 Larghezza della Testa di Nota (LTN). La semiminima (1/4) è seguita da 2 LTN, la minima (1/2) da 3 LTN, etc.
\relative c' { c2 c4. c8 c4. c8 c4. c8 c8 c c4 c c }
Solitamente, spacing-increment è impostato su 1.2 di spazio rigo, che
equivale all’incirca alla larghezza della testa di nota, e
shortest-duration-space è impostato su 2.0, che significa che
la nota più breve occupa 2.4 di spazio rigo (2 volte spacing-increment)
di spazio orizzontale. Questo spazio è calcolato dal margine sinistro
del simbolo, dunque le note più brevi sono generalmente seguite da
un LTN di spazio.
Se si seguisse esattamente la procedura descritta, aggiungendo una sola biscroma (1/32) a un brano che usa solo crome e semicrome, la spaziatura orizzontale dell’intero brano sarebbe troppo larga. Infatti la nota più breve non è più una semicroma ma una biscroma, aggiungendo quindi 1 LTN a ogni nota. Per impedire ciò, la durata più breve per la spaziatura non deriva dalla nota più breve, bensì dalla nota che ricorre più frequentemente nel brano.
La durata più breve più comune viene individuata nel modo seguente. In ogni misura viene determinata la durata più breve e quella più frequente viene scelta come base per la spaziatura, con la condizione che tale durata debba essere sempre uguale o inferiore a una nota di un ottavo.
Tali durate possono anche essere personalizzate. Impostando
common-shortest-duration in
(internals)SpacingSpanner section ‘SpacingSpanner’ in Guida al Funzionamento Interno, si
imposta la durata di base per la spaziatura. La durata massima per
essa (solitamente un ottavo), si imposta con base-shortest-duration.
Note ancora più brevi della nota più breve più comune sono seguite da uno spazio proporzionale alla loro durata rispetto a essa. Dunque se aggiungessimo solo alcuni sedicesimi all’esempio precedente, sarebbero seguiti dalla metà di LTN:
\relative { c''2 c4. c8 | c4. c16[ c] c4. c8 | c8 c c4 c c }
Come è spiegato nel saggio Essay on automated music engraving, le
direzioni del gambo influenzano la spaziatura (vedi
(essay)Optical spacing section ‘Optical spacing’ in Saggio) e
possono essere aggiustate usando la proprietà stem-spacing-correction
dell’oggetto
(internals)NoteSpacing section ‘NoteSpacing’ in Guida al Funzionamento Interno (che sono generati per ogni
contesto
(internals)Voice section ‘Voice’ in Guida al Funzionamento Interno.
L’oggetto StaffSpacing (generato nel contesto
(internals)Staff section ‘Staff’ in Guida al Funzionamento Interno)
contiene la stessa proprietà per regolare la spaziatura tra gambo e stanghetta.
L’esempio seguente mostra tutto questo: una volta con le impostazioni predefinite e una volta con un aggiustamento esagerato:
LilyPond supporta la notazione proporzionale, vedi @ref{Proportional notation}.
Essay on automated music engraving: (essay)Spaziatura ottica section ‘Spaziatura ottica’ in Saggio.
Frammenti: (snippets)Spacing section ‘Spacing’ in Frammenti di codice.
Guida al funzionamento interno: (internals)SpacingSpanner section ‘SpacingSpanner’ in Guida al Funzionamento Interno, (internals)NoteSpacing section ‘NoteSpacing’ in Guida al Funzionamento Interno, (internals)StaffSpacing section ‘StaffSpacing’ in Guida al Funzionamento Interno, (internals)NonMusicalPaperColumn section ‘NonMusicalPaperColumn’ in Guida al Funzionamento Interno.
Non esiste un modo semplice per modificare manualmente la spaziatura. Per aggirare il problema si può inserire dell’ulteriore spazio in una partitura, regolando il valore di padding di quanto è necessario:
\override Score.NonMusicalPaperColumn.padding = #10 |
Non esiste alcun trucco per diminuire la quantità di spazio.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof New spacing section
Nuove sezioni con parametri di spaziatura diversi possono essere iniziati
col comando \newSpacingSection. Ciò può essere utile per sezioni
con nozioni diverse di note ‘lunghe’ e note ‘brevi’. Il comando
\newSpacingSection crea un nuovo oggetto SpacingSpanner in
quel momento musicale.
Nell’esempio seguente, il cambio di indicazione di tempo introduce una nuova sezione, e i sedicesimi hanno automaticamente una spaziatura un po’ più larga.
\relative c' { \time 2/4 c4 c8 c c8 c c4 c16[ c c8] c4 \newSpacingSection \time 4/16 c16[ c c8] }
Se gli aggiustamenti automatici della spaziatura non producono la
spaziatura richiesta, si possono applicare degli \override
manuali alle sue proprietà. Questi devono essere applicati nello
stesso momento musicale del comando \newSpacingSection stesso e
avranno effetto sulla spaziatura di tutta la musica seguente finché
le proprietà non vengono cambiate in una nuova sezione. Per esempio:
\relative c' { \time 4/16 c16[ c c8] \newSpacingSection \override Score.SpacingSpanner.spacing-increment = #2 c16[ c c8] \newSpacingSection \revert Score.SpacingSpanner.spacing-increment c16[ c c8] }
Frammenti: (snippets)Spacing section ‘Spacing’ in Frammenti di codice.
Guida al funzionamento interno: (internals)SpacingSpanner section ‘SpacingSpanner’ in Guida al Funzionamento Interno.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Changing horizontal spacing
| Allungamento uniforme dei gruppi irregolari | ||
| Spaziatura rigorosa della nota |
La spaziatura orizzontale può essere modificata tramite la proprietà
base-shortest-duration. Nel prossimo esempio confrontiamo
la stessa musica, prima senza cambiare la proprietà e poi cambiandola.
Valori più grandi di ly:make-moment produrranno musica più densa.
Nota che ly:make-moment constituisce una durata, dunque
1 4 è una durata più lunga di 1 16.
\score {
\relative {
g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
}
}
|
\score {
\relative {
g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
g4 e e2 | f4 d d2 | c4 e g g | c,1 |
}
\layout {
\context {
\Score
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
}
}
}
|
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Uniform stretching of tuplets
L’impostazione predefinita prevede che la spaziatura nei gruppi irregolari
dipenda da vari fattori diversi dalla durata (come alterazioni, cambi di
chiave, etc). Per ignorare tali simboli e forzare la spaziatura perché
sia uniforme, usare Score.SpacingSpanner.uniform-stretching. Questa
proprietà può essere modificata soltanto all’inizio di una partitura:
\score { << \new Staff \relative c' { \tuplet 5/4 { c8 c c c c } c8 c c c } \new Staff \relative c' { c8 c c c \tuplet 5/4 { c8 c c c c } } >> \layout { \context { \Score \override SpacingSpanner.uniform-stretching = ##t } } }
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Strict note spacing
Se si imposta strict-note-spacing, la spaziatura tra le note non tiene
conto di chiavi, stanghette e abbellimenti:
\override Score.SpacingSpanner.strict-note-spacing = ##t \new Staff \relative { c''8[ c \clef alto c \grace { c16 c } c8 c c] c32[ c] }
Frammenti: (snippets)Spacing section ‘Spacing’ in Frammenti di codice.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Line width
Le impostazioni fondamentali che influenzano la spaziatura sono indent e
line-width, impostate nel blocco \layout. Regolano l’indentazione
della prima linea musicale e la lunghezza delle linee.
Se ragged-right è impostato su vero nel blocco \layout, i sistemi
terminano alla loro naturale lunghezza orizzontale, invece di essere espansi
orizzontalmente per riempire tutta la linea. Ciò è utile in caso di brevi
frammenti e per verificare quanto è compatta la spaziatura naturale. L’impostazione
predefinita è solitamente falso, ma se la partitura ha un solo sistema il
valore predefinito è vero.
L’opzione ragged-last è simile a ragged-right, ma ha effetto
soltanto sull’ultima linea del brano. Nessune restrizioni vengono poste su
quella linea. Il risultato è simile alla formattazione dei paragrafi di testo.
In un paragrafo l’ultima linea occupa la sua naturale lunghezza orizzontale.
\layout {
indent = #0
line-width = #150
ragged-last = ##t
}
|
Frammenti: (snippets)Spacing section ‘Spacing’ in Frammenti di codice.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] | [Inizio] | [Contenuti] | [Indice] | [ ? ] |
@translationof Proportional notation
LilyPond supporta la notazione proporzionale, un tipo di spaziatura orizzontale in cui ogni nota occupa una quantità di spazio orizzontale esattamente equivalente alla sua durata musicale. Questo tipo di spaziatura proporzionale può essere paragonata alla spaziatura orizzontale su carta quadrettata. Alcune partiture della fine del ventesimo secolo e dell’inizio del ventunesimo usano la notazione proporzionale per chiarire relazioni ritmiche complesse o per agevolare il posizionamento della linea del tempo o di altri elementi grafici direttamente nella partitura.
LilyPond supporta cinque diverse impostazioni per la notazione proporzionale, che possono essere usate insieme o da sole:
proportionalNotationDuration
uniform-stretching
strict-note-spacing
\remove "Separating_line_group_engraver"
\override PaperColumn.used = ##t
Nell’esempio seguente analizziamo queste cinque diverse impostazioni di notazione proporzionale e valutiamo come esse interagiscono tra loro.
Iniziamo con l’esempio seguente di una misura, che usa la spaziatura classica con la giustificazione del rigo disattivata.
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> }
La minima all’inizio della misura occupa uno spazio molto inferiore alla metà dello spazio orizzontale della misura. Ugualmente, i sedicesimi e le quintine di sedicesimi alla fine della battuta insieme occupano molto più spazio della metà dello spazio orizzontale della misura.
Nell’incisione tipografica classica, questa spaziatura è solitamente proprio ciò che si desidera, perché è possibile prendere in prestito dello spazio orizzontale dalla minima e economizzare lo spazio orizzontale complessivo della misura.
D’altra parte, se vogliamo inserire una linea del tempo con tacche o altri elementi grafici sopra o sotto la partitura, abbiamo bisogno della notazione proporzionale. Per attivarla si usa l’impostazione proportionalNotationDuration.
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/20) } } }
La minima all’inizio della misura e le note più veloci nella seconda metà della misura ora occupano la stessa quantità di spazio orizzontale. Potremmo inserire una linea del tempo con tacche o un’immagine grafica sopra o sotto questo esempio.
L’impostazione proportionalNotationDuration è un’impostazione di
contesto che si trova in Score. Ricordiamo che le impostazioni di
contesto possono apparire in tre luoghi del file di input: in un blocco
\with, in un blocco \context o direttamente in mezzo alle
note preceduta dal comando \set. Come per tutte le impostazioni di
contesto, l’utente può scegliere in quale di questi tre luoghi impostare
proportionalNotationDuration.
L’impostazione proportionalNotationDuration prende un solo argomento,
che è la durata di riferimento in base alla quale tutta la musica verrà
spaziata. La funzione Scheme di LilyPond make-moment prende due
argomenti: un numeratore e un denominatore che insieme esprimono una qualche
frazione di una nota intera. La funzione di chiamata (ly:make-moment 1/20)
produce quindi una durata di riferimento di un ventesimo di nota. Sono ammessi
anche valori come (ly:make-moment 1/16), (ly:make-moment 1/8) e
(ly:make-moment 3/97).
Come scegliamo la durata di riferimento corretta da passare a
proportionalNotationDuration? Solitamente attraverso un processo di
prova e errore, iniziando con una durata vicina alla più veloce (o piccola)
durata del brano. Durate di riferimento più piccole determinano una spaziatura
della musica più larga; quelle più grandi causano una spaziatura più stretta.
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/8) } } } \score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/16) } } } \score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/32) } } }
Nota che una durata di riferimento troppo grande – come la nota di un ottavo, sopra – determina una spaziatura della musica troppo stretta e può causare collisioni tra le teste di nota. Fare attenzione anche al fatto che la notazione proporzionale in generale occupa più spazio orizzontale della spaziatura classica. Insomma, la spaziatura proporzionale fornisce chiarezza ritmica al costo dello spazio orizzontale.
Ora vediamo come spaziare in modo ottimale i gruppi irregolari sovrapposti.
Iniziamo esaminando cosa succede al nostro esempio di partenza, con la spaziatura classica, quando aggiungiamo un secondo rigo con un diverso tipo di gruppo irregolare.
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } \new RhythmicStaff { \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 } } >> }
La spaziatura è pessima perché le note del rigo inferiore spaziate a distanze
uguali non si allungano in modo uniforme. Le incisioni classiche contengono
pochissime terzine complesse e quindi le regole di incisione classica possono
generare questo tipo di risultato. Impostando proportionalNotationDuration
ciò viene corretto.
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } \new RhythmicStaff { \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/20) } } }
Ma se osserviamo con attenzione possiamo vedere che le note della seconda
metà della nonina hanno una spaziatura leggermente più larga delle note
della prima parte della nonina. Per assicurare un allungamento uniforme,
attiviamo uniform-stretching, una proprietà di
SpacingSpanner.
\score { << \new RhythmicStaff { c2 16 16 16 16 \tuplet 5/4 { 16 16 16 16 16 } } \new RhythmicStaff { \tuplet 9/8 { c8 8 8 8 8 8 8 8 8 } } >> \layout { \context { \Score proportionalNotationDuration = #(ly:make-moment 1/20) \override SpacingSpanner.uniform-stretching = ##t } } }
Il nostro esempio di due righi ora ha una spaziatura esatta, le relazioni ritmiche sono visivamente chiare e possiamo includere una linea del tempo con tacche o altro elemento grafico, se lo vogliamo.
Nota che la notazione proporzionale di LilyPond si aspetta che tutte le
partiture proporzionali impostino l’attributo ’uniform-stretching di
SpacingSpanner su ##t. Impostare proportionalNotationDuration senza
impostare anche l’attributo ’uniform-stretching di SpacingSpanner su
##t farà sì, per esempio, che le pause invisibili occupino una quantità
scorretta di spazio orizzontale.
SpacingSpanner è un grob astratto che si trova nel contesto Score.
Come per le impostazioni di proportionalNotationDuration, le modifiche
\override a SpacingSpanner si possono trovare in uno dei tre diversi
punti del file di input – nel blocco \with del brano, nel blocco \context
del brano o direttamente in mezzo alle note.
Per impostazione predefinita, esiste un solo SpacingSpanner per
Score. Ciò significa che uniform-stretching è attivato o
disattivato per l’intera partitura. Possiamo tuttavia modificare tale
comportamento e attivare diverse funzionalità di spaziatura in punti
diversi del brano. Per farlo si usa il comando \newSpacingSection.
Maggiori informazioni in @ref{New spacing section}.
Ora esaminiamo gli effetti dell’incisore Separating_line_group_engraver e
vediamo perché le partiture proporzionali solitamente tolgano questo incisore.
L’esempio seguente mostra che c’è un piccolo spazio “introduttivo” proprio
prima della prima nota di ogni sistema.
\paper { indent = #0 } \new Staff { c'1 \break c'1 }
L’ampiezza di questo spazio introduttivo è la stessa sia dopo un’indicazione di
tempo che dopo un’armatura di chiave o una chiave.
È l’incisore Separating_line_group_engraver a causare questo spazio.
Togliendolo lo spazio diventa zero.
\paper { indent = #0 } \new Staff \with { \remove "Separating_line_group_engraver" } { c'1 \break c'1 }
Nella notazione proporzionale gli elementi non musicali come le indicazioni di tempo, le armature di chiave, le chiavi e le alterazioni sono problematiche. Nessuna di queste infatti ha una durata ritmica, ma tutte occupano spazio orizzontale. Questi problemi sono affrontati diversamente dalle varie partiture proporzionali.
È possibile evitare i problemi di spaziatura dovuti alle armature di chiave semplicemente omettendole. Questa è un’opzione valida dato che la maggior parte delle partiture proporzionali sono di musica contemporanea. Lo stesso potrebbe valere per le indicazioni di tempo, specialmente per quelle partiture che includono una linea del tempo o altri elementi grafici. Ma queste partiture sono un’eccezione e la maggior parte delle partiture proporzionali hanno almeno qualche indicazione di tempo. Le chiavi e le alterazioni sono ancora più fondamentali.
Dunque quali strategie adottare per spaziare elementi non musicali nel contesto
di musica proporzionale? Una valida opzione è la proprietà strict-note-spacing
di SpacingSpanner. Confrontiamo i seguenti due righi:
\new Staff { \set Score.proportionalNotationDuration = #(ly:make-moment 1/16) c''8 8 8 \clef alto d'2 2 } \new Staff { \set Score.proportionalNotationDuration = #(ly:make-moment 1/16) \override Score.SpacingSpanner.strict-note-spacing = ##t c''8 8 8 \clef alto d'2 2 }
Entrambi sono proporzionali, ma la spaziatura del primo è troppo larga a causa del cambio di chiave. La spaziatura del secondo resta invece stretta, perché è attivato strict-note-spacing. Attivando strict-note-spacing, la larghezza di indicazioni di tempo, armature di chiave, chiavi e alterazioni non ha alcun ruolo nell’algoritmo di spaziatura.
Oltre alle impostazioni che abbiamo visto, ce ne sono altre che appaiono frequentemente nelle partiture proporzionali, tra cui:
\override SpacingSpanner.strict-grace-spacing = ##t
\set tupletFullLength = ##t
\override Beam.breakable = ##t
\override Glissando.breakable = ##t
\override TextSpanner.breakable = ##t
\remove "Forbid_line_break_engraver" nel contesto Voice
Queste impostazioni spaziano in modo conciso gli abbellimenti, estendono le parentesi dei gruppi irregolari per contrassegnare i punti di inizio e di fine del ritmo, e permettono agli elementi che si estendono orizzontalmente di andare oltre i sistemi e le pagine. Consultare le sezioni del manuale per queste impostazioni.
Guida alla notazione: @ref{New spacing section}.
Frammenti: (snippets)Spacing section ‘Spacing’ in Frammenti di codice.
| [ < ] | [ > ] | [ << ] | [ Su ] | [ >> ] |
This document was generated by gub on Luglio 13, 2020 using texi2html 1.82.
Altre lingue: English, català, deutsch, español, français, 日本語.
A proposito della selezione automatica della lingua.