Build professional web-native synthesizers using AI agent collaboration.
Describe a synth in plain English:
"Clone the Moog Model D with tape saturation and Airwindows reverb"
...and a team of specialized AI agents will design, implement, and deliver a complete WebAssembly synthesizer running in your browser with Web Audio API and Web MIDI support.
# Create a new synth from template
./scripts/new-synth.sh "My Synth" "MySynth"
# Build WASM module
cd synths/MySynth
make wasm
# Start development server
cd ui
npm install
npm run dev
# Open http://localhost:5173Invoke the project coordinator:
@project-coordinator
Build me a bass synth with SST sawtooth oscillator, VintageLadder filter,
and ChowDSP tape saturation. Optimize for deep bass sounds.
The coordinator analyzes your request, selects appropriate DSP libraries, and delegates to specialist agents to deliver:
- WebAssembly DSP engine (SST/Airwindows/ChowDSP)
- React UI with Web Audio bridge
- Web MIDI support
- Documentation
Browser
βββ React UI (controls, MIDI routing)
βββ Web MIDI API (hardware controllers)
βββ Web Audio API (AudioContext)
βββ AudioWorklet (audio thread)
βββ WASM Module (C++ DSP)
βββ SST libraries (oscillators, filters, effects)
βββ Airwindows (reverb, saturation)
βββ ChowDSP (tape emulation)
No plugins. No downloads. No installation. Just a URL.
- WebAssembly - C++ DSP compiled to WASM for native performance
- Web Audio API - Low-latency audio processing in the browser
- Web MIDI API - Connect hardware MIDI keyboards and controllers
- Shared Component Library - Professional UI components for all synths
- SST/Airwindows/ChowDSP - Industrial-strength DSP libraries
- Docker Build System - Reproducible builds with Emscripten
- One Codebase - All synths share components and styles
| Agent | Role | Deliverables |
|---|---|---|
| project-coordinator | Orchestrates workflow, selects DSP libraries | Project plan, architecture doc |
| synth-architect | Designs signal flow, selects SST components | Architecture doc, signal diagrams |
| dsp-engineer | Implements C++ DSP using SST/Airwindows/ChowDSP | Engine.h, Voice.h, wasm_bindings.cpp |
| ui-developer | Builds React UI from shared component library | App.tsx, useAudioEngine.ts |
| sound-designer | Defines sonic goals, creates presets | Preset library, sonic specs |
| qa-engineer | Browser testing, MIDI validation | Test reports, compatibility matrix |
autosynth/
βββ synths/ # Individual synthesizers
β βββ MySynth/
β βββ dsp/ # C++ DSP (Engine.h, Voice.h, wasm_bindings.cpp)
β βββ ui/ # React UI (uses core/ui/components/)
β βββ public/ # processor.js (AudioWorklet)
β βββ Makefile # Emscripten build
β
βββ core/
β βββ ui/
β βββ components/ # Shared React components (SynthKnob, SynthADSR, etc.)
β βββ styles/ # Shared CSS
β
βββ libs/ # DSP libraries (git submodules)
β βββ sst-basic-blocks/
β βββ sst-filters/
β βββ sst-effects/
β βββ airwin2rack/
β βββ chowdsp_utils/
β
βββ website/ # Synth browser (home page)
βββ templates/ # synth-template/ (scaffold for new synths)
βββ scripts/ # new-synth.sh, build-all.sh
βββ docker/ # Production Dockerfile, nginx config
βββ docs/ # Architecture guides, DSP library reference
All synths use the same professional React components:
| Component | Purpose |
|---|---|
SynthKnob |
Rotary control for continuous parameters |
SynthSlider |
Linear fader |
SynthADSR |
4-stage ADSR envelope editor with visualization |
SynthDAHDSR |
6-stage DAHDSR envelope editor |
SynthLFO |
LFO with waveform selection and rate control |
SynthSequencer |
Step sequencer with pitch and gate per step |
Oscilloscope |
Real-time waveform display |
SynthRow |
Layout container with theming |
See core/ui/COMPONENT_LIBRARY.md for complete API reference.
Rule: Never write custom DSP. Always use existing libraries.
| Library | Components | Use For |
|---|---|---|
| SST sst-basic-blocks | DPWSawOscillator, DPWPulseOscillator, SineOscillator, ADSREnvelope, LFO | Oscillators, envelopes, modulation |
| SST sst-filters | VintageLadder, CytomicSVF, DiodeLadder, Comb | Filters (Moog-style, clean SVF, TB-303 style) |
| SST sst-effects | Delay, Chorus, Phaser, Flanger | Time-based effects |
| Airwindows | Galactic3, ToTape6, Density, Tube2 | Reverb, tape saturation, tube distortion |
| ChowDSP | TapeModel | Authentic tape emulation with wow/flutter |
See docs/DSP_LIBRARIES.md for complete API reference with code examples.
# Create new synth
./scripts/new-synth.sh "My Synth" "MySynth"
# Build WASM
cd synths/MySynth && make wasm
# Start dev server (with hot reload)
cd ui && npm run dev
# Open http://localhost:5173# Build all synths + website
docker build -f Dockerfile.production -t autosynth .
# Run
docker run -p 8080:80 autosynth
# Open http://localhost:8080The production build:
- Compiles all synths to WASM (Emscripten stage)
- Builds all React UIs (Node stage)
- Builds synth browser website
- Serves everything with Nginx
All synths automatically support Web MIDI:
- MIDI Input - Play with hardware keyboards/controllers
- MIDI Output - Send MIDI to external devices
- Hot-plug - Dynamic device connection/disconnection
- Browser Support:
- Chrome/Edge: β Full MIDI support
- Firefox:
β οΈ No MIDI (on-screen keyboard fallback) - Safari:
β οΈ No MIDI (on-screen keyboard fallback)
Classic Clone:
Create a Minimoog Model D clone with 3 SST oscillators, VintageLadder filter,
and classic modulation routing.
Bass Synth with Effects:
Build a bass synth with SST sawtooth oscillator, VintageLadder filter,
and ChowDSP tape saturation. Add Airwindows Galactic3 reverb.
Experimental:
Design a granular synthesis engine using SST oscillators with
Airwindows ToTape6 for analog warmth.
@project-coordinator
Describe your synth in plain English...
The coordinator creates an architecture document identifying:
- Required SST components (oscillators, filters, envelopes)
- Airwindows effects (reverb, saturation)
- ChowDSP emulations (tape, analog modeling)
- Parameter mappings
- UI layout
Agents work in parallel:
dsp-engineerimplements C++ using SST/Airwindows/ChowDSPui-developerbuilds React UI with shared components- Both integrate via WASM bindings and AudioWorklet
- Build WASM:
make wasm - Start dev server:
npm run dev - Test in Chrome/Edge (full MIDI support)
- Validate audio quality, MIDI routing, parameter control
- Add to production build
- Docker builds all synths
- Nginx serves at
/synths/{Name}/
CLAUDE.md- Complete development workflow guidedocs/WASM_ARCHITECTURE.md- Technical architecture referencedocs/DSP_LIBRARIES.md- SST/Airwindows/ChowDSP API referencecore/ui/COMPONENT_LIBRARY.md- UI component referencetemplates/synth-template/README.md- Template customization guide
No plugins, no native code, no JUCE. Everything runs in the browser.
Always use SST/Airwindows/ChowDSP libraries. They're battle-tested and professional-grade.
All synths use the same React component library. One codebase, one design language.
Reproducible builds with Emscripten, Node, and Nginx in multi-stage Docker.
Traditional Approach:
- Install development tools (JUCE, Xcode, Visual Studio)
- Build native plugins (VST, AU, AAX)
- Distribute installers
- Handle platform-specific bugs
- Users download and install
AutoSynth Approach:
- Write C++ DSP with SST/Airwindows/ChowDSP
- Compile to WASM with Emscripten
- Build React UI with shared components
- Deploy to web with Docker + Nginx
- Users click a URL
Result: Professional synthesizers accessible to anyone with a browser.
| Feature | Chrome/Edge | Firefox | Safari |
|---|---|---|---|
| AudioWorklet | β | β | |
| Web MIDI | β | β | β |
| WASM | β | β | β |
Recommendation: Target Chrome/Edge for full experience. Provide on-screen keyboard fallback for Firefox/Safari.
- β Complete synth template (WASM + AudioWorklet + React)
- β Shared UI component library (12+ components)
- β SST/Airwindows/ChowDSP integration patterns
- β Web Audio + Web MIDI bridge
- β Build scripts (new-synth.sh, build-all.sh)
- β Production Dockerfile (multi-stage)
- β Synth browser website
- β Comprehensive documentation
- β AI agent team (7 specialized agents)
Documentation:
- Read
CLAUDE.mdfor complete workflow - Check
docs/for technical references - Browse
core/ui/COMPONENT_LIBRARY.mdfor UI components
AI Assistance:
@project-coordinator
[Describe what you want to build]
The agents know the entire system and can guide you through any task.
MIT
AutoSynth - Build professional synthesizers for the web.
No plugins. No installers. No compatibility hell. Just a URL.