v0.3.6 (2026-04-17)
Audio
- Per-sample envelope processing (smoother note-on/off transitions)
- Voice steal cleanup (no more amplitude burst on reused voices)
- Fold and converge drag smoothing (per-sample layer weight interpolation)
Scanner
- Scale mode fixed: filters partials by actual played note pitch class
- Mode button shows ALL / NOTES / SCALE with distinct colors
v0.3.5 (2026-04-09)
Critical Fix
- Eliminated speaker-damaging gain spike during overtone scan (uninitialized partial gain array caused 10^16 amplitude spikes when scanner re-spotlighted a previously muted partial)
v0.3.4 (2026-04-09)
Audio
- Envelope clicks eliminated (per-sample interpolation at all ADSR breakpoints)
- Fold/open zipper eliminated (per-sample partial gain interpolation)
- Voice stealing picks the quietest voice instead of round-robin
- Auto-gain snaps correctly on first note from silence
New
- JI Root Lock: LOCK button pins just intonation tuning to the selected scale root
- Single-click scale selection
- Drive always active regardless of FX bypass setting
Help
- Per-button help for GIN, TONIC, LOCK, hover mode, scale browser
- Partials Advanced controls (converge, phase, re-excite) fully documented
- Help bar wraps to multiple lines, brighter text
Architecture
- ADSRState shared struct replaces three copy-pasted envelope blocks
- Speculative fixes from debugging cleaned up
v0.3.3 (2026-04-07)
Fixes
- Voice retrigger click eliminated (stale gain state was causing pop on repeated notes)
- Same-note retrigger preserves envelope (no longer cuts release tail)
- Releasing voices no longer stolen (release tails play out naturally)
- Onset ramp changed from linear to exponential (removes zipper on note attack)
- Gain staging: velocity normalized to 0-1 range (volume slider usable across full range)
- Scanner shape smoothing extended (click only in top 10% of slider)
UI
- “PARTIALS: SOLO” label on hover mode button
- Vodka and Sub controls removed (pending redesign)
v0.3.2 (2026-04-07)
Fixes
- Envelope timing restored (attack, decay, release were too fast in v0.3.0)
- Phase coherence restored (sawtooth displays correctly in oscilloscope)
- Decay-to-sustain transition smoothed on all three envelopes (no click at breakpoint)
- Debug file access removed (no more Desktop/Downloads permission prompts)
New
- Per-slider help text (hover any control for a description of what it does)
- Noise ADSR envelope with curve display and draggable handles (same UI as Env 1/2)
- Windows VST3 updated to current codebase
v0.3.0 (2026-04-05)
First signed and notarized release. macOS 11.0+ (Big Sur and later).
New
- Pluck — per-voice filter bypass transient. Bypasses the lowpass filter for a configurable duration on each noteOn, creating a bright harmonic attack that settles into the filtered tone. Lives in the Noise section, routable via mod matrix.
- Noise ADSR — dedicated per-voice envelope for the noise generator, independent from Env 1. Full ADSR with curve display and draggable handles. Enables breath attacks, percussive noise bursts, and sustained noise textures.
- LFO2 delay — paraphonic fade-in for LFO2 modulation. Resets on the first note of a phrase, cubic ramp curve, 50ms to 10s range.
- VCA intensity — bipolar envelope depth control. Below 75% flattens the contour, above 75% exaggerates it. Default 75% = normal envelope.
- 4 new presets: Koto Guitar, Spooky Drops, Strange Sitar, Brashness
Sound
- Envelope timing matched to web version (attack, decay, release all use correct formula)
- Envelope applied per-sample (preserves exponential release curve)
- Zero attack = instant onset at noteOn
- Filter cutoff resets on preset switch (eliminates first-note brightness bug)
- Reverb and delay buffers cleared on preset switch (no bleed between presets)
- Limiter lookahead prevents first-note overshoot
- Random phase initialization prevents constructive interference transient
- Converge and stretch smoothed to prevent zipper noise
- Scanner shape slider scales smoothing: click at max isolate, smooth crossfade when backed off
UI
- Gear fill arc centered at 12 o’clock (was offset)
- Off-default dots positioned left of track (clear of gear icons)
- Help text rewritten with actual explanations
- Scan mode help shows current mode description
- Wave buttons: saw+/saw- labels
- Fold/partials gear drag-to-adjust in matrix HUD
- Panic button hard-kills all voices
- Window size persists across launches
- Default window height increased (no scrolling needed)
- Keyboard and display block fixed height (only controls stretch on resize)
- Auto-deploy to Desktop on every build
Build
- JUCE 8.0.9
- macOS 11.0 deployment target (runs on Big Sur through Sequoia)
- Apple Developer ID signed and notarized
- .pkg installer (AU + VST3 + Standalone)
v0.2.1-beta (2026-04-02)
Modulation
- Mod matrix routes fully reflected in DSP
- Mod wheel → LFO2 Depth → Temperament chain for expressive JI vibrato
- Live modulation visualization on every routed slider
- LFO2 depth slider shows live bipolar sweep at LFO rate
New
- Tonic button, mono legato, chord label above keyboard
- LFO2 waveform preview canvas
- Sync rate shows musical divisions
- FFT 2048 resolution with C note markers
v0.2.0-beta (2026-04-01)
New
- Dual-thumb Clamp slider in Partials Advanced (harmonic floor/ceiling)
- Dual-thumb Range slider in Scanner
- Sculpt phase toggle row (24 per-partial phase inversion buttons)
- Scale matching with percentage scores and color coding
- Harmonic gate capture mode (freeze chord, click button to re-capture)
- Green scale indicators on keyboard
- Draggable fold/partials HUD values on matrix with gear icons
- Tonic button fully wired (ducks non-root intervals, boosts root overtones)
- LFO2 waveform preview canvas with shape selector inside
- LFO2 Depth is a mod destination (mod wheel → LFO2 → temperament chain)
- Morph is a mod destination with gear icon
- Mono legato with glide return to held note
Sound
- Mod matrix actually works — all routes now affect DSP (was computed but never applied)
- Stretch, converge, fold, temperament all respond to mod routes
- Scanner spotlight smoothing (no clicking on step transitions)
- Harmonic gate matches web binary pitch-class matching
- Per-sample volume interpolation (no zippering)
- Cubic volume taper (better low-end resolution)
- Converge crash fix (divide-by-zero guard, Windows/Ableton)
- NaN output safety net at final stage
- JI temperament modulatable by LFO/expression for unique vibrato effects
UI
- Output section reorganized: Width, Drive, Output, Pan + SUM/AUTO toggles
- Gear icons: web-matched rendering, drag to adjust amount, shift-click to zero, double-click to zero
- Matrix display reflects GIN (no-sub) and clamp (floor/ceiling)
- Keyboard display reflects sculpt gains (square wave hides even partials)
- LFO rate extended to 500 (nonlinear curve, useful range preserved)
- Scope waveform: normalized to peak, cross-correlation trigger lock
- Brighter Lissajous (direct screen draw + phosphor trail)
- Mod matrix collapsible with visible chevron (moved to center column)
- Default layout: Filter, Gate, Noise, Matrix, Settings, Effects, Modulation collapsed
- Slider tracks wider (more throw for fine adjustments)
- Scale selector with manual double-click detection
- Partials list shows up to 24 (was 15)
- Help bar font larger
Coming next: Column spacing polish, standalone preset save, scope waveform view improvements
v0.1.9-beta (2026-03-31)
Sound Quality
- Drive at zero = clean passthrough (was always distorting)
- Volume/gain taper matches web version
- Per-sample envelope interpolation eliminates zippering
- Single-knob limiter/compressor with draggable threshold on scope meter
- Same-note retrigger preserves oscillator continuity (no click)
- Instant release at zero (percussive cutoff)
- Hard attack at zero (no onset softening)
Envelope
- Zone-based ADSR canvas: 25% attack, 25% decay, 50% sustain+release
- Zero values = true vertical lines (right angles)
- 3 draggable handles with large hit targets
- Horizontal ADSR sliders (2×2 compact grid)
- Blue curve + dots matching web
UI
- Slider reorganization: Output = Width + Gain, Settings = Drive/Pan/Detune/Glide/Mono
- RAND button in preset bar
- Scope: analog glow, brighter traces, cleaner info text
- Phase slider now bipolar (fills from center)
- Tab switching fixed (can return to Partials from Scale)
- Slider tracks visible against background
- Solo doesn’t activate on held notes
v0.1.8-beta (2026-03-30)
Fixes
- Sustain pedal: notes now release when pedal comes up
- Smoother envelope release (exponential, tighter cutoff)
New
- Draggable ADSR handles — click and drag breakpoints on the envelope canvas
- Horizontal ADSR sliders (A+D / S+R in compact 2×2 grid)
- VCA and VCF are mod matrix targets with gear icons
- Envelope curve and dots are blue (matching web)
v0.1.7-beta (2026-03-30)
Fixes
- Universal binary (Intel + Apple Silicon) — fixes “incompatible” in Logic on M-series Macs
- License key works in either activation field
- Residents auto-provisioned on first activation (no setup needed)
- All license types accepted (was rejecting purchasers in 2FA flow)
New
- Copy Diagnostics button — copies crash logs + system info to clipboard for support
- Admin tools:
/plugin-license,/plugin-deactivatein Discord - Harmonic Synth role auto-provisions licenses for residents and instructors
- Spreadsheet tracks active machines, IPs, and check-in times
v0.1.6-beta (2026-03-30)
Visual Refresh
- Colored left accent borders on all modules matching the web version
- Section headers: accent-colored uppercase text with chevron fold + ON button
- Near-transparent module backgrounds (glass effect, not solid grey)
- Thinner slider tracks (3px) with full-opacity accent fills
- Consistent internal padding across all sections
- Gear icons properly spaced from labels
- Uppercase slider labels matching web typography
New
- Tempo sync for scanner rate and delay time (locks to DAW BPM)
- 9 mod sources: added Aftertouch, Expression, Pitch Bend
- Scale search in partials/scale panel (type to filter)
- Report Issue button in Settings opens Discord
/plugin-licenseDiscord command for admin key generation
Layout
- Partials Advanced section: blue accent, Re-Excite first
- Module spacing increased for readability
v0.1.5-beta (2026-03-29)
New
- Mod matrix with gear icons on every routable parameter (9 sources: LFO 1/2, Env 1/2, Velocity, Mod Wheel, Aftertouch, Expression, Pitch Bend)
- Click any gear icon to assign a mod source — no need to find it in the grid
- Scale search — type to filter all 39 scales by name, including world music aliases
- Scanner highlights current partial in real-time (sculpt bars, matrix XY pad, partials list)
- Partials Advanced section (Converge, Phase, Re-Excite) separated from Tuning
- Tempo sync for scanner rate and delay time — locks to DAW BPM with musical divisions
- Support button in Settings — opens Discord from inside the plugin
- Windows VST3 build (untested)
Improved
- Note-on transient eliminated (5ms onset ramp per voice)
- Effects bus no longer distorts (delay buffer clamping, reverb gain compensation)
- Limiter only catches true peaks (-1dB threshold, was over-compressing at -12dB)
- Slider values show on hover instead of always visible
- More vertical space between sliders
- Wider column gaps prevent sections from overlapping
Fixed
- Activation UI renders reliably on all launches (rewrote as paint-based, not JUCE components)
- Discord verification codes delivered via private threads (not public forum)
- Username resolution — enter Discord display name, not just snowflake ID
- Purchase flow returns to correct page with working download links
Known Issues
- Note-on still has slight compressor character on some patches
- Scanner partial transitions can click
- Fundamental may ring after note release on certain sounds
- Visual layout differs from web version (accent borders, header styling, proportions)
- Scale/root selectors still use arrows in Tuning (dropdown planned)
- Not code-signed — macOS users need to right-click → Open on first launch
v0.1.4-beta (2026-03-29)
New
- Keyboard scale clamping — notes snap to selected scale
- Keyboard pitch glide — drag across keys for smooth pitch slides
- Scale detection persists after notes release
- Help text bar below the display panels
- Paste button loads presets from clipboard (copy URL from web synth)
- Share button exports current sound as web URL
Improved
- Harmonic levels tuned to match the web synth
- Smoother note release
- Scanner wave order corrected (saw/tri/saw-/rnd)
- Better visual contrast and brighter scope traces
- FFT display uses line graph matching the web
- Slider values always visible
Fixed
- Fold crossfade sub-bass energy
- Filter tracking follows scanner position
- Effects bypass passthrough
- Drive parameter controls saturation amount
- Keyboard harmonics display on MIDI input
v0.1.3-beta (2026-03-28)
New
- Mod matrix (6 sources × 26 destinations)
- Chord detection in partials panel
- Scale matching with ranked results
- Settings section (transpose, pitch bend range, BPM, randomizer)
- Info scope mode with help text
- Harmonic gate capture/follow/split modes
- LFO 2 delay, sync, shape controls
- Envelope 2 one-shot and invert
Improved
- Per-voice polyphonic filter with VCF envelope
- Keyboard range extended to A0–C9
- 13 factory presets from web synth
- Scan step highlighting in sculpt bars
- Gin/Tonic buttons on matrix display
v0.1.0-beta (2026-03-28)
Initial beta release.
- Additive synthesis with 24 partials, 8 octave layers
- Fold crossfade, overtone scanner, harmonic gate
- Sculpt morph (saw/square/triangle/pulse)
- AU + VST3 for macOS