Dear David, thanks for Your help. Could You pleade give me a hint, where I should insert the line: (this-stil (if (null? this-stil) point-stencil this-stil))
2014-03-21 14:11 GMT+01:00 David Nalesnik <david.nales...@gmail.com>: > Hi Stefan, > > > On Fri, Mar 21, 2014 at 6:00 AM, Stefan Thomas < > kontrapunktste...@gmail.com> wrote: > >> Dear community, >> I have a problem with the function >> >> hideCurvesFrom which I use sometimes. >> > > Where did you get this function? > > >> When I compile the following snippet I get the error message: >> >> Drawing systems...bogenvorzeichenkollision.ly:41:27: In procedure >> ly:stencil-extent in expression (ly:stencil-extent this-stil 0): >> bogenvorzeichenkollision.ly:41:27: Wrong type argument in position 1 >> (expecting Stencil): () >> >> I can't see, what's going wrong here. >> > > I don't have time to figure out exactly what's going on here, but the > error message is instructive. A quick fix would be to check if this-stil > is '(). See inserted line below: > > >> \version "2.18.2" >> >> #(define (parse-grob-sym grob-sym) >> >> (let* ((grob-str (symbol->string grob-sym)) >> >> (dot-index (string-index grob-str #\.)) >> >> (context (if dot-index >> >> (string-take grob-str dot-index) >> >> "Voice")) >> >> (grob (if dot-index >> >> (substring grob-str (+ dot-index 1)) >> >> grob-str))) >> >> (cons context grob))) >> >> >> hideCurvesFrom = >> >> #(define-music-function >> >> (parser location grob-sym x-padding y-padding) >> >> (symbol? pair? pair?) >> >> (let* ((context (car (parse-grob-sym grob-sym))) >> >> (top-grob (cdr (parse-grob-sym grob-sym)))) >> >> #{ >> >> \override Tie.layer = #-2 >> >> \override Slur.layer = #-2 >> >> \override PhrasingSlur.layer = #-2 >> >> >> \override $context . $top-grob #'avoid-slur = #'ignore >> >> \override $context . $top-grob #'layer = #-1 >> >> \override $context . $top-grob #'stencil = >> >> #(lambda (grob) >> >> (define (get-stil-proc alist) >> >> ;; removes the first 'stencil entry from the grob-property >> >> ;; alist, implicitly created by this callback: >> >> ;; (stencil . #<procedure #f (grob)>) >> >> ;; and then retrieves the original 'stencil procedure. >> >> (let ((stil-proc (ly:assoc-get 'stencil alist))) >> >> (if (procedure-name stil-proc) >> >> stil-proc >> >> (begin (set! alist (assoc-remove! alist 'stencil)) >> >> (get-stil-proc alist))))) >> >> (let* ((basic-props (ly:grob-basic-properties grob)) >> >> (stil-proc (get-stil-proc basic-props)) >> >> (this-stil (stil-proc grob)) >> > > Insert the following line: > > (this-stil (if (null? this-stil) point-stencil this-stil)) > > >> (stil-x-ext (ly:stencil-extent this-stil 0)) >> >> (stil-y-ext (ly:stencil-extent this-stil 1)) >> >> (box-x-ext (cons (- (car stil-x-ext) (car x-padding)) >> >> (+ (cdr stil-x-ext) (cdr x-padding)))) >> >> (box-y-ext (cons (- (car stil-y-ext) (car y-padding)) >> >> (+ (cdr stil-y-ext) (cdr y-padding)))) >> >> (box-w (- (cdr box-x-ext) (car box-x-ext))) >> >> (box-h (- (cdr box-y-ext) (car box-y-ext)))) >> >> (ly:stencil-add >> >> (ly:make-stencil >> >> (list 'embedded-ps >> >> (ly:format >> >> (string-append "gsave\n" >> >> "currentpoint translate\n" >> >> "1 setgray\n" >> >> "~4f ~4f ~4f ~4f rectfill\n" >> >> "grestore\n") >> >> (car box-x-ext) >> >> (car box-y-ext) >> >> box-w >> >> box-h)) >> >> stil-x-ext >> >> stil-y-ext) >> >> this-stil))) >> >> #})) >> > > [etc.] > > Also, all the formatting seems to be stripped from your code insert, which > makes it all but unreadable. If this is a persistent problem, could you > attach your code in a file? > > Best, > David > >
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user