2016-09-03 19:29 GMT+02:00 Thomas Morley <thomasmorle...@gmail.com>: > I've put some work on it. See attached duration-as-markup-5b-harm.ly > The general work should be clear from comments and descriptions. > There's some ugly code in it, although it works so far, wide room for > improvements still there. > Nevertheless it works now even in polyphonic.
Please replace the coding in `stop-translation-timestep' with: ((stop-translation-timestep translator) ; (format 1 "~16a: (stop-translation-timestep)\n" (t->m translator)) ;; needs to be here, otherwise the moments are not completely collected (let* (;; The last note-events may start at the same time-step, but ;; may have different durations. Thus we need to select the ;; one with the longest duration, to detemine which ;; duration-string should be used for make-note-markup in tab (last-notes-amount (length (car ((@@ (lily) split-at-predicate) equal? m-n)))) (longest-last-ev (last (sort (take ev last-notes-amount) (lambda (e1 e2) (ly:duration<? (ly:event-property e1 'duration) (ly:event-property e2 'duration)))))) (moments-diffs (moments-diff-list (reverse m-n))) (moment-diff-strings (append (map (lambda (x) (moment->duration-string x '())) moments-diffs) (list (ly:duration->string (ly:event-property longest-last-ev 'duration)))))) (for-each (lambda (g strg) (if (string-null? strg) (ly:grob-suicide! g) (begin (ly:grob-set-property! g 'direction UP) (ly:grob-set-property! g 'text (markup #:override '(style . mensural) #:note strg UP))))) (reverse grobs) (replace-adjacent-duplicates moment-diff-strings '())))) This will cure a bug with last notes starting at some moment, but with different durations. Cheers, Harm _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel