X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fsnippets%2Fdefining-an-engraver-in-scheme--ambitus-engraver.ly;h=f6f6672e2ce669a8085db006695cb9eb27338252;hb=c4c1512a79d84d8d1acffa663c588b617a4dead8;hp=30bc1dfeeacb5876a83bea0780b98d995ee50741;hpb=9fe18536fe333c167fe1bd87f76a30b20f603dd0;p=lilypond.git diff --git a/Documentation/snippets/defining-an-engraver-in-scheme--ambitus-engraver.ly b/Documentation/snippets/defining-an-engraver-in-scheme--ambitus-engraver.ly index 30bc1dfeea..f6f6672e2c 100644 --- a/Documentation/snippets/defining-an-engraver-in-scheme--ambitus-engraver.ly +++ b/Documentation/snippets/defining-an-engraver-in-scheme--ambitus-engraver.ly @@ -4,36 +4,23 @@ % and then run scripts/auxiliar/makelsr.py % % This file is in the public domain. -%% Note: this file works from version 2.15.31 -\version "2.15.31" +%% Note: this file works from version 2.19.28 +\version "2.19.28" \header { -%% Translation of GIT committish: 30339cb3706f6399c84607426988b25f79b4998c - texidocfr = " -Cet exemple démontre comment définir son propre graveur de tessiture à -base de code Scheme. - -Il s'agit d'une réécriture en Scheme du code contenu dans le fichier -@file{lily/ambitus-engraver.cc}. - -" - doctitlefr = "Définition d'un graveur en Scheme : graveur d'ambitus" - - lsrtags = "contexts-and-engravers" + texidoc = " +This example demonstrates how the ambitus engraver may be defined on +the user side, with a Scheme engraver. - texidoc = "This example demonstrates how the ambitus engraver may be - defined on the user side, with a Scheme engraver. +This is basically a rewrite in Scheme of the code from +@code{lily/ambitus-engraver.cc}. - This is basically a rewrite in Scheme of the code from - @file{lily/ambitus-engraver.cc}. " - doctitle = "Defining an engraver in Scheme: ambitus engraver" } % begin verbatim - #(use-modules (oop goops)) %%% @@ -59,8 +46,6 @@ grob. Rewrite of @code{Accidental_placement::add_accidental} from @file{lily/accidental-placement.cc}." (let ((pitch (ly:accidental-placement::accidental-pitch accidental-grob))) (set! (ly:grob-parent accidental-grob X) grob) - (set! (ly:grob-property accidental-grob 'X-offset) - ly:grob::x-parent-positioning) (let* ((accidentals (ly:grob-object grob 'accidental-grobs)) (handle (assq (ly:pitch-notename pitch) accidentals)) (entry (if handle (cdr handle) '()))) @@ -195,7 +180,7 @@ position of middle C and key signature from @var{translator}'s context." 0)) (set! (ambitus-start-key-sig ambitus) (ly:context-property (ly:translator-context translator) - 'keySignature))))) + 'keyAlterations))))) #(define-method (update-ambitus-notes (ambitus ) note-grob) "Update the upper and lower ambitus pithes of @var{ambitus}, using @@ -308,23 +293,23 @@ position of middle C and key signature from @var{translator}'s context." (let ((ambitus #f)) ;; when music is processed: make the ambitus object, if not already built (make-engraver - ((process-music translator) - (if (not ambitus) - (set! ambitus (make-ambitus translator)))) - ;; set the ambitus clef and key signature state - ((stop-translation-timestep translator) - (if ambitus - (initialize-ambitus-state ambitus translator))) - ;; when a note-head grob is built, update the ambitus notes - (acknowledgers + ((process-music translator) + (if (not ambitus) + (set! ambitus (make-ambitus translator)))) + ;; set the ambitus clef and key signature state + ((stop-translation-timestep translator) + (if ambitus + (initialize-ambitus-state ambitus translator))) + ;; when a note-head grob is built, update the ambitus notes + (acknowledgers ((note-head-interface engraver grob source-engraver) - (if ambitus - (update-ambitus-notes ambitus grob)))) - ;; finally, typeset the ambitus according to its upper and lower notes - ;; (if any). - ((finalize translator) - (if ambitus - (typeset-ambitus ambitus translator))))))) + (if ambitus + (update-ambitus-notes ambitus grob)))) + ;; finally, typeset the ambitus according to its upper and lower notes + ;; (if any). + ((finalize translator) + (if ambitus + (typeset-ambitus ambitus translator))))))) %%% %%% Example