Double-tap sustain pedal?

Is it possible to set up a plugin to accept a double-tap of a sustain pedal for a third input option? What I want to accomplish is to be able to use my sustain pedal to control the rotary speaker on/off as I do now by using On for fast and Off for Slow. I would also love to be able to double-tap the pedal to somehow indicate the STOP command to stop the rotary instead of having to map something to a keyboard button. I enjoy being able to control the rotary only with my foot.

Has anyone done anything like this themselves? Thanks.

This is not easy, but you could imagine to do it using a GPScript

Thanks David. I have not yet ventured into GPScript but I have experience with other scripting languages so I can probably figure something out. Off-hand perhaps a scriptlet to intercept every press of the sustain pedal, if there are two in a particular very short interval pass through a certain CC# assigned to the STOP command otherwise just pass it through. Gives me a good reason to learn some GPScript.

Yes, and if you do so, feel free to ask some help here if needed :wink:

I am not able to get access to the MIDI CC being sent by my sustain pedal when I have it assigned to an alias in my rig manager. If I remove the association then I can see it in the MIDI monitor and print the results from my script. Can I directly access items in my Rig Manager in GPScript? I have not been able to find the information I need on google or the forum search.

For example, I have an alias called KB 1 Sustain Pedal with a MIDI device in my Rig Manager assigned to it. I connect this MIDI IN block to my scriptlet. I want my On ControlChangeEvent to trigger when the pedal is pressed but it does not, nor do my faders which are also assigned in Rig Manager. I am not seeing them in my MIDI Monitor. On NoteEvent works fine either way. If I remove the assignment and use a MIDI IN Omni to my scriptlet it works fine.

I think I am missing something obvious.

I was able to get this to work (except for the MIDI routing issues above). As soon as a MIDI Learn or assign my pedal to an item in Rig Manager its events quit being sent through to my scriptlet. I think they are being intercepted and processed before they are output. But when I get the output sorted out by unlearning everything and sending the MIDI straight to my scriptlet it works fine.

It listens for a Sustain Pedal ON, if it hears one it saves the ClockTime. When it hears the OFF it sees if enough time has passed for it to pass the threshold I have set (150ms). If it has NOT then it will send a CC value of 60 instead of 0 or 127. My organ VST Blue3 reads this as a STOP command and it sets it to STOP. Once I give it another slightly faster push it goes back to SLOW, or stays on FAST as long as I keep the pedal pushed down.

I think I am missing something obvious in the way MIDI CC is heard by multiple MIDI IN blocks or items. But I am making good progress.

That’s the way it works. When a controller message is assigned to something it is no more passed through the corresponding MIDI in block. Imagine you would like to assign a CC64 controller to a synth parameter, but each time you activate this synth parameter with your controller you get sustained notes… probably what you would expect in this situation.

If you assigned a CC64 controller to Rig Manager (in order to assign it later on to a widget) or directly to a widget and want to generate a CC64, the idea is to map the corresponding widget to the CC64 parameter of a MIDI in block which will then produce it for you. If you need to activate two synth parameter with the same CC64 controller, assign it to one single widget mapped to a single plugin parameter and use a second widget mapped to another plugin parameter. Then put the two widgets in a widget group (see widget properties) and put one on top of the other in the panels view, if you want to see only one.

Regarding your Scriptlet, rather then using the MIDI input of the Scriptlet, you can simply add a control parameter and assign a CC64 controlled widget to it. A Scriptlet has to be considered as a plugin… well it is a plugin.

Thanks David, that gives me enough information to get it figured out this evening after work.

1 Like