While contemplating a series of articles on digital audio oscillator types and implementations, I asked myself, “What audio effect would provide the simplest demonstration of these things while also being fun and interesting?” The first thing that came to mind was the humble tremolo. This is the stuttery, pulsing effect you hear on the rhythm guitars in such songs as “Crimson and Clover” by Tommy James and the Shondells and “How Soon Is Now” by The Smiths. It uses oscillators to modulate gain and is something most folks can sink their teeth info without getting bogged down in DSP and complicated math. Having just listened to both of these songs recently, I was pretty motivated to implement the effect. So I decided to hunker down and put one together.
To make things more fun for me, I decided to implement the tremolo effect as a VST3 plug-in so the musically-inclined technorati can drop it in their favorite DAW or VST3-compatible live performance software. I call it SKTremelo (an inspired name, for sure). Did I mention it’s open-source (MIT-licensed)? From the code, you can see not only how three basic oscillators, sine, square, and triangle are implemented (more on these in future articles), but also how they fit into a real-world digital audio application.
The plug-in itself was implemented using the JUCE 8 framework. I deliberately chose to keep the implementation simple. JUCE experts will undoubtedly berate me for not using things like AudioProcessorValueTreeState or the built in Oscillator helper class. But I wanted this implementation to be digestible to someone new to JUCE. There’s not a lot of magic going on here. I may end up doing a series of articles or videos on this as well as I realize there’s a shortage of beginner-friendly JUCE tutorials.
Downloading SKTremolo
If you’re interested in downloading the source code, you can find it on my GitHub.
https://github.com/shanekirk/sktremolo_vst
A pre-built 64-bit VST3 binary for Windows can be downloaded from GitHub as well.
https://github.com/shanekirk/sktremolo_vst/releases/tag/SKTremolo_1.1
If you’re on a different platform or need a different plug-in type, JUCE makes it easy to rebuild the plug-in yourself targeting different plug-in formats. I’ll leave that as an exercise for you, my dear reader.
Building SKTremolo
To build the plug-in, download JUCE 8 if you don’t have it already and extract it to an appropriate location on your computer. Open the SKTremolo.jucer file in Projucer and click the “Save and Open in IDE” button. Once in your IDE of choice (Visual Studio 2022 for me), you can build a new binary.
Installing SKTremelo
Installing SKTremelo is as simple as copying the binary (SKTremolo.vst3) to your system VST3 folder. On Windows, this is commonly “C:\Program Files\Common Files\VST3”. If you’re building for OSX, this is usually “~/Library/Audio/Plug-Ins”.
Once the plug-in is in the right location, your DAW software should be able to find it. Some DAWs scan for plug-ins on startup. Some require you to manually rescan. I’ll leave it to you to figure it out.
Conclusion
So that’s it really. I just wanted to let folks know the plug-in and source code are available. If anyone has questions or suggestions, please leave a comment below. And if this is your kind of thing, keep your eyes peeled. There will definitely be some related material on the way in the near future.