My latest Lilypond project had been compiling satisfactorily. But at a certain point it began throwing out the following message:
%%%%% Preprocessing graphical objects.../usr/local/lilypond/usr/share/lilypond/current/ly/engraver- init.ly:836:5: In procedure ly:stencil-extent in expression (ly:stencil-extent (ly:note-head::print g) X): /usr/local/lilypond/usr/share/lilypond/current/ly/engraver- init.ly:836:5: Wrong type argument in position 2 (expecting axis): #<Prob: Music C++: Music((duration . #<Duration 1 >) (origin . #<location /home/david/Cloud/LilyPond/PiedPiper/InputFiles/structure.ily:15:12stru cture.ily:15:12>))((display-methods #<procedure #f (rest)>) (name . SkipEvent) (iterator-ctor . #<primitive-procedure ly:rhythmic-music- iterator::constructor>) (types event rhythmic-event skip-event)) > Compilation exited abnormally with code 1 at Tue Aug 4 13:38:45 %%%%% Fortunately the error message includes a pointer to the code which is causing the problem: structure.ily:15:12. Line 15 of that file reads: X = s1 It is part of a series of 313 lines which set variables for the durations of each of the bars in the piece. This line is for bar 10: I use Roman numerals since Arabic numerals are not acceptable in variable names unless quoted. Quoting the name "X" does not help, however: I still get the same error. I can easily get around this problem: the name 'x', for instance, seems to work OK as a replacement for 'X'. But I am intrigued: what is Lilypond reading this line as? What significance does "X" have for Lilypond? David