4.1.2 Objectes i interfícies
L’ajustament consisteix en modificar el funcionament i estructure interna del programa LilyPond, per la qual cosa en primer lloc introduirem alguns termes que es fan servir per descriure aquestes operacions i estructures internes.
El terme ‘Objecte’ és un terme genèric que s’usa per referir-se
A les múltiples estructures que el LilyPond construeix durant el
processat d’un fitxer d’entrada. D’aquesta manera, quan es troba
una instrucció com ara \new Staff
, es construeix un objecte
nou de tipus Staff
. Aleshores, aquest objecte Staff
conté totes les propietats associades amb aquest pentagrama en
particular, per exemple, el seu nom i armadura, a més d’altres
detalls dels gravadors que s’han assignat perquè operin dins del
context del pentagrama. De forma semblant, hi ha objectes que
emmagatzemen les propietats de tota la resta de contextos, com ara
objectes de Voice
, objectes de Score
, objectes de
Lyrics
, així com objectes que representen tots els elements
de notació com ara línies divisòries, caps de les notes,
lligadures, indicacions dinàmiques, etc. Cada objecte té el seu
propi conjunt de valors de propietat.
Certs tipus d’objectes reben noms especials. Els objectes que representen elements de notació sobre la sortida impresa com ara caps de notes, pliques, lligadures d’expressió i d’unió, digitacions, claus, etc., reben el nom de ‘Objectes de presentació’, sovint coneguts com ‘Objectes gràfics’, o abreujadament ‘Grobs’. Encara són objectes, en el sentit genèric que hem mencionat, i també tots ells tenen propietats associades, com la seva posició, mida, color, etc.
Certs objectes de presentació són encara més especialitzats, Les lligadures de fraseig, els reguladores, les indicacions d’octava alta i baixa, i mols altres objectes gràfics no estan situats en un sol lloc: tenen un punt d’inici, un punt final, i un potser altres propietats relacionades amb la seva forma. Els objectes amb una forma estesa com aquests, reben el nom d’«objectes d’extensió» o ‘Spanners’.
Els «spanners» no es poden ajustar després d’haver-se creat. Això
inclou tant a StaffSymbol
com a LedgerLineSpanner
,
que continuen al llarg de tota la partitura (excepte si si se’ls
dóna fi amb l’ordre \stopStaff
i es tornen a crear amb
l’ordre \startStaff
.
Encara més, hi ha objectes gràfics ‘abstractes’ que no
imprimeixen res per sí mateixos, sinó que en realitat el que fan
és que recopilen, posicionen i gestionen a altres objectes
gràfics. El exemples habituals són DynamicLineSpanner
,
BreakAlignment
, NoteColumn
,
VerticalAxisGroup
, NonMusicalPaperColumn
i
semblants. Més tard veurem com s’usen alguns d’ells.
Encara falta explicar què són les ‘Interfícies’. Molts
objectes, tot i que són força diferents, comparteixen
funcionalitats que s’han de processar de la mateixa manera. Per
exemple, tots els objectes gràfics tenen un color, una mida, una
posició, etc., i totes aquestes propietats es processen de la
mateixa forma durant la interpretació del fitxer d’entrada per
part del LilyPond. Per simplificar aquestes operacions internes,
aquestes accions i propietats comunes s’agrupen a un objecte
anomenat grob-interface
, interfície d’objecte gràfic. Hi ha
moltes altres agrupacions de propietats comunes com aquesta, i
cadascuna rep un nom que acaba en interface
. En total hi
ha més de 100 interfícies d’aquestes. Veurem més endavant perquè
és interessant i d’utilitat per a l’usuari.
Aquests són, en definitiva, els termes principals relatius als objectes que utilitzarem a aquest capítol.
Altres idiomes: English, česky, deutsch, español, français, italiano, 日本語, nederlands.
Quant a la selecció automàtica de la llengua.