Hi David, > git grep list-head > > suggests woodwind diagrams, predefined fretboards, the function > offset-fret, the \parallelMusic construct as possible callers. > > Anything in that list?
I doubt it… > If not, my guess would be some edition-engraver > code when taking into account your usual toolbox. I knew it couldn't be that, because I tried "shutting off" the EE in that score, and it still failed. But your suggestion helped me find one thing that may well be the issue: this score uses a "dynamics on the fly" function, and the ones that are working don't. Here's the function: custdyn = #(define-event-function (parser location idx strg) ((index? 1) string?) "Returns customized DynamicText derived from @var{strg}. Parts which should be rendered with as dynamics should be entered by surrounding them with the elements of @code{details.separator-pair}, default is @code{(cons #\\{ #\\})}. The output is done by using the procedures from @code{details.markup-commands}, defaulting to @code{(cons make-dynamic-markup make-italic-markup)}. Further customizing is possible by using @code{details.dyn-rest-font-sizes}, needs a pair, default is unset @code{details.inner-x-space}, needs a pair, default is unset @code{details.outer-x-space}, needs a pair, default is is unset The optional @var{idx} determines which dynamic part is centered under the NoteColumn (in case @var{strg} contains multiple dynamics). " (let* ((dynamic (make-music 'AbsoluteDynamicEvent)) (tweak-proc (lambda (grob) (let* ( (separator-pair (assoc-get 'separator-pair (ly:grob-property grob 'details) (cons #\{ #\}))) ;; get the fontsizes to use from the relevant ;; details-sub-property, i.e. 'dyn-rest-font-sizes (dyn-rest-font-sizes (assoc-get 'dyn-rest-font-sizes (ly:grob-property grob 'details))) ;; get the markup-commands to use from the relevant ;; details-sub-property, i.e. 'markup-commands, a pair ;; car for dynamic, cdr for the rest (markup-commands (assoc-get 'markup-commands (ly:grob-property grob 'details) (cons make-dynamic-markup make-italic-markup))) ;; get the pair-value to use for inserting some space to the ;; left and/or right of the dynamic, usefull for bracketed ;; dynamics or dynamics with punctuations (inner-kern (assoc-get 'inner-x-space (ly:grob-property grob 'details))) ;; get the pair-value to use for inserting some space ;; between the dynamic expression and other text. (outer-kern (assoc-get 'outer-x-space (ly:grob-property grob 'details))) (stil-candidates (dynamic-text::structered-list separator-pair dyn-rest-font-sizes inner-kern outer-kern markup-commands (1- idx) strg)) (all-stils (map (lambda (mrkp) (if (null? mrkp) empty-stencil (grob-interpret-markup grob (if (markup-list? mrkp) (make-concat-markup mrkp) mrkp)))) stil-candidates)) (prev-self-alignment-X-tweaks (filter (lambda (tw) (eq? (car tw) 'self-alignment-X)) (ly:prob-property (ly:grob-property grob 'cause) 'tweaks)))) (begin ;; Next line should be used for 2.19.65 and above ;(ly:grob-set-property! grob 'stencil ; (stack-stencils X RIGHT 0 all-stils)) ;; This line is for 2.18.2, though sometimes the offset in x-axis ;; is a little off (ly:grob-set-property! grob 'text (make-stencil-markup (stack-stencils X RIGHT 0 all-stils))) ;; if previous tweak for self-alignment-X is present return '() (if (pair? prev-self-alignment-X-tweaks) '() (ly:grob-set-property! grob 'X-offset (let* ((x-exts (map (lambda (stil) (ly:stencil-extent stil X)) (take all-stils 2))) (x-par (ly:grob-parent grob X)) (parent-x-ext-center (interval-center (if (ly:grob-property grob 'X-align-on-main-noteheads) (note-column::main-extent x-par) (ly:grob-extent x-par x-par X)))) ;; Get previous tweaks for X-offset and add their ;; values ;; They are added to the final result (prev-x-offset-tweaks (filter (lambda (tw) (and (number? (cdr tw)) (eq? (car tw) 'X-offset))) (ly:prob-property (ly:grob-property grob 'cause) 'tweaks))) (prev-x-off (apply + (map cdr prev-x-offset-tweaks)))) (if (markup-list? stil-candidates) ;; For text only or if idx is set zero: align center. ;; Also possible would be to left align, by switching ;; to zero. (ly:grob-property grob 'X-offset) ; (+ prev-x-off (- parent-x-ext-center (interval-length (car x-exts)) (/ (interval-length (second x-exts)) 2) (cond ((and (ly:stencil-empty? (car all-stils)) (negative? (car (second x-exts)))) (car (second x-exts))) ((negative? (car (first x-exts))) (car (first x-exts))) (else 0))))))))))))) (set! (ly:music-property dynamic 'tweaks) (acons 'before-line-breaking tweak-proc (ly:music-property dynamic 'tweaks))) dynamic)) Anything there that could be the problem? (Not sure if I need to supply any other functions/code for diagnosis?) Thanks, Kieren.