Debug VST3 plugin without reloading the DAW

Hello everyone,
I’m developing a MIDI VST3 plugin and my my debug process is the following

  • rebuild the plugin (fine with that)
  • close the DAW
  • move the new built plugin into VST3 folder
  • reload the DAW
  • Debug
    I’m finding myself doing step 2 to 4 pretty often and it’s slowing my development process a lot… Is there a way to make the daw reload the new version of the plugin as soon as it is built?
    Thanks!

If you make the move operaton part of the build process (post build copy step) and then launch the DAW from the dev env then that should speed up the process. Every time you do a build it will close down the daw, build, copy, launch daw.

As Leehu mentioned, enabling the post build plugin copy step will go some way to speeding up your process.

This unfortunately is impossible. I find myself mostly using BitWig for testing as if you go to the settings and change the buffer size and apply the changes it will restart the plugin hosting sandbox and reload your plugin. This tends to be way faster than reloading the entire DAW.

Alternatively I use Reaper if I need to attach the debugger as it’s one of the fastest loading hosts (in my experience).

The most recent version or two of Pro Tools does automatic plugin reloading, but I still expect the Reaper/Bitwig workflow would be faster.

If you don’t need a full DAW for testing, you can use the plugin host or standalone versions, which load pretty fast.

Set your DAW plugin folder path to your plugin build folder.

1 Like

In Reaper on macOS. Load your plugin in a dedicated process (this is an option in the context menu):

  1. Rebuild.
  2. Remove the plugin instance.
  3. Load plugin instance again.

It’s probably still faster to restart reaper, depending on the project size.

  1. Enable post build copy step.

  2. In your IDE, select the DAW as the command for the VST3 target
    (this is usually behind some menu in the target settings)

  3. In your DAW (for example, Reaper), select a default project that would auto-load on startup.

Make that project contain your plugin. You can even pre-add some MIDI/audio clips that you like working with.

After these 3 steps, going to your IDE and hitting “Debug” (F5 in VS, ctrl+D in CLion, etc) would immediately close the DAW, build your plugin, and load the DAW with your plugin in it and already attached.

This is what I do, just add the project output folder to the DAW’s VST folders list.

What I havent been able to figure out (even looked into Reaper scripting) is a way to change these DAW folder settings programmatically in order to be able to quickly switch between debug and release (since it doesnt allow having both version at the same time).

As a ghetto alternative I’m now using two DAWs: one looking at the debug build folder and the other looking at the release build folder.

If you enable the plugin post build copy step, it would be the same folder for both (and would also be the default folder that the DAW is looking at anyway).

1 Like

:exploding_head:

In Bitwig it’s even better than you say - you can just shift-click the plugin’s Bypass button to shut down the whole plugin sandbox container. Then click it again and it’ll restart, loading the new plugin binary as it does so.

1 Like

For anyone else wanting to use this trick, it only works to reload the newly built plugin if you do this for all plugins loaded. So depending the number of other plugins loaded, changing the buffer size may be quicker. It certainly bloody useful if you only have a single plugin loaded, so thanks for the heads up @thirtythreeforty :slight_smile:
I suppose if you have every single plugin in it’s own sandbox it would work fine, but I have mine set “together”.