On 14/01/17 19:57, Richard Shann wrote: > On Sat, 2017-01-14 at 18:14 +0000, J Martin Rushton wrote: >> Hi, >> I'm trying to set a melody from a 19thC source as closely as possible to >> the original. Triplets are indicated with a curved bracket rather than >> the square one Lily uses by default. I've come up with a mechanism: >> >> \relative c'' { >> \tupletUp >> \override TupletBracket.bracket-visibility = ##f >> \tuplet 3/2 { c8( c c ) } >> } >> >> but using a slur in this way seems wrong. Is there a better way? > > yes! > >> I'm >> using Lily 2.14 in this instance. > That might be a problem. The solution lies in some code posted a month > or two back on this list: > > tupletBracketToSlur = { > % Use slur-stencil > \\override TupletBracket.stencil = #ly:slur::print > %% Use 'thickness from Slur > \\override TupletBracket.thickness = #1.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 > negative! > (height (- (cdr pos) (car pos))) > ;; height-corr is introduced because sometimes the shape of > the > ;; slur needs to be adjusted. > ;; It is used in the 2nd/3rd control-point. > ;; The value of 0.3 is found by trial and error > (height-corr (* 0.3 dir height)) > (edge-height (ly:grob-property grob 'edge-height '(0.7 . > 0.7))) > (pad 1.0)) > (list > ;; first cp > (cons > (+ (car x-pos) 0.5) > (- (+ (* dir pad) (+ (car pos) (* -1 dir (car > edge-height)))) > (if (= dir -1) > (if (> height 3) > (/ dir 2.0) > 0.0) > (if (< height -3) > (/ dir 2.0) > 0.0)))) > ;; second cp > (cons > (+ (car x-pos) (* x-ln 1/4)) > (+ (* dir pad) (+ (car pos) (* dir (+ 0.5 height-corr))))) > ;; third cp > (cons > (+ (car x-pos) (* x-ln 3/4)) > (+ (* dir pad) (+ (cdr pos) (* dir (- 0.5 height-corr))))) > ;; fourth cp > (cons > (- (cdr x-pos) 0.5) > (+ (* dir pad) (+ (cdr pos) (* -1 dir (cdr edge-height))))) > ))) > \\override TupletBracket.staff-padding = #'() > #(define (invert-direction x) (if (eq? UP > (ly:tuplet-bracket::calc-direction x)) DOWN UP)) > \\override TupletBracket.direction = #invert-direction > } > > > then you put \tupletBracketToSlur in a \layout{ } block. > > I've just cut-and-pasted this codefrom the command in Denemo that > inserts this stuff for you. > > Richard
I've just cut and pasted that into the file and the first line starts throwing syntax errors: --------------%<------------ Processing `.../file.ly' Parsing... .../file.ly:13:1: error: unrecognized string, not in text script or \lyricmode tupletBracketToSlur = { .../file.ly:13:21: error: syntax error, unexpected '=' tupletBracketToSlur = { .../file.ly:105:25: error: syntax error, unexpected '}' } fatal error: failed files: ".../file.ly" exited with status: 1 -------------%<------------ I'm guessing things aren't that simple, can I mix scheme and LP in the same input file? I don't have access to the code, this is embedded within a larger application. At present all I have is a \relative { ... } block, all the meody lies within that. Regards, Martin
signature.asc
Description: OpenPGP digital signature
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user