]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/snippets/defining-an-engraver-in-scheme--ambitus-engraver.ly
lilypond-manuals.css: edit color scheme and some spacing
[lilypond.git] / Documentation / snippets / defining-an-engraver-in-scheme--ambitus-engraver.ly
index 30bc1dfeeacb5876a83bea0780b98d995ee50741..f6f6672e2ce669a8085db006695cb9eb27338252 100644 (file)
@@ -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 <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