2014-10-12 12:45 GMT+02:00 David Kastrup <d...@gnu.org>: > I'm not even sure I understand _how_ you want the relativization to > happen. One after the other?
If you mean \musicII should be relativized after \music, that's roughly what i want. > In that case, you can use > > voiceDivisi = > #(define-music-function (parser location m1 m2) (ly:music? ly:music?) > (make-relative (m1 m2) #{ #m1 #m2 #} > #{ > \tag divI { $m1 } > \tag divII { $m2 } > \tag together << { \dynamicUp $m1 } \\ { \dynamicDown $m2 } >> > #})) Seems to work! :) > > How should i work around this? Maybe instead of using tags i should > > write a function with a switch statement inside? I know that i can > > put \relative command inside \voiceDivisi, but i'd like to avoid this > > as it would add a lot of typing. > > It seems like the ingenuity of my make-relative macro never really > caught on... I've found https://code.google.com/p/lilypond/issues/detail?id=3118 and looked at input/regression/make-relative.ly but i don't think i really understand what it does (and how). I'll try digging deeper, but any additional explanations you could provide would be very welcome (as i have very limited time available for tinkering...) - i'd very much like to be able to understand your ingenuity :) > By the way: I'm not sure it will be transparent enough to have << \\ >> > be recognized at the proper point of time. If not, you'll need to use > explicit voices instead. Absolutely. My code is just a proof of concept, and I've used << \\ >> to minimize the example. best, Janek _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user