5.1.4 Modifica dei componenti aggiuntivi di un contesto
I contesti della notazione (come Score
e Staff
) non contengono
solo le proprietà, ma anche dei componenti aggiuntivi chiamati “engraver”
(incisori) che creano gli elementi della notazione. Per esempio, il contesto
Voice
contiene l’incisore Note_heads_engraver
e il contesto
Staff
contiene l’incisore Key_engraver
.
Una descrizione completa di ogni componente aggiuntivo si trova in Engravers and Performers. Ogni contesto descritto in Contexts elenca gli incisori usati per quel contesto.
Può essere utile sperimentare questi componenti aggiuntivi. Per farlo si
avvia un nuovo contesto con \new
o \context
e si modifica:
\new contesto \with { \consists … \consists … \remove … \remove … etc. } { …musica… }
dove ogni … deve essere sostituito dal nome di un incisore. Il comando
\remove
toglie l’incisore, mentre \consists
lo mantiene.
Ecco un semplice esempio che toglie l’incisore dell’indicazione di tempo
(Time_signature_engraver
) e quello della chiave (Clef_engraver
)
da un contesto Staff
:
<< \new Staff \relative { f'2 g } \new Staff \with { \remove Time_signature_engraver \remove Clef_engraver } \relative { f'2 g2 } >>
Nel secondo rigo non ci sono indicazioni di tempo né simboli della chiave. Questo è un metodo piuttosto grezzo per far scomparire gli oggetti, dato che ha effetto sull’intero rigo. Questo metodo influenza anche la spaziatura, cosa che potrebbe non essere desiderabile. Metodi più sofisticati per nascondere gli oggetti sono mostrati in Visibilità e colore degli oggetti.
L’esempio successivo mostra un’applicazione pratica. Le stanghette e le
indicazioni di tempo sono normalmente sincronizzate al livello dell’intera
partitura. Ciò viene fatto da Timing_translator
e
Default_bar_line_engraver
. Questo componente aggiuntivo gestisce
le indicazioni di tempo, il posizionamento nella misura, etc. Spostando
questi incisori dal contesto Score
al contesto Staff
, possiamo
ottenere una partitura in cui ogni rigo ha la sua indicazione di tempo.
\score { << \new Staff \with { \consists Timing_translator } \relative { \time 3/4 c''4 c c c c c } \new Staff \with { \consists Timing_translator } \relative { \time 2/4 c''4 c c c c c } >> \layout { \context { \Score \remove Timing_translator } } }
Problemi noti e avvertimenti
L’ordine in cui vengono specificati gli incisori è l’ordine in cui vengono richiamati per compiere la loro elaborazione. Di solito l’ordine in cui gli incisori sono specificati non conta, ma in pochi casi speciali l’ordine è importante, per esempio quando un incisore scrive una proprietà e un altro la legge o quando un incisore crea un grob e un altro lo deve elaborare.
I seguenti ordini sono importanti:
- l’incisore
Bar_engraver
deve essere primo di solito, - l’incisore
New_fingering_engraver
deve precedere l’incisoreScript_column_engraver
, -
Timing_translator
deve precedere l’incisoreBar_number_engraver
.
Vedi anche
File installati: ly/engraver-init.ly.