Tuesday, October 4, 2022

Rock Dog: a JUCE multi faceted VST3 plugin

I have been using JUCE  for a while now, and have built a few plugins, including a "multi faceted" one (this post) and a DSP impulse response processing one, which is not yet released.

Rock Dog I did have as the subject of a Kickstarter campaign, which unfortunately failed to raise the funds I wanted to help improve it further -- I needed some financial injection to allow me to start modelling physical (non linear response) hardware (still open to funding of course!).  

The original Kickstarter campaign video is here.

With Rock Dog I tried to make it a more interesting plugin, by including features I didn't see often discussed in JUCE forums, including:

  • Providing a range of features and ensuring that soft real time DSP requirements were met
  • UI themes and run time switching between them
  • Saving and loading named presets based on current plugin state
  • Multiple switchable distortion fx
  • Serially chained reverb (if activated in the plugin)
  • Combine the use of juce::dsp modules as well as custom algorithm implementations
  • Reading/Writing to the file system in a system independent manner
  • Use of "space saving" context menus
I hadn't used C++ for quite some time (JUCE is only C++) so that took a while to reacquaint myself with, but it wasn't too tortuous. As a committed amateur musician, using the Cakewalk DAW, I have found it quite pleasing to use my own plugins within the context of a DAW.

The only thing I have not managed to do yet is build a MacOS version - when I get around to uploading the project into my public github repo then I'll have a crack at a github action for that. There is a Windows version available.

And to finish, some screenshots.

Standard theme plugin:


 

















And with a different theme activated:




















Loading a preset you'd previously saved:



















Changing a loaded distortion effect:




No comments: