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

Reply via email to