Alternate \textSpanner engraver: Difference between revisions

Created page with "LilyPond's default text spanner engraver can only handle a single text spanner per voice at a time. The engraver in this snippet provides an alternate implementation to circumvent this limitation; it uses spanner IDs to specify start and end of overlapping text spanners. To use it, replace <code>Text_spanner_engraver</code> with <code>\alternateTextSpannerEngraver</code>. The example below demonstrates two possible ways to specify a spanner ID: either define a new com..."
 
mNo edit summary
Line 171: Line 171:
      spanners)
      spanners)
             (set! spanners (cons (cons new-idx new) spanners))
             (set! spanners (cons (cons new-idx new) spanners))
             (set! spanners
             (set! spanners (sort spanners car<))))
                  (sort spanners (lambda (x y)
  (< (car x) (car y)))))))
         start-events)
         start-events)