Une architecture de programme flexible
Vous souvenez-vous du problème de la notation musicale ? Sa solution nous apporte un ensemble d'objets. L'architecture du programme est basée sur ces objets. À chacun de ces objets sont associées des variables :
- La mise en page dépend des variables. Par exemple, la variable
direction, définie pour de nombreux objets, encode le choix
entre haut et bas (ou gauche et droite). L'image qui suit présente
deux accords, accentués et arpégés. Pour le premier accord, la direction
de chaque objet est vers le bas (ou la gauche). Les objets sont dirigés
vers le haut (ou la droite) pour le second.
Le processus de mise en forme d'une partition consiste à lire et écrire des variables d'objets.
- Certaines variables ont une valeur prédéfinie. Par exemple,
l'épaisseur de nombreuses lignes – caractéristiques d'un style
typographique – est préétablie. La changer entraîne un
changement du style typographique.
- Les valeurs prédéfinies de certaines variables font aussi partie
des règles de formatage. Chaque objet possède des variables contenant
des procédures. Ces procédures réalisent le formatage prédéfini, dont
l'apparence peut être changée en remplaçant ces procédures par d'autres.
Dans l'exemple suivant, la règle permettant à l'objet
« tête de note »
de dessiner son symbole est modifiée au cours de l'extrait musical :
Suite : Nombres de beauté : comment LilyPond participe au concours Miss Monde.