Mid-score instrument changes and transposition

• Feb 26, 2017 - 00:51

When we introduced mid-score instrument changes with 2.0, we did not correctly handle changes in transposition. I eventually implemented a fix for this that is merged in the master but not as yet for any 2.x release. I had been concerned about compatibility issues - a score with these mid-score transposition changes that was created in any release *without* my fix would either look or play differently in any release *with* the fix. The scheme I came up with to handle older scores required special-casing them according to the internal version number, which by definition cannot change for any 2.x release. So we assumed this fix would be 3.0-only.

It now seems there *might* be an opportunity to incorporate this fix into 2.1, *if* I can come up with a reasonable way to handle older scores (created before the fix) *without* relying on the internal version number. And I have some ideas about how I think this can be done. But I could use feedback from people who are actually using the mid-score instrument changes with transposing instruments.

If you have used this feature, presumably you have noticed it is kind of broken. If you enter a part for Bb clarinet and then add a change to an Eb alto saxophone mid-way, both the written and playback pitches stay the same as they were - meaning you aren't getting the new transposition at all. And yet if you start entering new notes, you get really screwed up transposition. So you must be doing something to work around this. What I'd like to know is *what*. I'd like to see some real scores that include these instrument changes, with explanation of what you've done to get by thus far (eg, having separate playback and print staves, or having separate staves for the instruments and using hide empty staves to avoid the need for instrument changes). I want to see if I can avoid breaking the workarounds people have come up with.


Comments

The Oboe and English horn in this score are my work around for mid staff instrument changes. I used hide empty staves and adjusted my returns to make it look like the same staff in both parts and score. Nothing you do to fix the text command will break this. This is how I normally work around it. I have never resorted to instrument change text with the expectation it would work as expected with the possibility of same (or no) transpositions for both instruments. I'm not sure what your fix does, but I would think it would not affect this situation.

The only other workaround I can think of is that I changed clefs on the flute to emulate a staff change to a piccolo since the sounds were close enough for me. Once again I don't see how your fix could possible affect this.

Having this for 2.1 would be a very welcomed improvement.

Attachment Size
Double_Base_Quintet_#1.mscz 210.45 KB

In reply to by mike320

You are right, since no change instrument command is involved, there is no change in behavior with my fix.

My change only affects the behavior of the change instrument command, and only in cases where it used to change to an instrument that has a different transposition than the instrument that was in effect up to that point in the score. And note, it only alters the behavior if you actually change *instruments* via the change instrument command in the right click menu on an instrument text - no difference in behavior if you merely change *sounds* via the Mixer.

For scores that do use the change instrument command to change to an instrument with a different transposition, 2.0 - 2.0.3 are, as I said, pretty broken. Either the written (transposed) or sounding (concert) pitches or both will be wrong, according to the transposition of the current instrument.

My fix will necessarily alter this in some way for existing scores. I can either "fix" the written pitch to be consistent with the sounding pitch according to the transposition of the current instrument, or vice versa. Or, I could try to "fix" the instrument text itself to not include a change of transposition, thus at least partially mimicing the behavior of 2.0.3. This was the solution I originally used, to maximize compatibility, but it does require differentiating 2.0.3 scores from 2.1 scores, which can't be done without a hack I'd rather not resort to. Plus I'd just as soon *improve* existing scores if we can agree on what that means.

So in essence, what I am trying to figure out is, would people prefer I honor the written pitches resent in existing scores and fix the sounding ones to match, or vice versa? Or would they rather I alter the existing change instrument commands to not actually change transposition? Or can you come up with a rule that says "if X holds, honor the written pitches, otherwise if Y holds, honor the sounding pitches, otherwise alter the change instrument command to not try to change transposition"? To some extent I can do this; I just need to understand under which conditions people would prefer I take which action.

In reply to by Isaac Weiss

Thanks (not that I actually *went* anywhere, but I know what you mean :-)!

I am hoping to avoid resorting to a hack like that, and as I said, I think I have an idea of how to do it. But I want to get feedback on what the expected / desired behavior is first, in some real world cases, which is why I'm asking for feedback before actually explaining what I have in mind.

The change has been merged for 2.1. We would love it if people could help test this. My expectation is that the Instrument Change element should now work as expected, if you add / edit it using 2.1. Transposition should work correctly, undo should work correctly, and linked parts should be handled correctly (none of which is true in 2.0).

Only known limitation is that a new key signature won't be generated at the point of change. But a key change that already exists at that point *will* be transposed correctly, and if you add one, it is handled correctly (use Ctrl when adding so it shows on this staff only).

Regarding compatibility, here is what to expect:

Existing 2.0 scores won't automatically be fixed, but they should behave more or less the same as they do now, and if you delete the instrument changes and re-add them, it should work correctly. 2.1 scores opened in 2.0 won't transpose correctly - 2.0 just doesn't have the necessary framework to allow it to - but they shouldn't be any worse than if you created them in 2.0 in the first place.

It is still possible we could elect to attempt to automatically fix 2.0 scores when importing in 2.1. We are doing it the way we are right now to maximize compatibility, but I also realize people likely don't actually *want* keep compatibility here since 2.0 is pretty broken in this respect. We're still accepting feedback on this point!

It worked just as expected.

I redid a song I wrote with multiple Oboe and English Horn changes the way I wanted to in the first place and learned a couple of things.

1. If there is a key change at the same point as the instrument change, the key is correct.
2. If you need to correct the key ctrl-drag the concert key to the new instrument (this is a little disorienting but I can over come that). It's actually easier to figure out the key for the new instrument this way than trying to remember how many sharps or flats to add and subtract.

Things I checked that work as expected:
1. As with previous versions, you do have to right click the instrument change text and change instruments every time
2. A new Mixer line is added for each change (as expected).
3. Key changes are passed properly to parts
4. Transpositions are good in both score and parts

Very good job. I think this is the most important change from 2.0.3 to 2.1 besides fixing some crashes.

In reply to by mike320

Thanks for checking and for the positive feedback! I personally don't use this feature enough to *that* put off by the workarounds needed in 2.0.3, but I think with the OpenScore initiative, it will be especially important to be able to create score that work properly in this respect.

The Mixer was something I did specifically check to be sure I got right. Not to say that that there were any known cases where it *didn't* previously. The change instrument command didn't affect linked parts, but at least the Mixer was in agreement on this. Still, if anything that formerly worked were to have broken as a result of my change, I'd say something like the Mixer is where I'd expect to see problems. So far, so good, though.

Do you still have an unanswered question? Please log in first to post your question.