5.1.2 Objets et interfaces

Toute retouche implique que l’on modifie les opérations internes et les structures du programme LilyPond. Nous allons donc, pour commencer, présenter certains termes qui servent à décrire ces opérations internes et ces structures.

Le terme « Objet » est un terme générique qui fait référence à une multitude de structures internes mises en place par LilyPond durant la compilation d’un fichier d’entrée. Ainsi, quand une commande du type \new Staff apparaît, un nouvel objet du type Staff est créé. Cet objet Staff contient alors toutes les propriétés associées à cette portée, par exemple son nom et son armure, ainsi que le détail des graveurs qui ont été désignés pour fonctionner dans ce contexte de portée. Certains objets peuvent contenir les propriétés de tous les autres contextes, comme les objets Voice, les objets Score, les objets Lyrics ; d’autres se rapportent à tous les éléments de notation, comme les barres de mesure, les liaisons, les nuances, etc. Chaque objet dispose de son propre échantillon de valeurs pour le réglage des propriétés.

Certains types d’objet portent des noms spécifiques. Les objets qui se rapportent à des éléments de notation sur le fichier de sortie, comme les notes, les hampes, les liaisons de phrasé ou de prolongation, les doigtés, les clefs, etc. sont appelés « Objets de rendu » ; ils sont aussi connus sous le nom « d’Objets graphiques » (en anglais : Graphical objects ou Grobs pour faire court). Ce sont bien des objets au sens générique ci-dessus et, en tant que tels, ils reçoivent des propriétés qui leur sont associées, comme leur position, leur taille, leur couleur, etc.

Certains objets de rendu, comme les liaisons de phrasé, les soufflets de crescendo, les marques d’octaviation et beaucoup d’autres grobs, ont pour particularité de ne pas se situer à un seul et unique endroit – ils ont un point de départ, un point d’arrivée, et éventuellement d’autres propriétés relatives à leur forme. Ces objets avec une forme étendue sont appelés des bandeaux (Spanners en anglais).

Les bandeaux ne peuvent être retouchés après leur création. Ceci inclut les StaffSymbol et LedgerLineSpanner qui se déroulent tout au long de la partition – à moins qu’ils n’aient été rompus par une commande \stopStaff puis créés de nouveau à l’aide de la commande \startStaff.

De plus existent certains grobs que l’on peut qualifier « d’astraits ». Ils n’ont pas pour fonction intrinsèque d’imprimer quelque chose, mais plutôt de collecter, positionner et gérer d’autres objets. Citons, parmi les plus courants, DynamicLineSpanner, BreakAlignment, NoteColumn, VerticalAxisGroup, NonMusicalPaperColumn. Nous verrons plus avant comment les utiliser.

Il reste à expliquer ce que sont les « interfaces ». De nombreux objets, qui peuvent être très différents les uns des autres, ont pour point commun de devoir être compilés simultanément. Par exemple, tous les grobs ont une couleur, une taille, une position, etc. et toutes ces propriétés sont compilées simultanément durant l’interprétation du fichier d’entrée par LilyPond. Pour alléger ces opérations internes, ces actions et propriétés communes sont regroupées en un objet appelé grob-interface. Il existe beaucoup d’autres regroupements de propriétés communes dans le genre de celui-ci, chacun portant un nom qui se termine par interface. En tout, on en compte plus d’une centaine. Nous verrons plus loin en quoi c’est intéressant et utile pour l’utilisateur.

Ainsi s’achève le tour des principaux termes relatifs aux objets que nous serons amenés à utiliser dans ce chapitre.


LilyPond — Manuel d’initiation v2.23.82 (branche de développement).