On Thu, Jun 4, 2015 at 11:35 AM, priosfilho <[email protected]>
wrote:
> Hey Nathan
>
> This is just the code developed in the thread plus more adjustable handles
> for curveto:
Unfortunately this code isn't compiling for me. There are a few extra )'s
in there.
I created this from code earlier in the thread; maybe it'll help you:
%%%%
arc = #(list 0 0) %<< global variable to bezier curve handle
glissWidth = #0.2 %<< global variable for glissando width
#(define (set-arc x y)
(set! arc (list x y)))
#(define (get-arc)
arc)
#(define (radians->degrees theta)
(* theta (/ 180 PI)))
#(define (path-gliss grob)
(if (ly:stencil? (ly:line-spanner::print grob))
(let* ((stencil (ly:line-spanner::print grob))
(X-ext (ly:stencil-extent stencil X))
(Y-ext (ly:stencil-extent stencil Y))
(width (interval-length X-ext))
(height (interval-length Y-ext))
(lefty (cdr (assoc 'Y (ly:grob-property grob
'left-bound-info))))
(righty (cdr (assoc 'Y (ly:grob-property grob
'right-bound-info))))
(deltay (- righty lefty))
(dir (if (> deltay 0) 1 -1))
(handle (get-arc))) ;<<------------- getting the
handle value here
(ly:stencil-translate
(ly:stencil-add
(grob-interpret-markup grob
(markup
;(#: tiny (format "~a" (ly:grob-properties grob)))
;(format "~a" (cdr (assoc 'Y (ly:grob-property grob
'left-bound-info))))
;(#: tiny (format "~a" handle))
(#:path glissWidth
(list (list 'moveto 0 0)
(list 'curveto 0 0 (first
handle) (second handle) width (* height dir))))))
(ly:stencil-translate
; the \rotate markup command doesn't let us pick a rotation
center, so we resort to the stencil command
(ly:stencil-rotate
(grob-interpret-markup grob
(markup #:arrow-head X RIGHT #t))
(radians->degrees
($atan2
(- (* height dir) (second handle))
(- width (first handle)))) 1 0)
(cons width (* height dir))))
(if (> dir 0)
(cons (interval-start X-ext) (+ (interval-start Y-ext) 0.1))
(cons (interval-start X-ext) (+ (interval-start Y-ext)
height)))))
#f))
\new Staff \with {
\override Glissando #'bound-details = #'((right (attach-dir . 0)
(end-on-accidental . #f) (padding . 2.)) (left (attach-dir . 0) (padding .
0.)))
\override Glissando #'stencil = #path-gliss
}
\transpose c c' {
#(set-arc 2 -4)
c2\glissando c''2
}
%%%%
Regards,
Nathan
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user