[ << Notazione musicale ] | [Top][Contents][Index] | [ Notazione specialistica >> ] |
[ < Travature automatiche ] | [ Up : Travature ] | [ Travature manuali > ] |
Impostare il comportamento delle travature automatiche
Quando la disposizione automatica delle travature è abilitata, la disposizione
delle travature è determinata da tre proprietà di contesto:
beatBase
, beatStructure
e beamExceptions
.
I valori predefiniti di queste variabili possono essere sovrascritti, come
vedremo tra breve, oppure si possono anche cambiare i valori predefiniti stessi,
come è spiegato in Indicazione di tempo.
Se è definita una regola beamExceptions
per l’indicazione di
tempo corrente, tale regola soltanto determina la
disposizione delle travature; i valori di beatBase
e
beatStructure
vengono ignorati. Se non è definita
alcuna regola beamExceptions
per l’indicazione di tempo
corrente, la disposizione delle travature è determinata dai
valori di beatBase
e beatStructure
.
Disposizione delle travature basata su beatBase
e beatStructure
Dato che le indicazioni di tempo più comuni hanno delle regole beamExceptions
già definite, occorre disabilitarle se la disposizione automatica deve basarsi
su beatBase
e beatStructure
. Le regole beamExceptions
si
disabilitano con questo comando
\set Timing.beamExceptions = #'()
Quando beamExceptions
è impostato su #'()
, o per
impostazione esplicita o perché non sono state definite internamente
le beamExceptions
per l’indicazione di tempo corrente, le
estremità delle travature si trovano sulle suddivisioni come specificato
dalle proprietà di contesto beatBase
e
beatStructure
. beatStructure
è una lista Scheme
che definisce la lunghezza di ogni suddivisione in rapporto alla misura in unità
di beatBase
. Per impostazione predefinita, beatBase
è uno fratto il denominatore dell’indicazione di tempo e ogni unità
di beatBase
corrisponde a una singola suddivisione.
Per ogni indicazione di tempo esistono valori separati per beatStructure
e beatBase
. Le modifiche di queste variabili hanno effetto solo
sulle indicazioni di tempo attive, dunque tali modifiche devono essere
poste dopo il comando \time
che inizia una nuova indicazione di
tempo, non prima. I nuovi valori assegnati a una certa indicazione di
tempo sono mantenuti e reintrodotti ogni volta che quell’indicazione di
tempo viene ristabilita.
\relative c''{ \time 5/16 c16^"predefinito" c c c c | % È improbabile che per un tempo di 5/16 sia stata definita beamExceptions, % ma disabilitiamola lo stesso per sicurezza \set Timing.beamExceptions = #'() \set Timing.beatStructure = 2,3 c16^"(2+3)" c c c c | \set Timing.beatStructure = 3,2 c16^"(3+2)" c c c c | }
\relative { \time 4/4 a'8^"predefinito" a a a a a a a % Disabilita beamExceptions perché è senz'altro definita % per il tempo 4/4 \set Timing.beamExceptions = #'() \set Timing.beatBase = #1/4 \set Timing.beatStructure = 1,1,1,1 a8^"cambiato" a a a a a a a }
Le modifiche alle impostazioni delle travature possono essere limitate a contesti specifici. Se non si specifica alcuna impostazione in un contesto di livello più basso, verrà applicata l’impostazione del contesto che lo contiene.
\new Staff { \time 7/8 % Nessun bisogno di disabilitare beamExceptions perché non è definita per il tempo 7/8 \set Staff.beatStructure = 2,3,2 << \new Voice = one { \relative { a'8 a a a a a a } } \new Voice = two { \relative { \voiceTwo \set Voice.beatStructure = 1,3,3 f'8 f f f f f f } } >> }
Quando si usano più voci, occorre specificare il contesto Staff
se
si vuole applicare la disposizione delle travature a tutte le voci del
rigo:
\time 7/8 % ritmo 3-1-1-2 % Se non si specifica il contesto, la modifica viene applicata a Voice e quindi non funziona correttamente % Dato che le voci sono autogenerate, tutto il ritmo avrà come beatBase #1/8 \set beatStructure = 3,1,1,2 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >> % Funziona correttamente se si specifica il contesto Staff \set Staff.beatStructure = 3,1,1,2 << \relative {a'8 a a a16 a a a a8 a} \\ \relative {f'4. f8 f f f} >>
Il valore di beatBase
può essere regolato in modo da
cambiare il comportamento delle travature, se si vuole. In questo caso
occorre cambiare anche il valore di beatStructure
così che sia
compatibile col nuovo valore di beatBase
.
\time 5/8 % Nessun bisogno di disabilitare beamExceptions perché non è definita per il tempo 5/8 \set Timing.beatBase = #1/16 \set Timing.beatStructure = 7,3 \repeat unfold 10 { a16 }
Per impostazione predefinita, beatBase
ha un valore di uno fratto il
denominatore dell’indicazione di tempo. Le eccezioni a questa regola si
trovano in scm/time-signature-settings.scm.
Disposizione delle travature con beamExceptions
Le regole speciali di disposizione automatica delle travature (diverse da quelle
che determinano la corrispondenza della travatura alla suddivisione) sono definite
nella proprietà beamExceptions
.
Il valore di beamExceptions
, una struttura dati Scheme piuttosto
complessa, è più facile da generare con la funzione \beamExceptions
.
A tale funzione viene passato uno o più schemi ritmici della misura,
specificati con travature manuali. Le misure devono essere separate da
un controllo di battuta |
dato che la funzione non ha altro
modo per determinare la lunghezza della misura. Ecco un semplice esempio:
\relative c'' { \time 3/16 \set Timing.beatStructure = 2,1 \set Timing.beamExceptions = \beamExceptions { 32[ 32] 32[ 32] 32[ 32] } c16 c c | \repeat unfold 6 { c32 } | }
Nota: Il valore di beamExceptions
deve essere una lista completa
di eccezioni, ovvero bisogna includere tutte le eccezioni che si vogliono
applicare. Non è possibile aggiungere, rimuovere o modificare soltanto
una eccezione. Anche se questo può sembrare scomodo, significa anche che
non c’è bisogno di conoscere le attuali impostazioni delle travature per
poter specificare un nuovo modello di disposizione delle travature.
Quando cambia l’indicazione di tempo, vengono impostati i valori predefiniti
di Timing.beatBase
, Timing.beatStructure
e
Timing.beamExceptions
. L’impostazione dell’indicazione di tempo
ripristina le impostazioni automatiche delle travature del contesto Timing
ai valori predefiniti.
\relative a' { \time 6/8 \repeat unfold 6 { a8 } % raggruppamento (4 + 2) \set Timing.beatStructure = 4,2 \repeat unfold 6 { a8 } % ritorno al comportamento predefinito \time 6/8 \repeat unfold 6 { a8 } }
Le impostazioni predefinite della disposizione automatica delle travature per ogni tempo sono definite in scm/time-signature-settings.scm. La loro modifica è descritta in Indicazione di tempo.
Molte impostazioni di travature automatiche per le indicazioni di tempo hanno
un elemento beamExceptions
. Ad esempio, il tempo 4/4 cerca di creare
due travature nella misura se ci sono solo note di un ottavo. La regola
beamExceptions
può sovrascrivere l’impostazione di beatStructure
se beamExceptions
non viene annullato.
\time 4/4 \set Timing.beatBase = #1/8 \set Timing.beatStructure = 3,3,2 % Le travature non saranno raggruppate in (3 3 2) a causa di beamExceptions \repeat unfold 8 {c8} | % Il raggruppamento delle travature è (3 3 2) perché abbiamo tolto le impostazioni predefinite di beamExceptions \set Timing.beamExceptions = #'() \repeat unfold 8 {c8}
Analogalmente, le note di un ottavo in un tempo 3/4 sono raggruppate in
un’unica travatura. Per raggrupparle secondo le suddivisioni, azzera beamExceptions
.
\time 3/4 % il comportamento predefinito è un gruppo di (6) a causa di beamExceptions \repeat unfold 6 {a8} | % Le travature saranno raggruppate in (1 1 1) a causa dei valori predefiniti di beatBase e beatStructure \set Timing.beamExceptions = #'() \repeat unfold 6 {a8}
Spesso, nelle partiture di età classica e romantica, le travature
iniziano a metà della misura in un tempo 3/4; ma la pratica moderna
preferisce evitare l’impressione ingannevole di un tempo 6/8 (vedi Gould, p. 153).
Situazioni simili si incontrano anche per il tempo 3/8. Questo comportamento è
controllato dalla proprietà di contesto beamHalfMeasure
, che ha effetto
soltanto sulle indicazioni di tempo che hanno 3 come numeratore:
\relative a' { \time 3/4 r4. a8 a a | \set Timing.beamHalfMeasure = ##f r4. a8 a a | }
Come funziona la disposizione automatica delle travature
Quando la disposizione automatica delle travature è abilitata, la disposizione
delle travature è determinata dalle proprietà di contesto
beatBase
, beatStructure
e beamExceptions
.
Nel determinare l’aspetto delle travature vengono applicate le seguenti regole, in ordine di priorità:
- Se si specifica una travatura manuale con
[…]
imposta la travatura in quel modo, altrimenti - se è definita una regola di fine della travatura in
beamExceptions
per il tipo di travatura in questione, la usa per determinare i punti corretti in cui le travature possono terminare, altrimenti - se è definita una regola di fine della travatura in
beamExceptions
per un tipo di travatura più lunga, la usa per determinare i punti corretti in cui le travature possono terminare, altrimenti - usa i valori di
beatBase
ebeatStructure
per determinare l’estensione delle suddivisioni della misura e terminare le travature alla fine delle suddivisioni.
Nelle regole precedenti, il tipo di travatura è la durata della nota più corta nel gruppo della travatura.
Le regole predefinite per le travature si trovano in scm/time-signature-settings.scm.
Frammenti di codice selezionati
Suddividere le travature
Le travature di note consecutive di un sedicesimo (o più brevi) non
vengono suddivise, ovvero i tre (o più) tratti della travatura si
estendono, senza spezzarsi, sugli interi gruppi di note.
Questo comportamento può essere modificato in modo da suddividere le
travature in sottogruppi attraverso la proprietà
subdivideBeams
. Se impostata, le travature che comprendono più
sottogruppi verranno suddivise a intervalli definiti dal
valore attuale di beatBase
, riducendo le travature multiple
al numero di travature che indica il valore metrico della suddivisione.
Se il gruppo successivo alla suddivisione è più breve del valore
metrico corrente (di solito perché la travatura è incompleta), il
numero di travature riflette il gruppo di suddivisione più lungo
possibile. Tuttavia, se rimane una sola nota dopo la divisione, questa
restrizione non viene applicata.
Si noti che beatBase
, se non impostata
esplicitamente, equivale a uno fratto il denominatore dell’attuale
indicazione di tempo. Deve quindi essere impostata su una frazione
che stabilisca la durata del sottogruppo di travature; lo si può fare
usando la funzione ly:make-moment
, come è mostrato in questo
frammento di codice. Inoltre quando beatBase
cambia, anche
beatStructure
deve essere modificato per accordarsi con
beatBase
:
\relative c'' { c32[ c c c c c c c] \set subdivideBeams = ##t c32[ c c c c c c c] % Set minimum beam subdivision interval to 1/8 just for this beam \once \set minimumBeamSubdivisionInterval = \musicLength 8 c32[ c c c c c c c] % Set maximum beam subdivision interval to 1/16 just for this beam \once \set maximumBeamSubdivisionInterval = \musicLength 16 c32[ c c c c c c c] % Set maximum beam subdivision interval to 3/8 just for this beam \once \set maximumBeamSubdivisionInterval = \musicLength 8*3 [ \repeat unfold 16 c64 ] r2. % Set maximum beam subdivision interval to 1/64 to limit subdivision depth, % despite not being metrically correct \once \set minimumBeamSubdivisionInterval = \musicLength 32 \once \set maximumBeamSubdivisionInterval = \musicLength 64 [ \repeat unfold 32 c128 ] r2. % Shorten beam by 1/32 c32[ c c c c c c] r32 % Shorten beam by 3/32 c32[ c c c c] r16. % Respect the incomplete beams of the previous two examples \set respectIncompleteBeams = ##t c32[ c c c c c c] r32 % no visual change here as last two stems are exempt from this % special rule c32[ c c c c] r16. }
Travatura che segue strettamente il battito
Si possono impostare i tratti di suddivisione della travatura in modo che siano rivolti verso la relativa pulsazione. La prima travatura fa sì che non spuntino i tratti di suddivisione (comportamento predefinito); la seconda travatura è orientata verso la pulsazione.
\relative c'' { \time 6/8 a8. a16 a a \set strictBeatBeaming = ##t a8. a16 a a }
Segni per la conduzione, segni di raggruppamento della misura
Il raggruppamento delle pulsazioni all’interno della misura è regolato dalla
proprietà di contesto beatStructure
. I valori di beatStructure
per
varie indicazioni di tempo vengono stabiliti in scm/time-signature-settings.scm
.
Questi valori possono essere impostati o modificati con \set
. Altrimenti, si
può usare \time
per impostare sia l’indicazione di tempo che la struttura
delle pulsazioni. Per farlo si specifica il raggruppamento interno delle pulsazioni in
una misura in una lista di numeri (nella sintassi di Scheme) prima dell’indicazione
di tempo.
\time
agisce nel contesto Timing
, dunque non reimposterà i
i valori di beatStructure
e beatBase
che sono impostati in
altri contesti di più basso livello, come Voice
.
Se si include l’incisore Measure_grouping_engraver
in uno dei
contesti che regolano l’aspetto, appariranno i segni di raggruppamento
della misura. Tali segni facilitano la lettura di musica moderna ritmicamente
complessa.
Nell’esempio la misura di 9/8 è raggruppata in due diversi schemi usando
due metodi differenti, mentre la misura di 5/8 è raggruppata in base alle
impostazioni predefinite in scm/time-signature-settings.scm
:
\score { \new Voice \relative c'' { \time 9/8 g8 g d d g g a( bes g) | \set Timing.beatStructure = 2,2,2,3 g8 g d d g g a( bes g) | \time 4,5 9/8 g8 g d d g g a( bes g) | \time 5/8 a4. g4 | \time 3,3,2 4/4 \set Timing.beatBase = #1/8 f4 d8 f4 d8 g4 } \layout { \context { \Staff \consists "Measure_grouping_engraver" } } }
Estremità delle travature nel contesto Score
Le regole relative alle estremità delle travature definite nel contesto Score
si applicano a tutti i righi, ma possono essere modificate anche ai livelli
Staff
e Voice
:
\relative c'' { \time 5/4 % Set default beaming for all staves \set Score.beatBase = #1/8 \set Score.beatStructure = 3,4,3 << \new Staff { c8 c c c c c c c c c } \new Staff { % Modify beaming for just this staff \set Staff.beatStructure = 6,4 c8 c c c c c c c c c } \new Staff { % Inherit beaming from Score context << { \voiceOne c8 c c c c c c c c c } % Modify beaming for this voice only \new Voice { \voiceTwo \set Voice.beatStructure = 6,4 a8 a a a a a a a a a } >> } >> }
Vedi anche
Guida alla notazione: Indicazione di tempo.
File installati: scm/time-signature-settings.scm.
Frammenti di codice: Rhythms.
Guida al funzionamento interno: Auto_beam_engraver, Beam, BeamForbidEvent, beam-interface.
Problemi noti e avvertimenti
Se una partitura finisce prima del termine di una travatura automatica, cui
mancano ancora delle note, quest’ultima travatura non apparirà.
Lo stesso vale per le voci polifoniche, inserite con
<< … \\ … >>
. Una voce polifonica non apparirà se termina
quando una travatura automatica è ancora in attesa di note.
Per aggirare questi problemi occorre impostare manualmente l’ultima travatura
della voce o della partitura.
Timing
è un alias del contesto Score
. Questo significa che
la modifica della disposizione delle travature in un rigo avrà effetto anche
sugli altri righi.
Quindi un’impostazione di tempo in un rigo successivo reimposterà la disposizione
personalizzata delle travature definita in un rigo precedente.
Per evitare questo problema si può impostare l’indicazione di tempo su
un solo rigo.
<< \new Staff { \time 3/4 \set Timing.beatBase = #1/8 \set Timing.beatStructure = 1,5 \set Timing.beamExceptions = #'() \repeat unfold 6 { a'8 } } \new Staff { \repeat unfold 6 { a'8 } } >>
Si possono cambiare anche le impostazioni predefinite delle travature, in modo che sia usata sempre la disposizione delle travature desiderata. Le modifiche nelle impostazioni della travatura automatica per le indicazioni di tempo sono descritte in Indicazione di tempo.
<< \new Staff { \overrideTimeSignatureSettings 3/4 % timeSignatureFraction #1/8 % beatBase 1,5 % beatStructure #'() % beamExceptions \time 3/4 \repeat unfold 6 { a'8 } } \new Staff { \time 3/4 \repeat unfold 6 { a'8 } } >>
[ << Notazione musicale ] | [Top][Contents][Index] | [ Notazione specialistica >> ] |
[ < Travature automatiche ] | [ Up : Travature ] | [ Travature manuali > ] |