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

[image of music]

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

[image of music]

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:

Vedi anche

File installati: ly/engraver-init.ly.


Guida alla Notazione di LilyPond v2.25.22 (development-branch).