X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fsnippets%2Fdefining-an-engraver-in-scheme--ambitus-engraver.ly;h=f6f6672e2ce669a8085db006695cb9eb27338252;hb=f7dfb61e546cb03d61d92271839288c44abf8aed;hp=4deb652211edfdfb1a1323fcb1dfeedad0429015;hpb=99b6f3aa3558b01c9d4158b19a1f1794c534f89c;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 4deb652211..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,25 +4,23 @@ % and then run scripts/auxiliar/makelsr.py % % This file is in the public domain. -%% Note: this file works from version 2.16.0 -\version "2.19.7" +%% Note: this file works from version 2.19.28 +\version "2.19.28" \header { - 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)) %%% @@ -48,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) '()))) @@ -297,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