[ << Modifica dell'output ] | [Inizio][Contenuti][Indice][ ? ] | [ Modelli >> ] | ||
[ < Spostare gli oggetti ] | [ Su : Collisioni tra oggetti ] | [ Esempio musicale > ] |
4.5.2 Correggere la sovrapposizione di elementi della notazione
Vediamo ora come le proprietà presentate nella sezione precedente possano aiutare a risolvere la sovrapposizione degli elementi della notazione.
proprietà padding
La proprietà padding
serve a aumentare (o diminuire)
la distanza tra i simboli che si trovano sopra o sotto le
note.
c2\fermata \override Script #'padding = #3 b2\fermata
% Questo non funziona, vedi sotto \override MetronomeMark #'padding = #3 \tempo 4 = 120 c1 | % Questo funziona \override Score.MetronomeMark #'padding = #3 \tempo 4 = 80 d1 |
Nota nel secondo esempio come è importante sapere quale contesto
gestisce un certo oggetto. Dato che l’oggetto MetronomeMark
è regolato dal contesto Score
, le modifiche della proprietà
nel contesto Voice
non vengono prese in considerazione. Per
approfondire l’argomento si veda
Modifying properties.
Se la proprietà padding
di un oggetto viene aumentata quando
quell’oggetto si trova insieme ad altri oggetti disposti secondo la
loro proprietà outside-staff-priority
, allora si sposteranno
quell’oggetto e tutti gli oggetti esterni a esso.
right-padding
La proprietà right-padding
agisce sullo spazio tra l’alterazione
e la nota corrispondente. Non è una necessità frequente, ma la
spaziatura predefinita potrebbe risultare errata nei casi di alcuni
speciali glifi delle alterazioni usati nella musica microtonale.
Questi si inseriscono sovrascrivendo lo stampo (stencil) dell’alterazione
con un segno che contenga il simbolo desiderato:
sesquisharp = \markup { \sesquisharp } \relative c'' { c4 % Mostra un triesis (alterazione ascendente di tre quarti di tono) ma lo spazio è troppo stretto \once \override Accidental #'stencil = #ly:text-interface::print \once \override Accidental #'text = #sesquisharp cis4 c % Ecco come migliorare lo spazio \once \override Score.AccidentalPlacement #'right-padding = #0.6 \once \override Accidental #'stencil = #ly:text-interface::print \once \override Accidental #'text = #sesquisharp cis4 | }
Siamo costretti a usare una sovrascrittura dello stampo dell’alterazione che
verrà spiegata successivamente. Il tipo di stampo deve essere una
procedura e in questo esempio è stato modificato per mostrare i
contenuti della proprietà text
dell’oggetto Accidental
, che
è esso stesso impostato sul segno di triesis. Poi
questo segno viene distanziato dalla testa di nota grazie alla sovrascrittura
di right-padding
.
proprietà staff-padding
staff-padding
serve ad allineare gli oggetti come i segni di
dinamica lungo una linea di base a una certa altezza fissa sopra il
rigo, invece che a un’altezza dipendente dalla posizione della nota al
quale sono collegati. Non è una proprietà di DynamicText
bensì
di DynamicLineSpanner
, perché la base deve essere applicata
ugualmente a tutti i segni dinamica, compresi quelli creati
come estensori. Ecco come allineare i segni di dinamica nell’esempio
preso dalla sezione precedente:
\dynamicUp % Aumenta la larghezza di 1 unità \override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5) % Allinea le dinamiche alla base posta 2 unità sopra il rigo \override DynamicLineSpanner #'staff-padding = #2 a4\f b\mf c\mp b\p
proprietà self-alignment-X
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:
\voiceOne <a\2> \once \override StringNumber #'self-alignment-X = #RIGHT <a\2>
proprietà staff-position
Le pause d’intero di una voce possono entrare in collisione con le note di un’altra. Dal momento che queste pause sono centrate rispetto alle stanghette della battuta, calcolare quali altre note potrebbero sovrapporsi richiederebbe un notevole grado d’elaborazione, dato che l’attuale gestione delle collisioni tra note e tra note e pause riguarda solo le note e le pause simultanee. Ecco un esempio di collisione di questo tipo:
<< { c4 c c c } \\ { R1 } >>
In questo caso la soluzione migliore è spostare in basso la pausa d’intero, poiché
si trova nella seconda voce. In \voiceTwo
(ovvero nella seconda
voce di un costrutto <<{...} \\ {...}>>
) il valore predefinito
di 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à -8
.
<< { c4 c c c } \\ \override MultiMeasureRest #'staff-position = #-8 { R1 } >>
Questa soluzione è preferibile all’uso di extra-offset
, perché
il taglio addizionale sopra la pausa è inserito automaticamente.
proprietà extra-offset
La proprietà extra-offset
fornisce un controllo completo
sul posizionamento di un oggetto sia in orizzontale che in verticale.
Nell’esempio seguente, la seconda diteggiatura viene spostata un po’ a sinistra e in basso di 1.8 spazi rigo:
\stemUp f4-5 \once \override Fingering #'extra-offset = #'(-0.3 . -1.8) f4-5
proprietà positions
La proprietà 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.
r4 \acciaccatura e8\( d8 c~ c d c d\)
Potremmo semplicemente spostare la legatura di frase sopra le note:
r4 \phrasingSlurUp \acciaccatura e8\( d8 c~ c d c d\)
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à positions
. Questo
risolve anche il problema della forma sgraziata.
r4 \once \override PhrasingSlur #'positions = #'(-4 . -3) \acciaccatura e8\( d8 c~ c d c d\)
Ecco un altro esempio. Vediamo che le travature collidono con le legature di valore:
{ \time 4/2 << { c'1 ~ c'2. e'8 f' } \\ { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' } >> << { c'1 ~ c'2. e'8 f' } \\ { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' } >> }
Si può risolvere spostando manualmente in su entrambi gli estremi della travatura dalla loro posizione di 1.81 spazi rigo sotto la linea centrale a, per esempio, 1:
{ \time 4/2 << { c'1 ~ c'2. e'8 f' } \\ { \override Beam #'positions = #'(-1 . -1) e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' } >> << { c'1 ~ c'2. e'8 f' } \\ { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' } >> }
Come vedi, la sovrascrittura si applica anche alla prima voce della seconda misura di otto note, ma a nessuna delle travature nella seconda voce.
proprietà force-hshift
Possiamo vedere ora come applicare le correzioni finali all’esempio di Chopin introdotto alla fine del paragrafo Sento le Voci, che avevamo lasciato così:
\new Staff \relative c'' { \key aes \major << { c2 aes4. bes8 } \\ { <ees, c>2 des } \\ \\ { aes'2 f4 fes } >> | <c ees aes c>1 | }
La nota interna del primo accordo (ovvero il La bemolle della quarta
voce) non deve essere allontanata dalla colonna della nota più
alta. Per correggerlo impostiamo force-hshift
, una proprietà
di NoteColumn
, su zero.
Nel secondo accordo preferiamo che il Fa sia allineato al La bemolle e che
la nota più grave sia posizionata leggermente più a destra, in modo da
evitare la collisione dei gambi. Per farlo dobbiamo impostare
force-hshift
nella colonna (NoteColumn
) del Re bemolle
grave in modo che si sposti a destra di mezzo spazio di rigo.
Ecco il risultato finale:
\new Staff \relative c'' { \key aes \major << { c2 aes4. bes8 } \\ { <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 | }
[ << Modifica dell'output ] | [Inizio][Contenuti][Indice][ ? ] | [ Modelli >> ] | ||
[ < Spostare gli oggetti ] | [ Su : Collisioni tra oggetti ] | [ Esempio musicale > ] |
Other languages: English, česky, deutsch, español, français, 日本語, nederlands.
About automatic language selection.