Guida alla Notazione di LilyPond: 5.1.4 Modifica dei componenti aggiuntivi di un contesto

### 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’incisore `Script_column_engraver`,
- `Timing_translator` deve precedere l’incisore `Bar_number_engraver`.

#### Vedi anche

File installati: ‘`ly/engraver-init.ly`’.

#### LilyPond — Guida alla Notazione v2.24.4 (ramo stabile).