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