changelog

v0.9.3

current

features

  • Bass resynthesis improved
  • Tonal decay on low FFT sizes remain in key
  • Tuning browser search function that fuzzy searches for names, traditions instruments and scale names and stays sticky while scrolling
  • Preset browser tuning and dry/wet locks for freezing them during preset changes
  • Live/Balanced modes now default to High Resolution
  • Improved 12-Svara with pitchsets for ten thāṭs, twenty rāga and 72 melakartas
  • Added 1..16 FFT sizes

bug fixes

  • Various correctness and performance fixes
  • The Time tail holds no DC, Colored tails keep the live pitch, snapper history survives resets and hop changes
  • Fix modulation Amt knob is audible while it is still being dragged
  • The Time tail no longer echoes relative to FFT size
  • Fix key possibly resetting upon 12-tone tuning switch
  • Fix an FFT-size switch landing mid-frame leaving the two channels' LFOs permanently out of step
  • Fix bug that could cause stereo mismatch after FFT size change

other

  • Five look-alike Western temperaments dropped
  • 23 archival tunings dropped
  • Merged one Indian record that carries thāṭs, rāgas and melakartas
  • Renamed wolfed JI pair to (Frozen)

v0.9.2

features

  • Improved overall performance
  • Added logo to welcome page
  • Added docs link to welcome page
  • Changed default Selectivity to Tonal

v0.9.1

features

  • "New update!" menu item if a newer version is out
  • Curve point frequency can be changed with numeric keyboard input
  • New interface setting to always display curve point frequencies
  • .kbm keyboard mappings import as derived scales

bug fixes

  • A duplicated curve point gets its own identity and a copy of its sub-mods
  • The welcome page reset its whole document on every repaint under the menu

v0.9.0

features

  • Updated typography to custom font based off of "Routed Gothic"
  • Energy and Time knobs and signal path were switched
  • New presets
  • Preset selection stays put when changing values
  • Preset importing and saving-in-place
  • Updated gradient editor UI
  • Audio and interface settings overhaul; adds grouping
  • Add Tooltips settings toggle
  • Add UI scale setting
  • Updated aquirosa logo in UI
  • Add animation in main menu
  • Delete button for custom/imported tunings
  • Tuning browser reorganization
  • Minimizable sections in welcome page
  • Transparent Rainbow new default gradient
  • Adaptive time-frequency resolution is the default
  • Tuning browser now keyboard navigatable
  • A scrolled list reopens where it was left
  • Shift-clicking Random preset adds random modulation
  • Double-clicking a point's rim resets its radius
  • The settings menu opens a page on a click instead of hover

bug fixes

  • Purity now post-attraction
  • UI select inputs look more consistent
  • Diffuse decay mode is more accurate, less washy
  • Copy and metadata pass
  • Θ mod sweeps smoother instead of jankyness at extreme values

v0.8.0

features

  • Cleaner warped output! Better transients, noise floor and decay
  • New "natural" attraction -- attraction now spans [0, 200], the first 100% determine attraction for harmonic content, the second 100-200% determine attraction for the non-harmonic content for a more natural tuning sound
  • Live mode rework with better sound quality, correct PDC and visible latency reporting
  • New Balanced mode: the Live engine with twice the frequency resolution for twice the wait (~21 ms) — for when Live's washiness isn't worth its speed
  • The Resolution modes now work in Live and Balanced (same latency, cleaner sound)
  • Adaptive time-frequency STFT is now default
  • Envelope Follower Gain knob
  • New experimental section "Particles"
  • Storage Setting page now offers granular factory resets
  • Adds right-click context menu to list items
  • Adds dedicated "Are you sure?" confirmation popup
  • Phase-coherent dry/wet at any mix
  • 18 new tunings
  • Visual tuning editor (create, edit, and save custom tunings as Scala .scl files)
  • New "Imported" tuning category for external .scl files
  • Fifth Up, Fifth Down and 432 Hz factory presets haha
  • Purity is now a tonal/residual balance
  • Rename Shape knob to Time, with better-sounding transient mode ("negative time")
  • Modulation popup "Life" knob (yasss)
  • Modulation popup UI refinements
  • New mod popup "Life" knob (let signal amplitude affect modulation rate)
  • New envelope follower Scale knob
  • New R modulation target affects a curve point's radius
  • Synced LFOs beat-lock to the host transport
  • Synced rate dropdown selector
  • Shift+Random preset button randomly adds modulation popups along with the curve
  • Option-drag auditions a temporary curve point (fun!)
  • Resolution moved to the main control bar
  • Corpus redesign (now called Resynth)
  • Preset favorite + rename button
  • Preset list now shows animated curve previews
  • Tuning list show visual representation for each
  • Popup UI finesse
  • Key and scale selections stick across tuning system changes
  • Resonance highlights in main UI now appear when no tuning system is selected as well
  • Slight decay trails on the output spectrum visualizer
  • Animated orbs as the control-bar wave knobs
  • Night mode
  • Better host parameter support
  • Added a lightbulb to tooltips
  • Curve model switched from Hermite spline to cubic Bézier
  • Ableton .ascl tuning files import directly, honoring their @ABL reference pitch
  • Scala .kbm keyboard mappings (reference note + frequency) are honored when importing .scl files
  • The gagaku tuning now offers its own jūniritsu key names (Ichikotsu … Banshiki) and the ritsu/ryo scales instead of Western keys and modes

bug fixes

  • Deleting the instance with a popup open no longer crashes the host
  • Envelope follower overhaul. Energy invariant depth, added attack/decay and removed filter options
  • High and Ultra resolutions match Normal's loudness and clarity
  • Loops and transport jumps restart the stream cleanly
  • Deleted curve points no longer keep coloring the sound
  • A small curve point radius no longer works as a master volume
  • Turning the Time knob up no longer turns the mix up with it, and transient hits keep their level
  • Custom tunings persist across sessions; imported .scl files show up without a restart
  • Scala parser no longer rejects legal scales or accepts broken ones
  • Non-equal tunings and Scala imports now honor their declared reference pitch
  • Werckmeister III and Kirnberger III had corrupted pitch tables (every note one slot off and a degree missing); replaced with the standard C-rooted values
  • Five rarely-used gagaku pitches sat a Pythagorean comma sharp; the grid now matches the shō reference table exactly
  • Factory presets no longer reset the audio topology settings
  • Saves from before Natural attraction load in Colored mode, as authored
  • An open name dialog claims the spacebar instead of toggling the host transport
  • Cmd+Z while editing a text field edits the text, not the host
  • Menus and popups survive focus loss, answer their first click, and keep their backgrounds
  • Presets reliably store every modulation field and sub-mod
  • The S&H LFO is actually random
  • Resynth survives FFT size changes
  • Popups, tooltips and tables lay out correctly at every window scale
  • Many audio-thread safety and stability fixes

performance

  • Big DSP optimization rounds, CPU usage reduced by roughly 40%
  • HQ mode no longer glitches at small host buffers: the heavy spectral frame now computes between callbacks instead of inside one, so loaded sessions run clean down to buffer size 32
  • Mono tracks process on one lane
  • Menus and popups open instantly; the UI repaints only what changed

other

  • Removed the Oversampling, Crossfade, and Energy comp audio settings (retired properties in old projects are ignored)
  • Removed the Spectrum Opacity control
  • Removed the Phase correction and Lock threshold audio settings — every alternative mode sounded worse than the one that ships, so the engine now always uses it (retired properties in old projects are ignored)
  • Natural attraction mode is now the default () in the tuning section; multiband renderer now opt-in (default Off)

v0.7.6

bug fixes

  • Offline defaults now match consistently realtime (unless unsynced). Previously when synced offline resolution would still default to ultra and cause very slow DAW exports
  • Remove latency comments from phase mode box

performance

  • Eliminate audio-thread heap allocations in processBlock and recomputeWindows

v0.7.5

bug fixes

  • Stop plugin from stealing DAW transport keys (space bar)
  • Anchor tuning popup to bottom of container
  • Guard against NaN/Inf in curve parameter deserialization

v0.7.4

bug fixes

  • Last row of tunings was missing

v0.7.3

features

  • Platform-adaptive key names in tooltips and docs
  • Add alternate "Wolfed" Just Intonation modes

bug fixes

  • Distinguish __sincosf (macOS) from sincosf (Linux)
  • Fix noisy Kaiser window mode

v0.7.2

other

  • Bump sudara/cmake-includes

v0.7.1

features

  • Frequency labels in spectrum gradient editor

bug fixes

  • Fix non-monotonously rising curves silent for Gather and Cubic bin interpolation modes

other

  • New defaults: Natural phase instead of minimum, Phase Coherent bin interpolation instead of Linear, just 1x oversampling instead of 2x (difference subtle but there, might bump it again in the future after some more performance profiling!)
  • Consistent 15% background transparency on all popups

v0.7.0

features

  • Add phase correction modes: PVDR, Scaled Lock, SPSI, PGHI+Lock, PVDR+Lock
  • Add bin interpolation modes: Linear, Phase Coherent, Gather, Cubic

bug fixes

  • Align test metrics with newer DSP code
  • Default shape setting cutting FFT window width in half

v0.6.1

bug fixes

  • Default Shape knob setting setting cutting FFT window width in half

v0.6.0

features

  • Improved low latency "Live" mode
  • Redesign corpus engine — rename parameters, add mel morphing and grain crossfade
  • Add envelope follower mod type
  • Add dynamic FFT window + hop sizing to Shape knob
  • Add stereo width knobs
  • Adaptive T-F multi-band resolution with signal-adaptive blending
  • Upgrade oversampling filter to 256-tap

bug fixes

  • Improve modulation precision
  • LFO preview uses CurveEditor's phase directly to prevent drift
  • LFO preview black line hidden by grey at 100% amount
  • Mod popup bubble background missing after DAW restart, premature close

performance

  • Various dsp optimizations
  • Pre-allocate GUI paint buffers to reduce per-frame heap allocations

other

  • Move corpus controls from control bar to settings dialog
  • Move Oversampling setting to Settings menu

v0.5.2

features

  • Add Angle direction knob to mod popup for tangent angle modulation

performance

  • Pre-allocate GUI paint buffers to reduce per-frame heap allocations

v0.5.1

bug fixes

  • Linux pluginval URL

v0.5.0

features

  • Add recursive mod popups
  • Add mod popup SDF redesign
  • Gaussian curve point radius mod mapping

v0.3.0

features

  • Add undo history in home menu
  • Add concatenative-synth-style "corpus"
  • Energy-matched dry/wet mix with equal-power crossfade
  • Option+click/Enter on Random preset button randomizes tuning

bug fixes

  • No curve point on focus bail from any popup

v0.2.0

features

  • Add spectrum gradient editor
  • Apply selected scale step patterns to chroma attraction
  • Expand non-12-tone scale mapping model
  • "Life, Purity, Shape, Energy" spectral tone knobs
  • Per-channel energy compensation, decay pass-through, and Octave presets
  • Energy compensation settings with linked/per-channel modes
  • Knob value entry popup with keyboard numeric input

bug fixes

  • Disable root selector when key is acoustically no-op
  • Energy compensation decay-aware to eliminate onset pumping

v0.1.0

features

  • BPM and modulation time sync for LFO display
  • Audio settings popup and popup anchor area
  • Audio topology overhaul
  • Phase mode, bin interpolation, and BPM/PPQ synced LFO
  • STFT window mode, crossfade frames, and oversample factor
  • Phase correction, minimum-phase oversampling, and audio settings UI

bug fixes

  • MultiColumnTablePopup behavior updates

v0.0.2

bug fixes

  • Windows build use callAsync instead of callAfterDelay

v0.0.1

features

  • Smoother Perlin iconography
  • Sticky modulation popups, M key, and step sequencer redesign
  • Modulation sync rate ordering and phase continuity
  • CurvesLookAndFeel tweaks and step sequencer updates
  • Tooltip window with linger, fade, and slide animations
  • Popup anchor area and active control enable check
  • Table popup preferences and category collapse
  • Isartum and factory tunings with key/scale mapping
  • Add modulation popup with per-point LFO and step sequencer
  • Custom preset saving and table-based preset popups
  • Scala tuning support, transient decay mode, and CPM fetch
  • Automatable parameters and DAW project save/restore
  • Stereo STFT, spectral squeeze, and mod warping
  • Spectral decay and point size UI
  • Non-automatable params, rebuild error handling, and axis labels
  • Control-point interpolation, topology mute, and offline boost
  • Oversampling, AU format, viridis colormap, and 60fps rendering
  • Realtime safety, SIMD, topology reconfig, and presets
  • Scaffold aquirosa JUCE 8 C++20 plugin

bug fixes

  • JUCE 8 API compatibility for Slider and font metrics
  • Disable attraction knob when key/scale selector is off
  • Decay slider tooltip wording
  • Buffer null guards, mod range, and preset tuning migration
  • Pivot-bounded spectrum and STFT fixes