-
-
Notifications
You must be signed in to change notification settings - Fork 71
Description
I've found an inconsistency in behavior between sfizz and Sforzando. Say a file has keyswitches, and also somewhere in that file you specify octave_offset=1
to transpose some samples by an octave. In Sforzando, that only affects the notes that get played, not the keys used for keyswitches. But in sfizz it does change the keyswitches.
That's a problem in itself, since there's no way to get consistent behavior between the two programs except by completely avoiding transpositions. But also, the behavior of sfizz is inherently inconsistent. Transpositions are local. You can apply an offset to one set of regions, then apply a different offset to a different set of regions in the same or a different keyswitched articulation. But keyswitches are global. They have to mean the same thing everywhere in the file.
And in fact, sfizz gets really confused in that case. If transpositions were applied to keyswitches, you would expect it to be based on the most recent note_offset
or octave_offset
at the point where the keyswitch is defined, but that doesn't happen. Just putting an offset anywhere in the file causes strange and inconsistent behavior, even affecting keyswitches defined in other parts of the file where it isn't active: multiple copies of the keyswitches appearing at different places on the keyboard, notes that don't sound correctly, etc.
I suggest that sfizz be made to work the same as Sforzando, with transpositions not affecting keyswitches.