Hi Alasdair,
Many thanks indeed - I hadn't thought of using \transpose for this
purpose, although I have indeed used it for other reasons. Several
of the initial responses to my query recommended \transpose as well.
It still means though that I need a separate declaration for every
score block, or for every invocation of \global_two. In this sense,
although it's a much more efficient and flexible approach, it
requires the same amount of work as changing the relative pitch for
each \new \Voice for part two. I was hoping there was some neat way of
including the relative pitch in the global declaration of the parts
(global_one and global_two in my example). But I do like the neatness
of your method and of your function.
Maybe this helps: You can use \transpose with a variable for the
destination pitch.
For example, if I write
\version "2.23.6"
tonic = f
\transpose c #tonic \relative {
d' e f
}
\transpose c #tonic \relative {
es' d c
}
I can change multiple scores just by re-defining \tonic. This might be
combined, for example, with some \include mechanism.
Lukas