Case Study
Lemon Gain , a tiny, reliable VST3 gain plugin
Overview
Lemon Gain is a lightweight VST3 gain plugin I built in modern C++ with CMake, targeting macOS DAWs like Reaper and Ableton. The goal: a clean, predictable gain stage that loads instantly and just works.
The project keeps to first principles, simple parameters, clear routing, and a tiny footprint, so engineers can focus on the mix, not the tool.
“Values are like fingerprints. Nobody's are the same, but you leave 'em all over everything you do.” - Elvis Presley
The Spark
This started during a live rehearsal at Lemon Live Studios. We needed to tame a hot vocal feed. The DAW had options, but most were bundled in heavy suites with meters, limiters, and licensing popups we didn't need. A tiny, reliable gain stage would have solved it in seconds.
So I built the thing we wanted: a no-drama gain plugin that can live anywhere in a chain and never surprise you.
The Problem
- Overkill for a simple job: many gain tools ship inside large suites.
- Setup friction: installers, license managers, or DAW rescans mid-session.
- Inconsistent behavior: parameter tapers and bypass handling vary across plugins.
In a live or time-boxed session, minutes matter. I wanted a minimal, portable plugin that the team could build, test, and drop into a session quickly.
Solution
I implemented Lemon Gain as a VST3 with a single parameterized gain stage. The codebase is intentionally small and organized for clarity, using CMake to generate builds (including Xcode projects on macOS). The repository includes clear setup docs for the Steinberg VST3 SDK and a straightforward build path.
# Build from source (macOS / Xcode supported)
git clone https://github.com/Preston-D/Lemon-Gain.git
cd Lemon-Gain
mkdir build && cd build
cmake ..
make
# Optional: generate an Xcode project
cmake -G Xcode ..
open Lemon-Gain.xcodeproj
After building, the VST3 artifact can be loaded into a DAW like Reaper for testing. The README in the repo includes prerequisites and a concise setup guide.
Results
What “good” looks like for a utility plugin:
| Metric | Before | With Lemon Gain |
|---|---|---|
| Time to get a clean gain stage | Several minutes (find/install/scan) | ~60s (pull, build, load) |
| Footprint & dependencies | Bundled suites, license prompts | Standalone, source-built |
| Team repeatability | Inconsistent across machines | Same CMake build everywhere |
The value isn't flashy, it's reliability. When you need a simple gain stage, it's right there.
Tech Stack
Relevant Skills
- C++ fundamentals & memory-safe patterns
- Audio plugin development (VST3), host integration
- Build systems & cross-project CMake configuration
- Debugging in DAW environments
- Clear developer documentation