On Fri, 7 Dec 2018 at 03:00, Ben <soundsfromso...@gmail.com> wrote: > On 12/6/2018 7:49 PM, Peter Crighton wrote: > > Hello all, > > I have the following (reduced) scenario where one voice has a chord with a > glissando in it and I want to tweak both glissandos differently. Is it > possible? The second (currently commented out) tweak is never applied even > if I comment out the first tweak. > > \version "2.19.82" > one = \relative c'' { > g2 > -\tweak Y-offset #0.25 > \glissando a > } > two = \relative c'' { > \context Voice = "one" { > c2 > % this tweak is never applied > % -\tweak Y-offset #-0.25 > \glissando d > } > } > \new Staff << > \new Voice = "one" \one > \two > >> > > Thanks, > Peter > > A while ago, there was a function created that allowed tweaks like you're > asking - I think this is what you are looking for :) It should get you > started. > > > http://lilypond.1069038.n5.nabble.com/How-to-tweak-override-the-individual-Glissando-objects-in-a-chord-td149575.html >
Thanks, that helped a lot! I boiled it down to: \version "2.19.82" glissTweak = #(define-music-function (parser location lst)(pair?) #{ \once \override Glissando #'after-line-breaking = #(lambda (grob) (let ((gliss-count (ly:grob-property grob 'glissando-index))) (map (lambda (x) (let ((gliss-nmbr (car x)) (property-value-alist (cdr x))) (if (eq? gliss-nmbr gliss-count) (map (lambda (y) (ly:grob-set-property! grob (car y) (cdr y))) property-value-alist) #f))) lst))) $(make-music 'EventChord 'elements (list (make-music 'GlissandoEvent))) #}) one = \relative c'' { \glissTweak #`((0 . ((Y-offset . 0.25))) (1 . ((Y-offset . -0.25)))) g2 a } two = \relative c'' { \context Voice = "one" { c2 d } } \new Staff << \new Voice = "one" \one \two >> This is lovely and very flexible and does what I need it to do (and more). But I would also be interested in a more minimal version because I usually only care about Y-offsets. Preferably something that wouldn’t remove the \glissandos from the syntax, so I could have something like \once \override Glissando.Y-offset = #(lambda (grob) (and (if (= 0 (ly:grob-property grob 'glissando-index)) '0.25) (if (= 1 (ly:grob-property grob 'glissando-index)) '-0.25))) <g c>2\glissando <a d> if only that would work. It probably won’t be as easy as that. But my Scheme is very modest, and I don’t even know where to begin with something like that. Any ideas? -- Peter Crighton | Musician & Music Engraver based in Mainz, Germany http://www.petercrighton.de
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user