I use debug print statements when developing scheme music functions. I have this evening noticed for the first time that my complete perplexity regarding various properties may actually come from the following problem. When I run a function several times in a row, the print output comes out in backwards order to the score note order. [No wonder I have been confused.] The MWE here shows this.
Have I fundamentally misunderstood the essence of lilypond? Is the engraving laid out backwards? Is there something intrinsically non-linear about the engraving engine that means that the way I debug and develop is in principle disallowed? I ask in all seriousness. Otherwise, how to explain the results of the MWE? [The function is purposely cut down so as to be a MWE, and consequently is only a toy that does nothing but print the property of interest to me, by way of explanation.] Andrew == snip \version "2.19.45" slashDbg = #(define-music-function (ang stem-fraction protrusion) (number? number? number?) #{ \once \override Stem #'stencil = #(lambda (grob) (let* ( (beam (ly:grob-object grob 'beam)) (beam-X-pos (ly:grob-property beam 'X-positions)) (beam-Y-pos (ly:grob-property beam 'positions)) (stil (ly:stem::print grob))) (display beam-Y-pos) (newline) stil)) #}) { \voiceOne \once \override Beam.positions = #'(6 . 9) \slashDbg 50 0.8 0.7 b''8 [ b' b' c' c'] s8 \slashDbg 50 0.8 0.7 d''8[ b' b' c' c'''] s8 \once \override Beam.positions = #'(8 . 5) \slashDbg 50 0.8 0.7 d''8[ b' b' c' c''] s8 } == snip _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user