lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Chord glissTweak padding


From: Aaron Hill
Subject: Re: Chord glissTweak padding
Date: Mon, 02 Nov 2020 12:29:41 -0800
User-agent: Roundcube Webmail/1.4.9

On 2020-11-02 12:18 pm, Aaron Hill wrote:
\glissTweak needs to be able to handle using ly:grob-set-nested-property!:

%%%%
glissTweak =
#(define-music-function
  (parser location lst) (pair?)
  (define (proc grob)
    (let ((gliss-count (ly:grob-property grob 'glissando-index)))
      (for-each
       (lambda (x)
         (let ((gliss-nmbr (car x))
               (property-value-alist (cdr x)))
           (if (eq? gliss-nmbr gliss-count)
               (for-each
                (lambda (y)
                  (let ((prop (car y)) (val (cdr y)))
                    (or (list? prop) (set! prop (list prop)))
                    (ly:grob-set-nested-property! grob prop val)))
                property-value-alist))))
       lst)))
  #{ \once \override Glissando.after-line-breaking = #proc
     <>\glissando #})
%%%%

Hmm... that could be cleaned up to remove the outer loop:

%%%%
glissTweak =
#(define-music-function
  (parser location lst) (pair?)
  (define (proc grob)
    (let ((gliss-idx (ly:grob-property grob 'glissando-index)))
      (for-each
       (lambda (y)
         (let ((prop (car y)) (val (cdr y)))
           (or (list? prop) (set! prop (list prop)))
           (ly:grob-set-nested-property! grob prop val)))
       (ly:assoc-get gliss-idx lst '()))))
  #{ \once \override Glissando.after-line-breaking = #proc
     <>\glissando #})
%%%%


-- Aaron Hill



reply via email to

[Prev in Thread] Current Thread [Next in Thread]