[ << Modifica dell'output ] | [Inizio][Contenuti][Indice] | [ Modelli >> ] |
[ < Introduzione alle modifiche ] | [ Su : Modifiche di base ] | [ Convenzioni per i nomi di oggetti e proprietà > ] |
5.1.2 Oggetti e interfacce
I tweak implicano la modifica delle operazioni e delle strutture interne del programma LilyPond, dunque per prima cosa bisogna introdurre alcuni termini usati per descriverle.
Il termine ‘Oggetto’ è un termine generico che si riferisce all’insieme
di strutture interne create da LilyPond durante l’elaborazione
di un file di input. Quando incontra un comando come \new
Staff
, LilyPond crea un nuovo oggetto di tipo Staff
(un rigo). Questo
oggetto Staff
possiede tutte le proprietà associate a
quel rigo, come ad esempio il suo nome e la sua armatura di chiave,
insieme ai dettagli relativi agli incisori assegnati per operare all’interno
del contesto di quel rigo. Analogalmente, ci sono oggetti che hanno
le proprietà di tutti gli altri contesti, come gli oggetti Voice
,
gli oggetti Score
, gli oggetti Lyrics
e gli oggetti che
rappresentano tutti gli elementi della notazione, come le stanghette,
le teste di nota, le legature di valore, le dinamiche, etc. A ogni
oggetto corrisponde un relativo insieme di valori di proprietà.
Alcuni tipi di oggetto hanno dei nomi speciali. Gli oggetti che rappresentano elementi della notazione visibili nell’output come le teste di nota, i gambi, le legature di portamento e di valore, le diteggiature, le chiavi, etc. sono chiamati «Oggetti di formattazione» (in inglese Layout Objects). Sono chiamati anche «Oggetti grafici» (in inglese Graphical Objects o Grob per brevità). Si tratta sempre di oggetti nel senso generico descritto prima e quindi hanno tutti delle proprietà a loro associate, come la posizione, la dimensione, il colore, etc.
Alcuni oggetti di formattazione sono ancora più specializzati. Le legature di frase, le forcelle del crescendo, i segni di ottava e molti altri ‘grob’ non sono localizzati in un punto preciso – hanno invece un punto iniziale, un punto finale e talvolta altre proprietà relative alla loro forma. Gli oggetti che hanno una forma estesa in questo modo vengono chiamati «Estensori» (in inglese Spanner).
Gli estensori non possono essere modificati dopo la loro creazione. Tra questi
sia StaffSymbol
che LedgerLineSpanner
, che continuano nel corso
della partitura, a meno che non siano terminati dal comando \stopStaff
e
poi ricreati col comando \startStaff
.
Esistono anche dei grob ‘astratti’ che non stampano niente da soli, bensì
raccolgono, posizionano e gestiscono altri grob. Esempi comuni sono
DynamicLineSpanner
, BreakAlignment
, NoteColumn
,
VerticalAxisGroup
, NonMusicalPaperColumn
e simili. Vedremo
in seguito come si usano alcuni di questi.
Resta da spiegare cosa sono le «Interfacce». Molti oggetti, pur essendo
piuttosto diversi, condividono delle caratteristiche comuni che devono
essere elaborate nello stesso modo. Ad esempio, tutti i grob hanno un
colore, una dimensione, una posizione, etc.; tutte queste proprietà vengono
elaborate nello stesso modo durante l’interpretazione del file di input. Per
semplificare queste operazioni interne, le azioni e proprietà comuni
sono riunite in un oggetto chiamato grob-interface
.
Esistono molti altri raggruppamenti di proprietà comuni come queste, ognuno
con un nome che finisce con interface
. In totale ci sono più di
100 interfacce. Vedremo in seguito perché questo sia di interesse
e di utilità per l’utente.
Questi sono dunque i termini principali riguardanti gli oggetti che useremo in questo capitolo.
[ << Modifica dell'output ] | [Inizio][Contenuti][Indice] | [ Modelli >> ] |
[ < Introduzione alle modifiche ] | [ Su : Modifiche di base ] | [ Convenzioni per i nomi di oggetti e proprietà > ] |