New plugin (free): Tempo-lock any VST3 plugin

I’ve created a new plugin called “FreerunVST” to solve the problem of fading out a tempo-locked instrument at one tempo while playing a new tempo-locked instrument at a new tempo. (Click the “Releases” link at the right of the github page linked above to download it.)

It’s a metaplugin that loads any other Windows VST3 plugin and augments it with the ability to enter “freerun mode”. While freerunning, the affected plugin ignores all host tempo changes. This allows you to play multiple plugins at different tempos simultaneously in Cantabile or any DAW. You can also lock plugins permanently to any tempo by switching their freerun mode on and leaving it on forever. When Cantabile saves a song containing plugins in freerun mode, it saves their respective locked tempos too, and restores them on load.

Installation: To make it maximally compatible with any hosted plugin, I adopted a novel implementation approach: After downloading FreerunVST64.vst3, copy it to the folder where your xxxx.vst3 plugin is located, and rename the FreerunVST64.vst3 binary to “Freerun-xxxx.vst3”. When Cantabile next scans for plugins, Freerun-xxxx.vst3 looks at its own filename to determine that you want it to be a freerunnable version of xxxx.vst3. It will appear in Cantabile’s plugin list as “Oldname (FR)”, where “Oldname” is the name of your xxxx.vst3 plugin. For example, to create a freerunnable Kontakt 7, copy FreerunVST64.vst3 into whatever folder contains “Kontakt 7.vst3” and rename FreerunVST64.vst3 to “Freerun-Kontakt 7.vst3”. After Cantabile scans for plugins, you should see a new plugin named “Kontakt 7 (FR)” in your list.

Usage: When you load your new “… (FR)” plugin into Cantabile, it should look and act exactly like your original plugin. The only difference is that if you right-click on it and open Cantabile’s Parameter Editor window, scroll to the bottom and you’ll find an extra parameter called “Freerun”. That parameter can be automated in all the usual ways. For example, you can bind it to a controller button or set it to be state-controlled. Setting it to 1.0 turns on freerunning, and setting it to 0.0 turns freerunning off.

Feedback welcome: I’m interested to know whether this is useful/helpful for others looking for a way to do smooth transitions between songs with tempo-locked instruments. I’ve tested it on Omnisphere 3, Kontakt 7, Arturia instruments, and UJam instruments so far. To do transitions, I create my songs as Cantabile Racks. Any tempo-locked instruments are freerun-enhanced using FreerunVST. In each rack, I bind a controller button to toggle freerun mode for that song’s instruments. As I near the end of a song, I push the button to put it in freerun mode. When the tempo changes to the next song, the former song’s instruments continue to fade out at the former song’s tempo, and I can play the new song’s instruments at the new tempo.

–Kevin

6 Likes

Not something I personally need (at least for now) but a nice approach to this issue.

Just thinking about how I might use them – a suggestion for enhancement: it would be nice if the “wrapper” version could be kept in a different folder than the main VST3 file so that these would be available to Cantabile (or any performance “hosts” that can add VST3 search folders) whilst not being available in the primary DAW (e.g. Cubase) where this capability is not needed. As an example of this sort of approach, jBridge has this ability using a config file (generated by its tool) that specifies the target VST

Yes, I think it should be possible. What about the following approach: I could add code that causes “Freerun-xxxx.vst3” to look for a shortcut named “xxxx.lnk” when it can’t find “xxxx.vst3” in the same folder. If it finds the shortcut, it loads the vst3 to which the shortcut points. That would allow users to put “Freerun-xxxx.vst3” in a different folder just by creating appropriate shortcuts there rather than messing with config files.

2 Likes

That sounds like a very sensible (and simple) approach. Nice one!

Added. Now you can put “Freerun-xxxx.vst3” in any folder searched by your DAW, as long as that folder also contains a shortcut named “xxxx.vst3” to a valid VST3 binary somewhere.

2 Likes