[ << Notazione musicale ] | [Top][Contents][Index] | [ Notazione specialistica >> ] |
[ < Stili di voce ] | [ Up : Più voci ] | [ Accorpare le pause > ] |
Risoluzione delle collisioni
Le teste di note che si trovano in voci diverse ma hanno stessa altezza, stessa testa e direzione del gambo opposta vengono unite automaticamente; invece, le note che hanno la stessa testa o la stessa direzione del gambo non vengono unite. Le pause opposte a un gambo in una voce diversa vengono spostate verticalmente. L’esempio seguente mostra tre diverse circostanze, sul primo e terzo movimento della prima battuta e sul primo movimento della seconda battuta, in cui l’unione automatica delle teste di nota non funziona.
<< \relative { c''8 d e d c d c4 g'2 fis } \\ \relative { c''2 c8. b16 c4 e,2 r } \\ \relative { \oneVoice s1 e'8 a b c d2 } >>
Note con teste diverse possono essere unite come è mostrato sotto. In questo esempio le teste delle note nel primo battito della prima battuta sono unite:
<< \relative { \mergeDifferentlyHeadedOn c''8 d e d c d c4 g'2 fis } \\ \relative { c''2 c8. b16 c4 e,2 r } \\ \relative { \oneVoice s1 e'8 a b c d2 } >>
Le minime e le semiminime, invece, non sono unite, perché sarebbe difficile distinguerle.
Anche le teste di note con diversi punti, come nel terzo movimento della prima battuta, possono essere unite:
<< \relative { \mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn c''8 d e d c d c4 g'2 fis } \\ \relative { c''2 c8. b16 c4 e,2 r } \\ \relative { \oneVoice s1 e'8 a b c d2 } >>
La minima e la croma all’inizio della seconda misura sono unite
per errore, perché l’unione automatica non riesce a completare
correttamente l’unione quando tre o più note sono allineate sulla
stessa colonna di note: in questo caso la testa di nota unita non
è corretta. Per far sì che l’unione selezioni la testa di nota
corretta, occorre applicare il comando \shift
alla nota
che non deve essere unita. In questo esempio si usa \shiftOn
per
spostare il Sol superiore (g) fuori dalla colonna e di
conseguenza \mergeDifferentlyHeadedOn
funziona correttamente.
<< \relative { \mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn c''8 d e d c d c4 \shiftOn g'2 fis } \\ \relative { c''2 c8. b16 c4 e,2 r } \\ \relative { \oneVoice s1 e'8 a b c d2 } >>
Il comando \shiftOn
permette (senza forzare) lo spostamento delle note
in una voce. Quando si applica \shiftOn
a una voce, una nota o
accordo in quella voce vengono spostati solo se il suo gambo altrimenti entrerebbe
in collisione col gambo di un’altra voce, e solo se i gambi
che collidono puntano nella stessa direzione. Il comando \shiftOff
impedisce che si verifichi questo tipo di spostamento.
Per impostazione predefinita, le voci più esterne (solitamente la prima e
la seconda voce) hanno specificato \shiftOff
, mentre le voci più
interne (terza e successive) hanno specificato \shiftOn
. Quando si
applica uno spostamento, le voci con i gambi in su (voci dispari)
vengono spostate a destra, e le voci con i gambi in giù (voci pari)
vengono spostate a sinistra.
Ecco un esempio che aiuta a visualizzare come un’espressione simultanea abbreviata viene espansa internamente.
Nota: Attenzione: con tre o più voci, l’ordine verticale delle voci nel file di input non deve essere lo stesso dell’ordine verticale delle voci del rigo!
\new Staff \relative { %% inserimento abbreviato << { f''2 } % 1: più alta \\ { g,2 } % 2: più bassa \\ { d'2 } % 3: più alta centrale \\ { b2 } % 4: più bassa centrale >> %% espansione interna dell'input precedente << \new Voice = "1" { \voiceOne \shiftOff f'2 } \new Voice = "2" { \voiceTwo \shiftOff g,2 } \new Voice = "3" { \voiceThree \shiftOn d'2 } % sposta a destra \new Voice = "4" { \voiceFour \shiftOn b2 } % sposta a sinistra >> }
Due ulteriori comandi, \shiftOnn
e \shiftOnnn
,
mettono a disposizione altri livelli di spostamento che possono
essere specificati in modo temporaneo per risolvere delle collisioni
in situazioni complesse – vedi Esempio musicale.
Le note vengono unite solo se presentano opposta direzione dei gambi (come accade, ad esempio, nella prima o seconda voce o quando i gambi sono impostati esplicitamente in direzioni opposte).
Comandi predefiniti
\mergeDifferentlyDottedOn
,
\mergeDifferentlyDottedOff
,
\mergeDifferentlyHeadedOn
,
\mergeDifferentlyHeadedOff
.
\shiftOn
,
\shiftOnn
,
\shiftOnnn
,
\shiftOff
.
Frammenti di codice selezionati
Voci ulteriori per evitare le collisioni
In alcuni casi di musica polifonica complessa sono necessarie delle voci
ulteriori per evitare le collisioni tra note. Se servono più di
quattro voci parallele, si possono aggiungere altre voci definendo
una variabile con la funzione Scheme function context-spec-music
.
voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice) \relative c'' { \time 3/4 \key d \minor \partial 2 << \new Voice { \voiceOne a4. a8 e'4 e4. e8 f4 d4. c8 } \new Voice { \voiceTwo d,2 d4 cis2 d4 bes2 } \new Voice { \voiceThree f'2 bes4 a2 a4 s2 } \new Voice { \voiceFive s2 g4 g2 f4 f2 } >> }
Spostare le note puntate in polifonia
Quando una nota puntata della voce più alta viene spostata per evitare una
collisione con una nota di un’altra voce, il comportamento predefinito è
spostare la nota più alta a destra. Tale comportamento può essere
modificato tramite la proprietà prefer-dotted-right
di
NoteCollision
.
\new Staff \relative c' << { f2. f4 \override Staff.NoteCollision.prefer-dotted-right = ##f f2. f4 \override Staff.NoteCollision.prefer-dotted-right = ##t f2. f4 } \\ { e4 e e e e e e e e e e e } >>
Forzare lo spostamento orizzonatale delle note
Quando il motore tipografico non riesce a risolvere una situazione, si può usare la sintassi che sovrascrive le decisioni tipografiche. L’unità di misura usata è lo spazio del rigo.
\relative c' << { <d g>2 <d g> } \\ { <b f'>2 \once \override NoteColumn.force-hshift = 1.7 <b f'>2 } >>
Vedi anche
Glossario Musicale: polifonia.
Manuale d’apprendimento: Note simultanee, Le voci contengono la musica, Esempio musicale.
Frammenti: Simultaneous notes.
Guida al funzionamento interno: NoteColumn, NoteCollision, RestCollision.
Problemi noti e avvertimenti
Se si usa \override NoteColumn.ignore-collision = ##t
,
le note con teste diverse che si trovano in voci
diverse saranno unite in modo non corretto.
\mergeDifferentlyHeadedOn << \relative { c'16 a' b a } \\ \relative { c'2 } >> \override NoteColumn.ignore-collision = ##t << \relative { c'16 a' b a } \\ \relative { c'2 } >>
[ << Notazione musicale ] | [Top][Contents][Index] | [ Notazione specialistica >> ] |
[ < Stili di voce ] | [ Up : Più voci ] | [ Accorpare le pause > ] |