i have a function that takes music as an argument and uses it twice - each time with a different tag appended, so that later on i can decide what to output:
voiceDivisi =
#(define-music-function (parser location m1 m2) (ly:music? ly:music?)
#{
\tag divI \context Voice = "divI" { #m1 }
\tag divII \context Voice = "divII" { #m2 }
\tag together \context Voice = "both" << #m1 #m2 >>
#})
The problem is that when used with relative mode, the output gets crazy:
music = \relative c' {
\voiceDivisi {
c4 d e f
}
{
e4 f g a
}
}
\new Staff \keepWithTag divI \music
\new Staff \keepWithTag divII \music
\new Staff \keepWithTag together \music