Repository navigation
v0.2.0 — the October glow-up
The October glow-up. Version 0.1 was built in a three-day sprint in January; it looked finished, but several knobs didn't do what they said. This release makes every knob keep its promise. See it and hear it at https://chaps.dev/projects/modular.
Sound
- In tune: the oscillator defaults to C4 and is measured within half a cent (it used to play a major sixth sharp).
- Oscillator v2: tune section, hard sync, through-zero FM, sub-oscillator, up to seven unison voices.
- Filters: the SVF is rebuilt as a TPT design with log-domain cutoff, a notch output and 1V/oct cutoff CV; a new four-pole ladder filter saturates and is 2× oversampled.
- Envelope v2: accurate stage times, analog-style curves, velocity.
- Reverb v2: a modulated feedback delay network; Size and Decay now do what they say.
- Distortion v2: oversampling, antiderivative anti-aliasing and a real wavefolder.
- Delay: tape mode (wow, flutter, record-head saturation, tape loss) and tempo sync.
- Chorus, compressor and EQ quality pass; a real output stage with denormal protection.
Playing
- Polyphonic cables (up to eight voices) and a Poly MIDI module; poly cables draw as bundles, one strand per voice.
- Sample-accurate MIDI on the audio thread.
- Bypass footswitch on every filter and effect (Ctrl+B).
- Cables show the last few seconds of their signal flowing from output to input (Chevrons, Dots or Comets).
Workflow
- Opens on First Sound; an Examples menu holds six patches that teach the basics.
- Undo/redo, a quick-add palette (Space or Tab), copy/paste/duplicate/delete, and right-click menus on modules.
- Autosave and crash recovery, recent files, and a save prompt before closing.
- Patches save parameters by name, so older patches keep loading.
Engine
- The audio thread never allocates, locks or blocks: edits compile into a plan that is swapped in between buffers. A CI test enforces it.
- An offline renderer (
renderbinary) renders patches to WAV; 832 tests measure pitch, filter response, reverb decay and more. - A frame-stepped capture mode (
--capture) films the app with its sound in lockstep.