5.3.5 \set vs. \override

I comandi \set e \override manipolano le proprietà associate ai contesti. In entrambi i casi, le proprietà seguono una gerarchia dei contesti; proprietà non impostate in un contesto mostreranno i valori del rispettivo contesto padre.

La durata e il valore di una proprietà di contesto sono dinamici e disponibili soltanto mentre la musica viene interpretata (ovvero ‘reiterata’). Nel momento della creazione del contesto, le proprietà sono inizializzate a partire dalle definizioni corrispondenti (insieme a altre modifiche) di quel contesto. Qualsiasi modifica successiva viene fatta con dei comandi di impostazione della proprietà presenti nella musica stessa.

Le definizioni degli oggetti grafici (o “grob”) sono una categoria speciale di proprietà di contesto, perché la loro struttura e uso sono diversi da quelli delle normali proprietà di contesto. Diversamente da quest’ultime, le definizioni dei grob sono suddivise in proprietà dei grob.

Inoltre, diversamente dalle normali proprietà di contesto, le definizioni dei grob hanno una loro ‘contabilità’ interna usata per tenere traccia delle loro individuali proprietà e sottoproprietà. Ciò significa che è possibile definire queste parti in contesti diversi e avere sempre a disposizione la definizione complessiva del grob nel momento della sua creazione, assemblata da tutti i pezzi compresi tra il contesto corrente e i suoi contesti superiori.

Un grob viene solitamente creato da un incisore nel momento in cui l’espressione musicale viene interpretata e riceve le sue proprietà iniziali dalla definizione del grob corrente del contesto dell’incisore. L’incisore (o altre parti del ‘backend’ di LilyPond) può successivamente cambiare (o aggiungere) le proprietà iniziali del grob, ma ciò non ha effetto sulla definizione di grob del contesto.

Ciò che LilyPond chiama ‘proprietà del grob’ nel contesto delle modifiche a livello di utente sono in realtà le proprietà della definizione di grob di un contesto.

Le definizioni di grob sono manipolate con \override e \revert e hanno un nome che inizia con una lettera maiuscola (come ‘NoteHead’), mentre le normali proprietà di contesto sono manipolate con \set e \unset e il loro nome inizia con una lettera minuscola.

I comandi \tweak e \overrideProperty modificano le proprietà dei grob bypassando completamente tutte le proprietà di contesto. Catturano i grob mentre vengono creati, impostando le loro proprietà per un evento musicale (\tweak) o, nel caso di \overrideProperty, per una sovrascrittura specifica.


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