wow that Is great. thanks very much. Stephen >>>> Thanks for sharing your work. Regarding the tuplet bracket/slur Harm did a remarkable tool here: http://www.lilypondforum.de/index.php?topic=1658.0
With the settings I'm using it goes : \version "2.18.2" printTupletBow = { %% Use slur-stencil \override TupletBracket.stencil = #ly:slur::print %% Use 'thickness from Slur \override TupletBracket.thickness = #2 %% Set 'layer to ensure without for TuoletNumber \override TupletBracket.layer = #1 \override TupletNumber.layer = #2 %% 'control-points need to be set \override TupletBracket.control-points = #(lambda (grob) (let* ((x-pos (ly:grob-property grob 'X-positions)) (pos (ly:grob-property grob 'positions)) (x-ln (interval-length x-pos)) (dir (ly:grob-property grob 'direction)) ;; read out the height of the TupletBracket, maybe negativ! (height (- (cdr pos) (car pos))) ;; height-corr is introduced because sometimes the shape of the ;; slur needs to be adjusted. ;; It is used in 2nd/3rd controllpoint. ;; The value of 0.3 is found by try and error (height-corr (* 0.3 dir height)) (edge-height (ly:grob-property grob 'edge-height '(0.7 . 0.7)))) (list ;; first cp (cons (car x-pos) (+ (car pos) (* -1 dir (car edge-height)))) ;; second cp (cons (+ (car x-pos) (* x-ln 1/4)) (+ (car pos) (* dir (+ 0.5 height-corr)))) ;; third cp (cons (+ (car x-pos) (* x-ln 3/4)) (+ (cdr pos) (* dir (- 0.5 height-corr)))) ;; fourth cp (cons (cdr x-pos) (+ (cdr pos) (* -1 dir (cdr edge-height))))))) %% Give TupletNumber nicer padding \override TupletNumber.stencil = #(lambda (grob) (let* ((stil (ly:tuplet-number::print grob)) (x-ext (ly:stencil-extent stil X)) ;; little more padding at left of the number (new-x-ext (cons (- (car x-ext) 0.1) (cdr x-ext))) (y-ext (ly:stencil-extent stil Y)) ;; give TupletNumber a little more padding around (new-stil (ly:make-stencil (ly:stencil-expr stil) (interval-widen new-x-ext 0.3) (interval-widen y-ext 0.1)))) (stencil-whiteout new-stil))) %% Adjust TupletNumber in Y-direction \override TupletNumber.Y-offset = #(lambda (grob) (let* ((dir (ly:grob-property grob 'direction)) (y-off (ly:tuplet-number::calc-y-offset grob))) ;; The value of 0.2 is found by try and error (+ (* dir 0.2) y-off))) } \layout { \printTupletBow } %%%%%%%%%%%%%%%%%%% Example %%%%%%%%%%%%%%%%%%%%% \relative c'' { \voiceOne \tuplet 3/2 { a8 b c } \tuplet 3/2 { a b c' } \tuplet 3/2 { a, b c, } \tuplet 3/2 { a' b, c } \voiceTwo \tuplet 3/2 { a' b c } \tuplet 3/2 { a b c' } \tuplet 3/2 { a, b c, } \tuplet 3/2 { a' b, c } } Cheers, Pierre
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user