Hi, I'm finally about to update to the latest stable Lilypond.
Unfortunately, the function below no longer works for me.
I get error messages like:
Parsing...
/home/phantomas/partituren/vorlagen/dynamik.ly:1525:34: warning:
deprecated: missing `.' in property path Voice.Fingering.avoid-slur
  \override $context . $top-grob
                                 #'avoid-slur = #'ignore
/home/phantomas/partituren/vorlagen/dynamik.ly:1526:34: warning:
deprecated: missing `.' in property path Voice.Fingering.layer
  \override $context . $top-grob
                                 #'layer = #-1
/home/phantomas/partituren/vorlagen/dynamik.ly:1527:34: warning:
deprecated: missing `.' in property path Voice.Fingering.stencil
  \override $context . $top-grob
                                 #'stencil =
Here's my code.
#(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
   (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))
              (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)))
#}))

revertHideCurvesFrom =
#(define-music-function
   (grob-sym)
   (symbol?)
   (let* ((context  (car (parse-grob-sym grob-sym)))
          (top-grob (cdr (parse-grob-sym grob-sym))))
#{
  \revert Tie.layer

Reply via email to