Cantabile is a wonderful piece of software—it’s the centerpiece of my rig—but I’ve long felt it lacked one critical feature: bindings and state changes that smoothly move parameters to new values without jumping them. Over the years I’ve seen various solutions suggested on this forum, but all seem to have their drawbacks. For example, there are VSTs that “play” waveform shapes (e.g., sawtooth) as CC patterns, but those jump the CC before fading it instead of fading from its current (arbitrary) value to a desired target. @dave_dore’s wonderful Auto-Fade Rack uses binding loops to repeatedly adjust CCs until they reach a target, but CC-based solutions can’t achieve perfect smoothness because of the low granularity of CC values, and the looping starts to impose some significant load if I have a lot of different parameters doing fades that way.
So as a different approach to this problem, I’ve written a new VST that adds parameter smoothing to Cantabile:
https://github.com/hamlen/SmoothieVST
The basic concept is pretty simple: SmoothieVST exports three parameters named InParam, OutParam, and Slowness. Any change made to InParam (e.g., via a Cantabile binding or state change) causes OutParam to smoothly move from its current value to the value of InParam. So if you bind OutParam to Gain, and you bind a controller button to alternately send 1.0 and 0.0 to InParam, then pushing the button will smoothly fade your Gain up and down. Slowness determines how fast OutParam may move (0 means instant, 0.5 means OutParam goes from 0 to 1 in 2 seconds, and 1 means OutParam is infinitely slow).
SmoothieVST is sample-accurate, 64-bit, uses VST3 automation, and uses double-precision decimal arithmetic for everything, so it’s very smooth. If InParam keeps changing before OutParam can catch it, OutParam keeps chasing InParam’s new value(s) without jumping anywhere or requiring any manual intervention to reverse direction or avoid overshooting.
This is the first VST I’ve ever written, so apologies if it lacks the finesse of other VSTs. However, I’ve been using it in my own Cantabile performances for the past several months, and it’s worked flawlessly for me so far. Feedback is appreciated.