[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