Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DuoSynth

A polyphonic subtractive synth plugin built with JUCE. Two oscillators, per-voice unison, a resonant low-pass filter with a dedicated cutoff envelope, and amp/filter ADSRs. Builds as VST3, AU, and a Standalone app.

DuoSynth UI

Features

  • 2 oscillators — Saw / Square / Triangle / Sine, each with octave, semitone, fine tune (cents), and level.
  • Unison — 1–7 voices per oscillator with detune spread and stereo width.
  • Filter — resonant low-pass (state-variable TPT) with drive.
  • Cutoff envelope — a dedicated ADSR modulating the filter cutoff (±octaves).
  • Amp envelope — ADSR VCA.
  • 8-voice polyphony, master gain, full state save/load (preset-ready via the host).
  • Custom rotary-knob GUI with an on-screen keyboard.

Build

Requires CMake ≥ 3.22 and a C++17 compiler. JUCE is fetched automatically at configure time — no manual install needed.

git clone https://github.com/tpklo/synth-plugin.git
cd synth-plugin
cmake -B build
cmake --build build -j4

First configure downloads JUCE (a few minutes, one-time).

Artifacts land in build/DuoSynth_artefacts/:

  • Standalone/DuoSynth.app — run directly, no DAW needed
  • VST3/DuoSynth.vst3
  • AU/DuoSynth.component (macOS)

Install the VST3 (macOS):

cp -R build/DuoSynth_artefacts/VST3/DuoSynth.vst3 ~/Library/Audio/Plug-Ins/VST3/

Run / play

open build/DuoSynth_artefacts/Standalone/DuoSynth.app   # macOS

Click the on-screen keys, or play your computer keyboard (A S D F… = white keys). For the classic filter "wah": lower Cutoff, raise Env Amt, shorten F.Dec. For a thick supersaw: raise Voices + Detune.

Test

cmake --build build --target DuoSynthTest
./build/DuoSynthTest_artefacts/DuoSynthTest

Offline render checks: audible output, envelope release, cutoff-envelope brightness modulation, unison stereo spread, master gain, state round-trip.

Troubleshooting (macOS)

If a C++ build fails with 'algorithm' file not found, your Command Line Tools libc++ headers are incomplete. Either reinstall them (sudo rm -rf /Library/Developer/CommandLineTools && xcode-select --install) or, as a quick workaround, build with:

export CPLUS_INCLUDE_PATH=$(xcrun --show-sdk-path)/usr/include/c++/v1

License

Personal project — use freely.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages