How I bypassed JUCE, built a VST3 from scratch, and put the actual C++ engine on my website
Look, I hate marketing. I didn't want to make an over-edited YouTube video with fake hype to sell you a plugin. In fact, I completely forgot to make a demo video. So instead, I did something incredibly tedious: I skipped the industry-standard frameworks, hand-wrote a monophonic heavy-bass instrument in raw C++, and compiled the actual DSP kernel into WebAssembly so it runs directly inside a web browser.

YOI HEAVY DUBSTEP SYNTH
Look, I hate marketing. I didn't want to make an over-edited YouTube video with fake hype to sell you a plugin. In fact, I completely forgot to make a demo video.
So instead, I did something incredibly tedious: I skipped the industry-standard frameworks, hand-wrote a monophonic heavy-bass instrument in raw C++, and compiled the actual DSP kernel into WebAssembly so it runs directly inside a web browser.
Built by a Dubstep Producer, Coded in a Shed
I didn't build this to pad a resume. I built this because I’m a dubstep producer, and the Yoi bass is my absolute favorite sound on the planet. The relationship between a sweeping low-pass or band-pass filter slammed into a downsampler to create a living, breathing vocal monster is the coolest piece of audio alchemy in electronic music.
Lately, the Yoi bass has been making a massive comeback in the underground scene. But I was tired of chasing the sound through a stack of separate plugins, macro assignments, and bloated synths. I wanted a dedicated, streamlined weapon.
Since I couldn't find exactly what I wanted, I locked myself in the shed, bypassed the industry-standard JUCE framework, and hand-wrote the entire DSP engine from scratch in a header-only C++ kernel.
If you want to hear what it does, you don’t have to watch a video or download a shady installer. You can just go to my site, turn your phone sideways (and flip your silent switch up or Chrome will choke on the audio), and melt your face off with a raw C++ engine running in real time.
How It Works (The Nerdy Version)
Because I didn't use a massive framework to hold my hand, I had to manage the real-time safety boundaries manually. The audio render thread does not allocate memory or lock threads, preventing the CPU spikes that plague heavy projects.
- The Clean Sub/Dirty Top Split: The main oscillator morphs from sawtooth to square, passing through a state-variable filter and the naive downsampler. The downsampler sits immediately after the filter on purpose—that is what folds the resonant peaks back down into vowel formants. To keep the low-end from turning into a digital fart, the sub oscillator skips the filter and grit completely. A custom
SUB FOLLOWmacro tracks the level of the top end, so the sub moves dynamically with the vowel modulation. - The Single-Source Curve: The drawn envelope holds up to 64 points. Instead of writing a script that visualizes the curve in JavaScript and trying to rewrite that math in C++ for the plugin, the C++ kernel itself renders a 1,025-entry lookup table and sends it back to the UI. What you see on screen is pixel-for-pixel exactly what the DSP is reading.
- The UI Is Just HTML: The desktop plugin's UI is built using HTML, CSS, and plain JavaScript, wrapped inside a lightweight
WKWebViewon Mac and achoclayer on Windows. No massive Electron wrapper. Just a tiny, clean web render engine communicating over a lock-free message protocol.
Putting the Literal Plugin on the Web
Because the DSP kernel is completely portable C++ and the UI is already web-view based, porting it to the website wasn't a rewrite—it was just a compile target.
I used Emscripten to compile the exact same C++ engine into a standalone, 67 KB WebAssembly module. It loads inside a browser AudioWorkletProcessor. When you twist the THROAT macro or drag a point on the canvas on the live product page, you are executing the exact same machine code that runs inside Ableton or FL Studio.
It’s completely frictionless. No email opt-ins, no licensing managers, no setup rituals. You try the controls; if it sounds sick, you buy it.
This is Just the First Chamber
YOI is the first entry in a roadmap of hyper-focused, framework-free micro-synths I am building. I am keeping the DSP blocks independent so I can drop the next weapons out of the chamber soon:
- NEURO: A dedicated neuro bass synthesizer for twisted, reese-driven re-sampling.
- PSY: A laser-focused psychedelic trance bass engine for perfect, tight phase alignment.
- LAZER: A micro-synth built entirely for generating those piercing laser zaps used in hybrid trap.
- GUNNER: A chaotic machine gun and stutter bass generator.
The Compatibility Disclaimer (Radical Honesty)
I am an independent developer working out of New Brunswick, Canada. I don't have a corporate QA department. So here is the exact state of the compatibility matrix, without the usual marketing fluff:
- macOS (AUv3 & VST3): Signed, notarized, and fully validated via
auvaland hands-on testing in Ableton Live and GarageBand. It works perfectly. - Logic Pro: Untested on my end.
- Windows (VST3): The build passes my automated CI pipeline and Steinberg’s official validator checks (47/47 passed). But I haven't manually beaten it up inside a native Windows DAW host yet.
The offline licensing is simple: you buy it on Gumroad for $19.99, paste the key into the plugin once, and an Ed25519-signed license file is stored locally. It never phones home, it doesn't need an internet connection to render audio, and there are no background daemons eating your CPU cycles. If it’s not activated, it just drops 3 seconds of silence every minute so you can still test your project recalls.