# DOA303 — modified acid bass synthesizer An original TB-303-inspired monosynth by **Design On Acid**, built with C++17 and JUCE 8. VST3, Audio Unit (macOS), and standalone. No samples or commercial plugin code. ![DOA303 interface](screenshot.png) ## Version 1.1.2 — official DOA logo and two sound improvements 1. **Accent circuit response.** Separate charge and sweep capacitors retain energy between accented triggers. Resonance changes the sweep attack/release, giving repeated accents a rising, rounded response. Slides still tie notes without retriggering the envelopes. 2. **Oversampled overdrive with tone.** Asymmetric saturation, continuous clean-to-driven blending, gain compensation, and a dark-to-open tone control run inside the 4x engine. A 129-tap Blackman-windowed sinc replaces box averaging and filters the complete nonlinear signal before downsampling. Drive and tone changes are smoothed; Drive=0 bypasses coloration. The plugin reports the FIR's 16-sample latency to the host. The new hardware-inspired panel uses charcoal metal, blue-grey silkscreen, recessed knobs, red pointers/LEDs and tactile sequencer keys. The supplied TD-3-MO image informed the palette and hierarchy; the interface is drawn natively, without embedding the product photo or logos. ## Instrument - PolyBLEP saw/square oscillator; coupled diode ladder low-pass and resonance-loop high-pass - Filter envelope, accent, exponential slide, overdrive and output volume - 16 steps with pitch, octave, gate, accent and slide; length 1–16, transpose ±12 - Host transport sync; **RUN** uses the internal tempo when the host is stopped - MIDI mode: last-note priority, overlapping notes slide, velocity ≥100 accents - Musical randomizer and clear; patterns and sound controls save with the DAW project - Knob values are editable; double-click restores the parameter default The plugin is now named **DOA303**. Manufacturer/plugin codes and existing parameter IDs are retained, as is the legacy `SquelchState` state root for saved-state compatibility. The macOS bundle identifier changes to `com.designonacid.doa303`. Rescan after replacing older Squelch binaries; host-specific migration of existing sessions has not been verified. Download ready-to-install packages from the [latest release](https://github.com/designonacid/DOA303/releases/latest). ## Build and install Requirements: CMake 3.22+, C++17 compiler (Xcode on macOS, Visual Studio 2022 on Windows). JUCE 8.0.4 is fetched automatically; alternatively pass `-DJUCE_DIR=/path/to/JUCE`. ```sh cmake -B build -DCMAKE_BUILD_TYPE=Release -DDOA303_BUILD_TESTS=ON cmake --build build --config Release --parallel 4 ctest --test-dir build -C Release --output-on-failure ``` Outputs: `build/DOA303_artefacts/Release/{VST3,AU,Standalone}` (some generators omit `Release`). Copy `DOA303.vst3` to: - macOS: `~/Library/Audio/Plug-Ins/VST3/` (AU: `DOA303.component` → `~/Library/Audio/Plug-Ins/Components/`) - Windows: `C:\Program Files\Common Files\VST3\` - Linux: `~/.vst3/` Rescan your DAW, load **DOA303**, then start host playback or press RUN. Builds are unsigned. GitHub Actions builds Windows, universal macOS and Linux artifacts on push; download them from the repository's [Actions page](https://github.com/designonacid/DOA303/actions). Artifacts include this license and third-party notices. ## Validation and research `tests/dsp_test.cpp` checks finite/bounded output at 44.1/48/96 kHz, both waveforms, extreme settings, clean bypass, audible tone response, accent response, deterministic reset and release. `DOA303SmokeTest` checks the real processor, MIDI, sequencer, latency and state recall; it writes `plugin_render.wav` and a 2x `ui.png` snapshot when run in a GUI-capable desktop session. `tests/render_demo.cpp` renders an eight-bar example without JUCE. See [research notes](docs/EMULATION_RESEARCH.md) for sources, implementation choices and limits. These are behavioural models. No claim of matching ABL3, Phoscyon or a measured TB-303 is made. ## Creative Commons Original DOA303 source, interface artwork and documentation are dedicated under **Creative Commons CC0 1.0 Universal**, to the extent of the author's rights. See [LICENSE](LICENSE). Attribution to Design On Acid is appreciated but not required. The reference product photo is not distributed. Third-party trademarks are used only for descriptive comparison. JUCE and its dependencies retain their licenses; CC0 does not relicense them. JUCE 8.0.4 offers AGPLv3 or commercial terms. Distributing a combined plugin under JUCE's AGPL option requires compliance with AGPLv3, including corresponding source. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).