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

[image of music]

% Questo non funziona, vedi sotto
\override MetronomeMark #'padding = #3
\tempo 4 = 120
c1 |
% Questo funziona
\override Score.MetronomeMark #'padding = #3
\tempo 4 = 80
d1 |

[image of music]

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 |
}

[image of music]

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

[image of music]

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>

[image of music]

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 } >>

[image of music]

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 }
>>

[image of music]

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

[image of music]

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\)

[image of music]

Potremmo semplicemente spostare la legatura di frase sopra le note:

r4
\phrasingSlurUp
\acciaccatura e8\( d8 c~ c d c d\)

[image of music]

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\)

[image of music]

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'' }
  >>
}

[image of music]

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'' }
  >>
}

[image of music]

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 |
}

[image of music]

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 |
}

[image of music]


Other languages: English, česky, deutsch, español, français, 日本語, nederlands.
About automatic language selection.

LilyPond — Learning Manual