Manual d'aprenentatge del GNU LilyPond: 4.1.2 Objectes i interfícies

### 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.

#### LilyPond — Manual d’aprenentatge v2.22.2 (branca estable).