4.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 d’« 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).
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 et que nous serons amenés à utiliser dans ce chapitre.