February 18, 2023
This track from the album Nevermind is arguably Nirvana at its best. Kurt Cobain loved this song and even once said, "I love the lyrics, and I never get tired of playing it... Maybe if it was as big…
Image: Techivation
Tags: logic pro x, software development, music, creative coding
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.
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."
The course weekly instructor-led is hosted here currently:
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.
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.
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!
This track from the album Nevermind is arguably Nirvana at its best. Kurt Cobain loved this song and even once said, "I love the lyrics, and I never get tired of playing it... Maybe if it was as big…
This should be quick! Well, I guess that depends on your connection. The best time to check your internet speed is when you're experiencing slow speeds or other issues with your connection. This can…