scratching the surface of what's possible with VSTs
scratching the surface of what's possible with VSTs

Image: Techivation

How to DIY VST Plugins?

Tags: logic pro x, software development, music, creative coding

June 05, 2021

What are VSTs?

A Virtual Studio Technology (VST) is just an application. These applications are typically capable of either producing a sound, sometimes called 'instrument' VSTs, or processing some sound source, which is typically called 'effects' VSTs. The lines are blurry and often a single VST will do both.

While it may sometimes be useful to run a VST in standalone mode without a Digital Audio Workstation (DAW), it's not very useful on its own. Typically, VST software is opened inside of a DAW so that it can be combined with other VSTs, recorded, and otherwise integrated with features of the DAW.

I use Logic for my own music/noise creations and have grown familiar with a range of VST instruments and plugins. Now, I'm curious about how these things are actually built.

In my short research stint, I learned that most VSTs are built in C++. As mostly a js/frontend dev, this seemed like a major hurtle for me personally. But then I stumbled upon Faust and Juce.

Faust

According to the course available from Stanford, via Kadenze, Faust is a programming language that "provides a generic way to implement signal processing algorithms for sound synthesis and processing towards professional audio applications. Thanks to its architecture system, Faust can be used to generate a wide range of ready-to-use elements such as audio plug-ins (e.g., VST, AU, etc.), externals for other computer music environments (e.g., ChucK, Max/MSP, PD, CSOUND, SuperCollider, etc.), standalone applications, mobile apps, web apps, etc. Additionally, it is a great tool to make DSP engines embeddable in larger projects."

Free Faust course

The course weekly instructor-led is hosted here currently:

stanford-faust-course

JUCE

JUCE is another tool that's recently gained popularity. It's a somewhat open-source, cross-platform framework in C++, used to develop desktop and mobile applications. JUCE is used in particular for its GUI and plug-ins libraries.

Free JUCE course

A course from freeCodeCamp (they sometimes produce quality content!) is available right now as a youtube video. It's an introduction to modern C++ programming more generally too.

Conclusion

These courses are dense and require some serious dedication but honestly, both would help make a great week-long deep dive very fruitful. I'll update once I find the time for this one!


Loading...

© Copyright 2023 Nathan Phennel