Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

69 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Open Synth

Build

Open Synth

A free, open-source software synthesizer built with JUCE and C++20. Inspired by the Roland Juno-Di workflow β€” instant playability, rich sound, zero menu diving.

Open Synth Icon

What It Is

Open Synth is a standalone + VST3 synthesizer plugin designed for musicians who want to plug in and play. It combines a modern C++ DSP engine with a clean JUCE-based UI, delivering everything from classic analog-style leads to evolving wavetable pads β€” without forcing you through nested menus.

Originally prototyped in Flutter/Dart, the engine was rebuilt in native C++ for pro audio performance: sub-10ms latency, 16-part multitimbrality, and a full MFX (multi-effects) chain.

Features

Sound Engine

  • Dual oscillators per part β€” sine, saw, square, triangle, pulse, noise, wavetable
  • Wavetable synthesis with 100+ built-in tables and morphing
  • Physical modeling mode for acoustic-style realism (body resonance, key click, sympathetic strings)
  • Unison voices with detune and stereo spread
  • FM synthesis on both oscillators
  • Sub-oscillator with multiple octave modes

Filter & Envelopes

  • Multi-mode filter: lowpass, highpass, bandpass, notch, comb
  • 3 envelopes: amp (with delay/hold), filter (with key tracking), pitch
  • Per-stage curve shaping (linear, exponential, logarithmic)

Modulation

  • 2 LFOs per part β€” tempo-syncable, fade-in, routable to pitch/filter/amp/pan
  • Pitch bend, mod wheel, aftertouch, polyphonic aftertouch
  • Arpeggiator with 8 patterns, octave range, swing, gate, and hold

Effects (MFX Chain)

4-slot series effects engine with 22 processor types:

Legacy (Slot 0) MFX Expansion (Slots 1-3)
Chorus Equalizer
Delay Limiter
Reverb Rotary
Phaser Tremolo
Flanger Auto-Wah
Compressor Bitcrusher
Drive Ring Modulator
Pitch Shifter
Multitap Delay
Ping-Pong Delay
Spring Reverb
Gated Reverb
Amp Simulator
Stereo Widener
Vocoder

Performance & Workflow

  • 16-part multitimbral β€” full MIDI channel separation
  • Voice allocation: polyphonic, monophonic, legato, unison modes
  • Drum kit with 8 preset kits and rhythm pattern player
  • User preset manager β€” save/load with categories
  • Setlist mode β€” chain presets for live performance
  • MIDI learn on all parameters
  • Audio recording built-in
  • CPU load meter and oscilloscope

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           JUCE Plugin Editor            β”‚
β”‚  (Knobs, keyboard, scope, preset UI)    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                   β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚        OpenSynthProcessor               β”‚
β”‚  (APVTS, MIDI routing, state mgmt)      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                   β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚        SynthEngineWrapper               β”‚
β”‚  (JUCE audio buffer bridge)             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                   β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           SynthEngine                   β”‚
β”‚  16 parts β†’ VoiceAllocator β†’ FX Engine  β”‚
β”‚  Arpeggiator + DrumKit + Recorder       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Building

Prerequisites

  • CMake 3.22+
  • C++20 compiler (GCC 12+, Clang 15+, MSVC 2022+)
  • JUCE β€” resolved in this order: -DJUCE_DIR=/path/to/JUCE, the JUCE_DIR environment variable, a libs/JUCE submodule, or ~/.juce

Linux

git clone --recurse-submodules https://github.com/synthalorian/open-synth.git
cd open-synth
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DJUCE_DIR=/path/to/JUCE
make -j$(nproc)

Important: use --recurse-submodules (or git submodule update --init after cloning). The CC0 sample libraries (pianos, drums, bass, guitars) live in git submodules under samples/ β€” without them, sample-based presets will be silent.

The standalone binary, VST3, and CLAP plugins will be in build/OpenSynth_artefacts/.

Tests

cd build
./sample_load_test ../samples          # all library WAVs decode (83/83)
./sample_player_block_test ../samples  # block processing, pitch bend, ADSR
./sample_static_test ../samples/manifests/splendid-grand-piano.json  # manifest load + clean audio
./fx_tests                             # 1,021 FX engine unit tests

macOS / Windows

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release

Roadmap

  • Core synth engine (dual osc, filter, envelopes)
  • Wavetable + physical modeling
  • Full MFX chain (22 FX types)
  • Arpeggiator + drum kit + rhythm patterns
  • 16-part multitimbrality
  • User presets + setlist mode
  • App state persistence + MIDI input
  • Preset library β€” 5,600 presets across 20+ categories
  • Sample playback / ROMpler layer (CC0 library: pianos, drums, bass, guitars)
  • CLAP plugin format
  • In Progress: Instrument realism system (per-category body models)
  • MPE (MIDI Polyphonic Expression) support
  • iOS / Android standalone apps

License

MIT License β€” see LICENSE.

Bundled sample libraries are CC0 / public domain (see samples/ submodule sources: freepats, sfzinstruments).

Credits

Made by synth with synthclaw 🎹🦞 β€” built on the JUCE framework.


"This is the wave." 🎹🦞

About

🎹 Open-source synthesizer β€” JUCE 8/C++20 engine, sample ROMpler, 5,600 presets. Standalone + VST3 + CLAP. This is the wave.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages