Yes it does, thank you Kevin! Cheers, Pierre Le ven. 22 mai 2020 à 09:21, Kevin Barry <[email protected]> a écrit :
> On Fri, 2020-05-22 at 07:16 +0200, Pierre Perol-Schneider wrote: > > Hi, > > I'm using Abraham's function: http://lsr.di.unimi.it/LSR/Item?id=1028 > > However, the overrides are killed by the shape adjustment: > > > > Any idea how to avoid that? > > TIA, cheers, > > Pierre > > Hi Pierre, > > Does this solve the problem? > > %%% > \version "2.20.0" > > #(define (variable-bow-thickness min-l max-l min-t max-t) > (lambda (grob) > (let* (;; get the procedure to calculate the control-points > (cpf (assoc-get 'control-points (ly:grob-basic-properties > grob))) > (cpt (cond ((list? cpf) cpf) > ((procedure? cpf) (cpf grob)) > ((ly:unpure-pure-container? cpf) > (ly:unpure-call cpf grob)))) > (cp0 (car cpt)) > (cp3 (cadddr cpt)) > (dx (- (car cp3) (car cp0))) > (dy (- (cdr cp3) (cdr cp0))) > (len (magnitude (make-rectangular dx dy))) > ;; return a value for thickness > ;; below min-l -> min-l > ;; greater than max-l -> max-l > ;; between min-l and max-l -> calculate a nice value > (thickness > (cond ((< len min-l) min-t) > ((> len max-l) max-t) > (else > (+ min-t > (* (- len min-l) > (/ (- max-t min-t) > (- max-l min-l)))))))) > thickness))) > > \layout { > ragged-last = ##f > \override PhrasingSlur.thickness = #(variable-bow-thickness 6 25 1 3) > \override Slur.thickness = #(variable-bow-thickness 6 25 1 3) > \override Tie.thickness = #(variable-bow-thickness 6 18 1 2) > } > > %% Test: > { > \shape #'((0 . 0) (0 . 0) (0 . 0) (0 . 0)) Tie > \shape #'((0 . 0) (0 . 0) (0 . 0) (0 . 0)) Slur > \shape #'((0 . 0) (0 . 0) (0 . 0) (0 . 0)) PhrasingSlur > c''1~\(( 1 1 1) 1 1\) > } > %% > %%% > > Kevin > >
