You’re probably familiar with the piano’s sustain pedal, and how that works. When you press it, it disables the mechanical action that ends a note when you take your hand off a key. When you release the pedal, that action is re-enabled.
That’s the extremely simplified explanation that a MIDI keyboard’s sustain pedal reproduces, at any rate. While the pedal is pressed, notes ring indefinitely, allowing you extra time to reposition your hands, but also creating a muddy dissonant mess if you’re not careful.
There’s another variation, called the sostenuto pedal, which you’re probably less familiar with. Essentially, the notes that were held down when you depress the pedal continue to ring indefinitely, but notes pressed subsequent to that are still ended by lifting your fingers off the keys. So you can, for example, strike a dramatic chord and play short notes on top of it without having to leave one or both hands on that held chord.
Most MIDI software and devices don’t support the sostenuto pedal, but the magic of scripting allows us to create it, if desired.
What I’ve created isn’t quite that, either. It’s a third pedal behavior that I don’t think I’ve seen before. I’m calling it a suspension pedal.
The notes that were held when you depress the pedal ring out indefinitely. Then while the pedal is pressed, all input from your keyboard is ignored. Finally, at the moment you release the pedal, it changes to whichever keys you happen to be pressing.
If you’ve released a note, that note ends.
If you’ve added a note, that note sounds.
If you’ve left a note alone, it continues to sound.
This was specifically devised for situations where you’re controlling multiple instruments simultaneously. Add this device to one instrument’s device chain, and you can force that instrument to fall in and out of sync with the others harmonically.
And here’s the download link:
Suspension Pedal v1.0
Version 2 will have a configurable threshold, so if you’re using a more expressive control (which sends a full range of CCs rather than simple on/off messages), you can set different instances to trigger at different levels. Unless in testing, that proves to be a terrible idea, at which point there is no version 2.
It wasn’t a terrible idea, but I’m not sure the added complexity is of tremendous benefit to anyone. I’ll leave both versions available, but for the moment, I think I prefer v1 myself.
Suspension Pedal v2.01
2.01 added a nondescript grey button below the threshold slider. Pressing it sets the threshold slider to match whatever the pedal slider is currently set to. This should make it easier to set things “by feel”; map the pedal slider first, find your sweet spot, and press the button to lock that into place.
Note: All three of these controls can be mapped to automation clips, or the output of other apps. I can’t think of a single reason why you’d want to do that, but I left the option open.