Suivant : , Précédent : Gravure, Haut : Introduction


1.2 Gravure automatisée

Comment pouvons-nous implémenter la typographie ? Si les artisans ont besoin de plus de dix ans pour devenir de vrais maîtres, comment nous, simples programmeurs, pourrions-nous jamais écrire un programme pour faire leur travail?

La réponse est : nous ne le pouvons pas. La typographie se base sur le jugement visuel humain, donc les humains ne peuvent pas être complètement remplacés. Si LilyPond arrive à résoudre la plupart des situations correctement, ce sera déjà une grande avancée sur les logiciels existants. Les autres situations peuvent être résolues à la main. Au fil des ans, le logiciel peut être affiné pour faire de plus en plus de choses automatiquement, pour que les ajustements manuels soient de moins en moins nécessaires.

Quand nous avons commencé, nous avons écrit le programme Lilypond entièrement dans le language de programmation C++ ; les fonctions du programme étaient figées par les développeurs. Ceci s'est avéré insatisfaisant pour plusieurs raisons :

Ces problèmes ont été résolus en intégrant un interpréteur pour le language de programmation Scheme, et en réécrivant des parties de LilyPond en Scheme. L'architecture actuelle de formatage est construite autour de la notion d'objets graphiques, décrits par des fonctions et des variables Scheme. Cette architecture comprend les règles de formatage, le style typographique, et des décisions individuelles de formatage. L'utilisateur a un accès direct à la plupart de ces contrôles.

Les variables Scheme contrôlent les décisions de mise en page. Par exemple, beaucoup d'objets graphiques ont une variable de direction qui encode le choix entre haut et bas (ou gauche et droite). Vous pouvez voir ici deux accords, avec des accents, et des arpèges. Dans le premier accord, les objets graphiques sont tous dirigés vers le bas (ou la gauche). Dans le second accord ils sont tous dirigés vers le haut (droite).

[image of music]

Le processus de formatage d'une partition consiste à lire et écrire les variables d'objets graphiques. Certaines variables ont une valeur prédéfinie. Par exemple, l'épaisseur d'un grand nombre de lignes – une caractéristique du style typographique – est une variable avec une valeur prédéfinie. Vous êtes libres d'altérer cette valeur, ce qui vous donne une partition avec une impression typographique différente.

[image of music]

Les règles de formatage ont aussi des variables prédéfinies : chaque objet possède des variables contenant des procédures. Ces procédures exécutent le formatage, et en les substituant par d'autres, nous pouvons changer l'apparence des objets. Dans l'exemple suivant, la règle du choix de têtes de notes est changée au cours de l'extrait de musique.

[image of music]



Suivant : , Précédent : Gravure, Haut : Introduction

This page is for LilyPond-2.10.33 (stable-branch).

Report errors to http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.

Other languages: English.