1 %% Translation of GIT committish: f7a3d8cf31367398a1955c50d3c42216d8940989
3 Une partition LilyPond, de manière interne, n'est rien d'autre qu'une
4 expression Scheme générée par l'analyseur syntaxique de LilyPond. Il
5 est donc possible, à l'aide de Scheme, de générer automatiquement une
6 partition sans fichier source. Une expression musicale en Scheme sera
7 transformée en partition par un appel à @code{(scorify-music music)}.
8 Ceci aura pour effet de générer un objet @code{score} auquel sera
9 appliqué un bloc @code{layout} comportant la fonction
12 (let* ((layout (ly:output-def-clone $defaultlayout)))
13 ; modification de la mise en forme, puis assignation :
14 (ly:score-add-output-def! score layout)
18 Il suffit alors de transmettre ce @code{score} à lilypond pour qu'il le
19 grave. Les trois fonctions -- @code{(add-score score)},
20 @code{(add-text text)} et @code{(add-music music)} -- définies dans le
21 code ci-dessous permettent de transmettre à lilypond, aux fins de les
22 graver, une partition complète, un @emph{markup} ou simplement de la
25 Cet exemple permet aussi de graver les pièces contenues dans un bloc
26 @code{\\book@{@dots{}@}} ainsi que des partitions de niveau supérieur.
27 Chaque partition destinée à être gravée est alors ajoutée à la liste des
28 partitions de niveau supérieur ; le @code{toplevel-book-handler} --
29 fonction Scheme appelée pour traiter un @emph{book} dès que le bloc
30 @code{\\book@{@dots{}@}} est clôturé -- s'adapte pour prendre en charge
31 tous les éléments @code{score} jusque là collectés dans l'ouvrage.
34 doctitlefr = "Génération en Scheme de partitions complètes (y compris des parties d'ouvrage) sans utiliser l'analyseur"