Shevek <address@hidden> writes:
If I understand correctly, what Orm wants is to be able to write something
like this:
clarinet = \relative c' {
\transposing bf
c4 d e d |
\transposing a
c d e d
}
And get the output to show d e fs e ef f g f (using English spelling).
Currently, in order to enter music in concert pitch and have it display
transposing, one needs to do the following:
clarinet = {
\transposition bf
\transpose bf c' {
\relative c' {
c4 d e d
}
}
\transposition a
\transpose a c' {
\relative c' {
c4 d e d
}
}
}
This is cumbersome. It becomes a particular pain if one wants to do multiple
editions with different transpositions. It would be much, much easier IMO if
this could be accomplished with a single line command, like in the first
snippet.
"Much much easier"? Hardly. You can, of course, write something like
transposing =
#(define-music-function (parser location p m) (ly:pitch? ly:music?)
(make-relative (m) m
#{ \transposition #p
\transpose #p c' #m #}))
(or leave out the call to make-relative if you don't care about an outer
\relative working "as expected") and use it like
clarinet = \relative c' {
\transposing bf {
c4 d e d | }
\transposing a {
c d e d }
}
But I don't see that this is really all that much of a winning
proposition.