Is there a reason that Dorico playback automations will not send a value of zero (0) to a controller? I would like to consistently resent an Automation CC 90 to zero at both the beginning and end of a piece. That value is ignored. I can send any value from 1 to 127 to the controller but never a zero. Is that because it is an undefined continuous controller? Theoretically, we should be able to send any value to an undefined CC although I am limiting what I send to be 1-127.
I had played with custom CC (e.g. CC101) without problems. Would you mind to share a minimum project (you may remove all the notes) so that we could investigate together?
Well, I think I figured it out on my own. Even though zero (0) is a legitimate value to pass to CC automations, Dorico programmers have opted to use zero as the value where no info passes to CCs rather than a valid value to pass. I’ve addressed the issue differently.
Thanks, though, for your offer to help. It seems the issue is by design which is unfortunate when needing to use a CC value of zero that AU or VST is expecting for a particular function.
Yes, I tried that. My scenario is that I use Hauptwerk with a virtual pipe organ. CC90, an undefined MIDI change controller, is simply the one I chose to use to pass CC values to Hauptwerk. For changes in organ registration, I assign values to the pistons in Hauptwerk and then use CC 90 to activate or change them.
General cancel, turning off all stops at once, is generally assigned 0 in Hauptwerk and on compatible MIDI instruments. Sending that value at the end of flow allows the next flow to start “clean” meaning that not using general cancel causes whatever begins playing to sound on the previous registration during the first few milliseconds when the CC value is sent and the corresponding piston engaged.
When transitioning from a loud registration at the end of a flow into a new flow with a very quiet registration, the first few milliseconds of the new flow can have a “loud” staccato sound when it should be a quiet, contiguous sound, for example. I have not found a way to do what you show at the end of a flow to accomplish this and I have tried many times with different configurations.
Attempting to send this data after the music has stopped is impossible as best I can tell. Using the init or natural CC values at the beginning of the flow do not seem to do anything either. I tend to think that Dorico is coded so as not to allow a CC control value of 0 to be sent via MIDI.
So, now I am designating an unused piston where no stops are engaged and sending that value at the very end of the flow to clear the palette. It’s tedious because the key editor is not terribly good at promoting intricate, closely spaced value changes. Nevertheless, it works so that’s my workaround until our developer friends can allow a CC value of 0 to be sent immediately after playback stops or immediately before playback begins (in a pre-roll, maybe?).
Thank you for your kind assistance, @sunnych. It’s always nice to have others review an issue and offer suggestions - that’s frequently how I find solutions.
This is really above my pay grade but I know that software is not always standardized around MIDI CC values. Some use 0-127 while others use 1-128. Depending on the software (or hardware), I sometimes have to “ translate!” Could this “offset” be a part of the problem/confusion?
— Jim
I don’t think so. I can send CC90 a 1 and it activates what is assigned to “1” on the virtual instrument. I tend to think that it is a mistaken perception by coders that sending nothing is the same as sending zero (0).
