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

Reply via email to