Release history

What’s new

Latest first. RSS.

KIKstable

1.0.3

10 better

Better

  • Settings hug their content, using shared type, spacing and corner tokens; constrained bodies scroll with square clipping.

  • Native folder browsing for WAV exports and presets.

  • Correct Linux modifier/lock state for case, shifted punctuation and #.

  • Rename commits on Enter or click outside; Escape cancels only the edit. Presets have rename and delete controls.

  • Theme-aware waveform edges, curve lines, handles and radial actions.

  • Curve hover shows frequency between knots with an intrinsically measured readout.

  • Supplied KIK mark and a compact Drag WAV control.

  • Shared MUI buttons center their labels; nested popup anchors settle within the same frame.

  • Dragged kicks use persistent, immutable WAVs that stay independent between plugin instances and concurrent exports.

  • Drag requests now report queue and native transfer failures, allow one attempt per gesture, and hand their validated waveform thumbnail to the shared native drag adapter.

macOS · Universal · Windows x86_64 · Linux x86_64 · glibc 2.17+

KURVbeta

0.5.09

70 new · 59 better · 30 faster · 28 fixed

New

  • Switch the main Additive graph between editable partials and a read-only waveform view. Returning to partials preserves selection, spacing and curve edits.

  • KURV now plays through the rebuilt synth engine, rather than the old per-voice renderer. The modular patch, audio-rate routing and source operators share one playback architecture. [History C001](docs/releases/0.5.4-full-history/claims.md#c001).

  • Compile the patch into a playback program with an ordered module chain for each group and a concrete destination for each modulation route. [History C002](docs/releases/0.5.4-full-history/claims.md#c002).

  • Keep MIDI notes, velocity, pitch bend, glide and per-note expression in one note layer, instead of creating a separate note voice for each group. [History C004](docs/releases/0.5.4-full-history/claims.md#c004).

  • Replace the old editor rendering path with MUI's retained Vello Hybrid GPU runtime. This is a new graphics stack, not a skin over the previous editor. [History C008](docs/releases/0.5.4-full-history/claims.md#c008).

  • Show sampled CPU load and the active voice count in the editor header. [History C031](docs/releases/0.5.4-full-history/claims.md#c031).

  • Build patches from up to eight groups, with shared budgets of 32 oscillator slots, 32 filter slots and 32 auxiliary modules. [History C038](docs/releases/0.5.4-full-history/claims.md#c038).

  • Give groups their own ordered audio module chain, amplitude envelope, output gain, pan and output-pair routing. [History C039](docs/releases/0.5.4-full-history/claims.md#c039).

  • Allow audio-rate modulation to travel backward and across groups. Resolve playback order from the oscillator dependency graph rather than card order alone. [History C041](docs/releases/0.5.4-full-history/claims.md#c041).

  • Handle cyclic audio-rate routing explicitly: a backward edge inside a feedback cycle reads the previous sample rather than requiring an impossible ordering. [History C042](docs/releases/0.5.4-full-history/claims.md#c042).

  • Keep compatible structural modulation in the block renderer, including buffered VA routes, instead of falling back for the entire patch. [History C043](docs/releases/0.5.4-full-history/claims.md#c043).

  • Keep source-native operators attached to the source they process, while audio filters and effects remain in the group's audio chain. [History C044](docs/releases/0.5.4-full-history/claims.md#c044).

  • Organize additive processing into Pitch, Amp, Phase and Stereo lanes, with ordered fallback for older operator chains. [History C045](docs/releases/0.5.4-full-history/claims.md#c045).

  • Let additive amplitude lanes combine with Multiply, Maximum, Minimum, Add or Average rather than imposing one blend rule on every layer. [History C046](docs/releases/0.5.4-full-history/claims.md#c046).

  • Rebuild modulation around a shared domain model for graph editing, route legality, values and live state rather than editor-specific routing plumbing. [History C048](docs/releases/0.5.4-full-history/claims.md#c048).

  • Shape a modulation route with a remap curve before it reaches the destination. [History C049](docs/releases/0.5.4-full-history/claims.md#c049).

  • Multiply one route by another source to control its depth, allowing nested modulation rather than only additive destination offsets. [History C050](docs/releases/0.5.4-full-history/claims.md#c050).

  • Use compact source ports and destination pies for direct assignment and depth editing, with feedback for the current source and valid targets. [History C051](docs/releases/0.5.4-full-history/claims.md#c051).

  • Make source Rate a real modulation destination, including parent routes, instead of only allowing the source to modulate other modules. [History C058](docs/releases/0.5.4-full-history/claims.md#c058).

  • Add note-gated Sustain, Loop Point and Loop Hold LFO modes, alongside the existing free, retriggered and one-shot behaviors. [History C060](docs/releases/0.5.4-full-history/claims.md#c060).

  • Offer rate modes in Hertz, milliseconds and key-tracked frequency, with note-gate transitions controlling the loop markers. [History C061](docs/releases/0.5.4-full-history/claims.md#c061).

  • Shape random modulation through the editable response curve instead of limiting randomness to a fixed distribution. [History C062](docs/releases/0.5.4-full-history/claims.md#c062).

  • Use a 16-step gate source with per-step probabilities for rhythmic modulation. [History C063](docs/releases/0.5.4-full-history/claims.md#c063).

  • Extend the shared curve editor with editable segment behavior, selection and a reusable curve library. [History C064](docs/releases/0.5.4-full-history/claims.md#c064).

  • Keep performance sources available for macros, buttons, key tracking, velocity, pressure and timbre, alongside LFO/envelope modulation and the XY performance inputs. [History C066](docs/releases/0.5.4-full-history/claims.md#c066).

  • Retain the procedural virtual-analog foundation: canonical shapes and custom curves are evaluated by the oscillator rather than being a fixed sampled waveform bank. [History C070](docs/releases/0.5.4-full-history/claims.md#c070).

  • Draw and morph VA tables, import source data and keep editable table frames as part of the oscillator state. [History C071](docs/releases/0.5.4-full-history/claims.md#c071).

  • Define custom VA shapes with waveform expressions as well as drawn curves, using the shared expression compiler. [History C072](docs/releases/0.5.4-full-history/claims.md#c072).

  • Give each compatible oscillator its own unison count, detune range, distribution, jitter, width, alignment and pan-shape controls. [History C075](docs/releases/0.5.4-full-history/claims.md#c075).

  • Add PULSE phase processing and Offset while retiring the obsolete VA pulse/warp control arrangement. [History C077](docs/releases/0.5.4-full-history/claims.md#c077).

  • Unify Phase Bend shapes and allow a custom editable phase map rather than a separate fixed mode for every bend shape. [History C078](docs/releases/0.5.4-full-history/claims.md#c078).

  • Retain VA Prism phase processing using the instrument's own analytic periodic-source implementation. [History C079](docs/releases/0.5.4-full-history/claims.md#c079).

  • Retain continuous procedural Noise as an oscillator variant in the same group, automation and source-routing system as VA. [History C082](docs/releases/0.5.4-full-history/claims.md#c082).

  • Shape Noise with Level, Pan, Tilt, Gaps and Stereo, including burst-like gaps rather than a second oscillator type. [History C084](docs/releases/0.5.4-full-history/claims.md#c084).

  • Start new Additive oscillators with editable harmonics, while retaining a full-band procedural Wide Saw source for compatible older patches. [History C086](docs/releases/0.5.4-full-history/claims.md#c086).

  • Convert Wide Saw to editable partials and add an operator from the picker in one edit. [History C087](docs/releases/0.5.4-full-history/claims.md#c087).

  • Use an imported spectral table as an additive source and scan its frames through the common table system. [History C088](docs/releases/0.5.4-full-history/claims.md#c088).

  • Consolidate overlapping new-operator choices into Spectral Filter, Partial Shape, Stereo Shape and Partial Variation, while keeping legacy serialized operators available to old sessions. [History C089](docs/releases/0.5.4-full-history/claims.md#c089).

  • Draw a spectral filter response and use familiar low-pass, high-pass and tilt shapes without replacing the additive partial engine. [History C090](docs/releases/0.5.4-full-history/claims.md#c090).

  • Shape partial amplitudes with curve-based families that include contrast, blur, remap, gate, limit and other retained alterants. [History C091](docs/releases/0.5.4-full-history/claims.md#c091).

  • Make Stereo Shape Width alter the generated harmonic spread, while preserving the existing default sound. [History C092](docs/releases/0.5.4-full-history/claims.md#c092).

  • Add a frequency target to Ripple: the editable curve can bend partial pitch in semitones as well as shape amplitude. [History C093](docs/releases/0.5.4-full-history/claims.md#c093).

  • Add Prism Add and Prism Multiply as independent additive pitch operators with editable maps and common placement/routing. [History C095](docs/releases/0.5.4-full-history/claims.md#c095).

  • Keep Sample/Resynth and Grain in the shared oscillator contract, preserve imported source audio and prepare pitch/spectral analysis off the audio thread. Settled direct-sample playback reads its prepared band-limited source rather than running analysis during playback. [History C106](docs/releases/0.5.4-full-history/claims.md#c106).

  • Play Grain through a bounded, preallocated scheduler, with prepared pitch targeting and controlled grain lifetimes. [History C107](docs/releases/0.5.4-full-history/claims.md#c107).

  • Make Grain Speed scan through the source in the selected direction while preserving legacy behavior through the Scan state. [History C109](docs/releases/0.5.4-full-history/claims.md#c109).

  • Play spectral tables in Grain and improve frame scanning with a 64-frame prepared cache. [History C110](docs/releases/0.5.4-full-history/claims.md#c110).

  • Edit spectral tables from the Grain card instead of treating them as an invisible import artifact. [History C111](docs/releases/0.5.4-full-history/claims.md#c111).

  • Share immutable spectral tables across Grain, Additive and resonator features, and retain the table data in presets. [History C112](docs/releases/0.5.4-full-history/claims.md#c112).

  • Build spectral tables from analyzed audio and image data on worker/editor threads, within explicit frame and memory budgets. [History C113](docs/releases/0.5.4-full-history/claims.md#c113).

  • Capture a dedicated host sidechain into spectral tables rather than confusing the capture input with the instrument's output. [History C114](docs/releases/0.5.4-full-history/claims.md#c114).

  • Use worker-baked Rich PAD spectra for periodic playback, including prepared unison playback, without audio-thread FFT analysis. [History C115](docs/releases/0.5.4-full-history/claims.md#c115).

  • Add Spectral Loop resynthesis with a prepared harmonic loop bank spanning 16 roots and four snapshots, with playback crossfades rather than live analysis. [History C116](docs/releases/0.5.4-full-history/claims.md#c116).

  • Add a four-stage Diode Ladder low-pass filter with diode-like stage saturation, shared filter controls and editor support. [History C121](docs/releases/0.5.4-full-history/claims.md#c121).

  • Add FilterTable: prepare a minimum-phase, 64-tap FIR filter from a VA table and play it through the audio filter chain. [History C122](docs/releases/0.5.4-full-history/claims.md#c122).

  • Add a bounded ModalBank resonator for spectral/modal response, with prepared mode storage rather than an unbounded per-note allocation. [History C125](docs/releases/0.5.4-full-history/claims.md#c125).

  • Keep audio filters, analytic VA filters, spectral transforms and phase warps as distinct processing families. The audio family retains SVF, Phaser, Scream, Object and ModalBank alongside Diode Ladder and FilterTable, rather than presenting every operator as the same kind of filter. [History C128](docs/releases/0.5.4-full-history/claims.md#c128).

  • Retain source-aware VA low-pass, high-pass, comb and smoothing operators that evaluate the periodic source analytically. [History C129](docs/releases/0.5.4-full-history/claims.md#c129).

  • Retain spectral processing families including harmonic filtering, Tilt, Disperse and Random, using the source/operator chain's compatibility rules. [History C130](docs/releases/0.5.4-full-history/claims.md#c130).

  • Use a drawable distortion transfer curve with Amount, Multiply, skew and Mix, prepared from the same curve the editor shows. [History C131](docs/releases/0.5.4-full-history/claims.md#c131).

  • Add an ordered global effects rack after group mixing and before master gain, separate from each group's source and filter chain. [History C135](docs/releases/0.5.4-full-history/claims.md#c135).

  • Add master Delay and Reverb modules with their own controls and dry/wet balance. [History C136](docs/releases/0.5.4-full-history/claims.md#c136).

  • Add master Chorus, Phaser and Flanger modules for modulation effects after the group mix. [History C137](docs/releases/0.5.4-full-history/claims.md#c137).

  • Add master EQ, Distortion and Compressor modules in the same reorderable rack. [History C138](docs/releases/0.5.4-full-history/claims.md#c138).

  • Expose master effect controls to host automation and modulation using stable effect-kind identities; re-adding an effect returns to its existing host slot. [History C140](docs/releases/0.5.4-full-history/claims.md#c140).

  • Repair legacy preset migration and loading on the rebuilt engine instead of silently dropping incompatible state. [History C142](docs/releases/0.5.4-full-history/claims.md#c142).

  • Provide a full preset workflow in the MUI editor: browse, filter, sort, favorite, audition, save, import, export and delete user presets. [History C145](docs/releases/0.5.4-full-history/claims.md#c145).

  • Scan additional preset folders, including shared or cloud-library locations, from the editor's preset settings. [History C148](docs/releases/0.5.4-full-history/claims.md#c148).

  • Retain the Everything factory patch as a dense demonstration of multiple module kinds, sources and routing rather than counting it as a new DSP engine. [History C151](docs/releases/0.5.4-full-history/claims.md#c151).

  • Offer REPORT A BUG from Settings, opening the public issue tracker with instrument/build context. [History C153](docs/releases/0.5.4-full-history/claims.md#c153).

Better

  • Draw the first editor frame on the CPU while the shared GPU context initializes in the background, with paced device recovery and CPU rendering on OpenGL-only Linux.

  • Show Grain's reported live readers with the chosen envelope and source positions. Requested overlap and the eight-reader limit are displayed separately, with the preview identifying its selected voice.

  • Keep ordinary playback in small blocks; only connected feedback cycles need sample-by-sample rendering inside their cycle. [History C003](docs/releases/0.5.4-full-history/claims.md#c003).

  • Use one oscillator-control catalog for the editor, host automation, musical ranges and value formatting, so the same control means the same thing throughout the instrument. [History C005](docs/releases/0.5.4-full-history/claims.md#c005).

  • Use one placement and connection system for source operators; each source engine supplies its own processing rather than duplicating the whole operator workflow. [History C006](docs/releases/0.5.4-full-history/claims.md#c006).

  • Make the MUI editor the only product frontend. The old egui and GPUI reference frontends are no longer selectable product editors. [History C007](docs/releases/0.5.4-full-history/claims.md#c007).

  • Move border and contour rendering fixes into upstream MUI and remove the downstream patch-replay arrangement. [History C010](docs/releases/0.5.4-full-history/claims.md#c010).

  • Use MUI and its host bridge as upstream Git dependencies rather than shipping a private, uncommitted editor checkout. [History C011](docs/releases/0.5.4-full-history/claims.md#c011).

  • Separate the shared editor model from frontend rendering, keeping patch editing, persistence and parameter binding independent of the retired UI toolkits. [History C012](docs/releases/0.5.4-full-history/claims.md#c012).

  • Integrate MUI's native window/input bridge, including the Windows keyboard-capture policy used by the editor. [History C015](docs/releases/0.5.4-full-history/claims.md#c015).

  • Use editor-parented native Linux file choosers. Cancel pending dialogs when the editor closes and finish owned dialog workers before unload. [History C017](docs/releases/0.5.4-full-history/claims.md#c017).

  • Rebuild the workspace around a fluid, resizable MUI layout with connected group headers, source cards and operator surfaces. [History C021](docs/releases/0.5.4-full-history/claims.md#c021).

  • Give oscillator cards a narrow identity rail and contiguous waveform, unison and pan panels, with the waveform as the main editing surface. [History C022](docs/releases/0.5.4-full-history/claims.md#c022).

  • Make group identity and routing clearer with consistent headers, output readouts, rulers and categorized insertion menus. [History C023](docs/releases/0.5.4-full-history/claims.md#c023).

  • Redesign operator cards around their actual controls and useful previews instead of unrelated decorative surfaces. [History C024](docs/releases/0.5.4-full-history/claims.md#c024).

  • Reorder modules through real card/title drags with explicit drag feedback, rather than treating the waveform or source-routing port as a reorder grip. [History C025](docs/releases/0.5.4-full-history/claims.md#c025).

  • Show concise musical values and units on bound generator controls, and expose matching text to CLAP and VST3 hosts. [History C029](docs/releases/0.5.4-full-history/claims.md#c029).

  • Identify the build in the masthead, not just the version number, so development and packaged builds can be distinguished. [History C030](docs/releases/0.5.4-full-history/claims.md#c030).

  • Use a right-side settings drawer with click-away and Escape dismissal instead of the earlier welded reveal. [History C032](docs/releases/0.5.4-full-history/claims.md#c032).

  • Open the native color picker inline below its swatch and group settings into appearance, audio and account-related controls. [History C033](docs/releases/0.5.4-full-history/claims.md#c033).

  • Make surface tint, contrast, accent mute, oscillator color, modulation cables, interface scale and resynth detail explicit settings. [History C034](docs/releases/0.5.4-full-history/claims.md#c034).

  • Use flat accent fills and restrained baselines for envelope and response plots rather than gradient decoration. [History C037](docs/releases/0.5.4-full-history/claims.md#c037).

  • Preserve a group's musical identity when it is reordered, instead of treating its new position as a different envelope or bus history. [History C040](docs/releases/0.5.4-full-history/claims.md#c040).

  • Apply post-group controls at host-frame boundaries and route shared group controls without unnecessary staging copies. [History C047](docs/releases/0.5.4-full-history/claims.md#c047).

  • Unify connection and routing gestures so the same pie interaction is used across oscillator, operator and parameter destinations. [History C055](docs/releases/0.5.4-full-history/claims.md#c055).

  • Use the same curve representation across waveform, LFO and response editing instead of maintaining unrelated curve systems. [History C065](docs/releases/0.5.4-full-history/claims.md#c065).

  • Support per-note pitch, pressure, volume, pan and timbre through the shared note-expression layer used by the host shell. [History C067](docs/releases/0.5.4-full-history/claims.md#c067).

  • Keep mono retrigger, legato and glide behavior in the new note engine, with bounded release and voice-stealing handling. [History C068](docs/releases/0.5.4-full-history/claims.md#c068).

  • Compile drawn waveforms into qualified shared-slope curves with derivative regularization, rather than shipping the rejected compiler experiments. [History C073](docs/releases/0.5.4-full-history/claims.md#c073).

  • Restore VA Vocode, Harmonic Stretch and Disperse processing up to the host Nyquist limit at 48 and 96 kHz instead of truncating the high harmonics. [History C076](docs/releases/0.5.4-full-history/claims.md#c076).

  • Keep Noise intrinsically single-lane and present it as a compact waveform-and-shaping card, without irrelevant pitch or unison controls. [History C083](docs/releases/0.5.4-full-history/claims.md#c083).

  • Give new Ripple operators zero starting speed, give Phase Bend useful starting depth and expose additive phase editing directly on operator cards. [History C094](docs/releases/0.5.4-full-history/claims.md#c094).

  • Expand additive unison to 1–16 lanes. Saved counts migrate, but old normalized DAW automation now addresses the wider range rather than the earlier 1–4 range. [History C096](docs/releases/0.5.4-full-history/claims.md#c096).

  • Keep persisted PCM from being normalized a second time when a stored source is restored. [History C108](docs/releases/0.5.4-full-history/claims.md#c108).

  • Present Grain, Rich and Spectral Loop as the visible Resynth algorithms. The old Sample algorithm remains a decoder compatibility value, not a newly advertised mode. [History C117](docs/releases/0.5.4-full-history/claims.md#c117).

  • Size prepared voice storage to the published source and avoid retaining unnecessary additive retirement state. [History C120](docs/releases/0.5.4-full-history/claims.md#c120).

  • Keep FilterTable's current product limit explicit: it addresses the first eight VA source slots, not all 32 oscillator slots, and its magnitude response is an approximation. [History C123](docs/releases/0.5.4-full-history/claims.md#c123).

  • Build FilterTable kernels on a worker and publish completed plans with clear, acknowledgement and failure handling rather than compiling kernels during audio playback. [History C124](docs/releases/0.5.4-full-history/claims.md#c124).

  • Keep ModalBank's mode state in a persistent SIMD-friendly layout rather than gathering and scattering each mode every sample. [History C126](docs/releases/0.5.4-full-history/claims.md#c126).

  • Persist distortion-curve edits with their module and publish prepared data only when the curve changes. [History C132](docs/releases/0.5.4-full-history/claims.md#c132).

  • Keep one processor per effect kind and preserve its audio state when the rack is reordered. [History C139](docs/releases/0.5.4-full-history/claims.md#c139).

  • Publish a fixed-size effects snapshot only when the edited rack generation changes, instead of having the audio thread read the locked editor document. [History C141](docs/releases/0.5.4-full-history/claims.md#c141).

  • Preserve the configured plugin identities, preset extension and legacy preset roots during the MOOSE host migration, with checked-in compatibility fixtures. [History C143](docs/releases/0.5.4-full-history/claims.md#c143).

  • Keep factory preset state intact in the host tooling rather than replacing the patch with default host-bank values. [History C144](docs/releases/0.5.4-full-history/claims.md#c144).

  • Keep keyboard auditions in view and retain the pre-audition patch so browsing can be dismissed without losing the original sound. [History C147](docs/releases/0.5.4-full-history/claims.md#c147).

  • Retain migration support for older KURV preset generations; the history appendix records the original external .kurv-to-.kurvy migrator separately from current loading behavior. [History C149](docs/releases/0.5.4-full-history/claims.md#c149).

  • Keep legacy additive variants and frozen host-bank numbering available while structural edits update the displayed names and hidden controls. [History C150](docs/releases/0.5.4-full-history/claims.md#c150).

  • Update the Matari-Access licensing integration alongside the host/editor migration rather than introducing a separate licensing system for each plugin format. [History C152](docs/releases/0.5.4-full-history/claims.md#c152).

  • Move CLAP, VST3 and standalone hosting to MOOSE and add the AU v2 integration for macOS. Format support in source is distinct from the artifacts actually published for a release. [History C154](docs/releases/0.5.4-full-history/claims.md#c154).

  • Share the same instrument, parameters, persistence and DSP between plugin formats and standalone instead of maintaining different synth implementations per host. [History C155](docs/releases/0.5.4-full-history/claims.md#c155).

  • Use a half-band decimator for two-times-oversampled group runs rather than the heavier generic path. [History C159](docs/releases/0.5.4-full-history/claims.md#c159).

  • Use four-times oversampling for offline rendering where the host provides an offline render mode. [History C160](docs/releases/0.5.4-full-history/claims.md#c160).

  • Provide a faster local edit/test loop and a focused operator-kernel harness; the engineering appendix retains the measured workloads and their limits. [History C164](docs/releases/0.5.4-full-history/claims.md#c164).

  • Use the workstation/shared CI controls and avoid duplicate CI executions for the same pull request. [History C165](docs/releases/0.5.4-full-history/claims.md#c165).

  • Update actual plugin build and packaging tooling to the MOOSE host stack, rather than treating an editor gallery as a plugin delivery. [History C166](docs/releases/0.5.4-full-history/claims.md#c166).

  • Keep three-platform release automation, verified archive metadata and manifest publication as an explicit delivery step separate from source integration. [History C167](docs/releases/0.5.4-full-history/claims.md#c167).

  • Retain signed/notarized macOS packaging tooling while distinguishing macOS trust status from unsigned Windows and non-applicable Linux signatures. [History C168](docs/releases/0.5.4-full-history/claims.md#c168).

  • Preserve the vendor DSP research archive, including negative results and bounded unknowns. Research about another synth is not a claim that KURV copies it or matches its performance. [History C169](docs/releases/0.5.4-full-history/claims.md#c169).

  • Retain the full optimization workstream ledger alongside the complete product history; documentation-only checkpoints and held trials are not counted as shipped features. [History C170](docs/releases/0.5.4-full-history/claims.md#c170).

Faster

  • Stop idle editor frame wakeups until the interface needs a repaint.

  • Borrow oscillator settings when seeding notes instead of copying the configuration bank, while preserving the current phase position.

  • Reuse clean retained graphics tiles and adapt larger redraws to a bounded tile cache, with whole-scene retention for oversized windows in the integrated MUI runtime. [History C009](docs/releases/0.5.4-full-history/claims.md#c009).

  • Coalesce consecutive hover samples before rebuilding the UI while preserving drag, button, keyboard, wheel and modifier-event ordering. [History C013](docs/releases/0.5.4-full-history/claims.md#c013).

  • Observe editor animation on native window ticks so visual updates follow the window's display cadence. [History C016](docs/releases/0.5.4-full-history/claims.md#c016).

  • Cache previews and static geometry by the inputs that change them, including source revisions and wavetable snapshots, instead of rebuilding unchanged plots on every frame. [History C019](docs/releases/0.5.4-full-history/claims.md#c019).

  • Reuse port wells, module-tab outlines and envelope/gate geometry during animated editor frames. [History C020](docs/releases/0.5.4-full-history/claims.md#c020).

  • Avoid recompiling the modulation program merely because an overflow route's depth changes. [History C057](docs/releases/0.5.4-full-history/claims.md#c057).

  • Reuse exact matching LFO-rate evaluations and copy only active source state during playback, rather than evaluating or copying inactive source slots. [History C069](docs/releases/0.5.4-full-history/claims.md#c069).

  • Keep portable four-lane and eight-lane VA curve rendering paths for supported platforms and dense unison playback. [History C074](docs/releases/0.5.4-full-history/claims.md#c074).

  • Keep settled stacks of compatible phase operators on the VA block-rendering path. [History C080](docs/releases/0.5.4-full-history/claims.md#c080).

  • Replay exact Noise cycles under SYNC, including the default stereo case, instead of repeating identical source work after master resets. [History C085](docs/releases/0.5.4-full-history/claims.md#c085).

  • Share prepared harmonic banks across unison lanes and bake eligible settled operator chains into them. [History C097](docs/releases/0.5.4-full-history/claims.md#c097).

  • Keep eligible static additive banks active under SYNC and common-phase operators instead of discarding the prepared bank unnecessarily. [History C098](docs/releases/0.5.4-full-history/claims.md#c098).

  • Reuse pitch-independent additive operator targets while FM changes the played pitch. [History C099](docs/releases/0.5.4-full-history/claims.md#c099).

  • Cull eligible Converge packets and batch consecutive unmasked Shift operators during audio-rate playback. [History C100](docs/releases/0.5.4-full-history/claims.md#c100).

  • Reuse repeated additive spectral-filter and Comb responses while preserving each operator's own wet amount and modulation. [History C101](docs/releases/0.5.4-full-history/claims.md#c101).

  • Bound slow Ripple and Barberpole update work and use direct partial rendering when that is cheaper than rebuilding a harmonic cache. [History C102](docs/releases/0.5.4-full-history/claims.md#c102).

  • Admit only qualified static amplitude-response reuse; moving controls return to the full renderer instead of borrowing an invalid cached response. [History C103](docs/releases/0.5.4-full-history/claims.md#c103).

  • Omit unused additive pitch workspace for plans that do not need direct pitch processing, while preserving plan handover. [History C104](docs/releases/0.5.4-full-history/claims.md#c104).

  • Share immutable prepared Prism maps across voices instead of rebuilding matching maps separately for every voice. [History C105](docs/releases/0.5.4-full-history/claims.md#c105).

  • Skip PCM reads that are discarded at full spectral blend while keeping grain timing and the return to PCM intact. [History C119](docs/releases/0.5.4-full-history/claims.md#c119).

  • Reuse stable FilterTable kernels, improve moving-kernel interpolation and borrow prepared coefficient banks rather than copying them into every processing path. [History C133](docs/releases/0.5.4-full-history/claims.md#c133).

  • Reuse FilterTable cutoff-log magnitudes and consumed FFT scratch across the four contrast kernels. This is a worker-preparation improvement, not a claimed audio-callback speed multiplier. [History C134](docs/releases/0.5.4-full-history/claims.md#c134).

  • Build only visible preset rows for large libraries and keep stable row identities through filtering and sorting. [History C146](docs/releases/0.5.4-full-history/claims.md#c146).

  • Keep direct host events off the configuration gate when they do not require rebuilding the patch. [History C157](docs/releases/0.5.4-full-history/claims.md#c157).

  • Reduce settled idle control-plane work by skipping unnecessary configuration and playback work when the patch and voice state are unchanged. [History C158](docs/releases/0.5.4-full-history/claims.md#c158).

  • Block-render known generator-driven Level/Pan routes and mixed VA FM/gain paths when their sources are available, instead of reverting the whole voice to scalar playback. [History C161](docs/releases/0.5.4-full-history/claims.md#c161).

  • Remove unused spectral banks and dead inline oscillator storage from the retained voice services, while preserving the active new-engine path. [History C162](docs/releases/0.5.4-full-history/claims.md#c162).

  • Borrow program keys for unchanged-patch comparisons instead of constructing throwaway candidate copies. [History C163](docs/releases/0.5.4-full-history/claims.md#c163).

Fixed

  • Preserve CLAP note lifecycle events when the framework note tracker fills, including exact note IDs, wildcard releases and choke events. This addresses stuck playback notes reported in Bitwig, and overlapping notes release their own voices.

  • Use one Additive graph for partials or waveform, removing the duplicate upper waveform and its unused mesh cache. Partial editing, selection, spacing, curve drafts and keyboard view switching are preserved.

  • Heap-own the existing Noise replay frame pools so host initialization does not carry their large arrays through stack temporaries. Reset retains the prepared allocation.

  • Adopt upstream X11 mapping, Windows hook and DLL-lifetime, and macOS layer/focus fixes in the native editor bridge.

  • Select the DX12 shader compiler for the actual Windows target: static DXC on supported MSVC builds, automatic compiler selection on GNU and ARM64.

  • Build macOS Audio Unit bundles with the target-aware packaging tool, matching the framework revision used by KURV.

  • Recognize Windows' built-in accessibility library when verifying CLAP and VST3 packages.

  • Align the Windows graphics allocator with the renderer’s Direct3D bindings so the Windows plugin build compiles.

  • At neutral settings, Custom distortion follows the authored transfer curve without an extra offset or normalization. Asymmetric and constant curves retain their authored zero-input output.

  • A module-title click opens its type menu without starting a reorder. Dragging starts after movement, and copied filters retain exact settings when their host values have not changed.

  • Keep additive operator modulation sample-accurate when a generator supplies either the child route or its parent, using the shared routing legality rules.

  • Release publication stops if the existing download manifest cannot be read, preserving other products and requiring verified archives for every platform.

  • Repair native editor scaling and macOS editor compilation during the MUI migration. [History C014](docs/releases/0.5.4-full-history/claims.md#c014).

  • Keep the Windows GPU allocation dependencies compatible with the editor renderer. [History C018](docs/releases/0.5.4-full-history/claims.md#c018).

  • Recover header styling, keep compact readouts from overlapping and correct oscillator panel geometry. [History C026](docs/releases/0.5.4-full-history/claims.md#c026).

  • Keep fast parameter drags at the released value without delayed editor echoes or snap-back from host synchronization. [History C027](docs/releases/0.5.4-full-history/claims.md#c027).

  • Correct knob stepping and compact control interaction so gestures follow their declared musical ranges. [History C028](docs/releases/0.5.4-full-history/claims.md#c028).

  • Paint menus and popups above floating routing pies so a modulation handle cannot show through a color picker. [History C035](docs/releases/0.5.4-full-history/claims.md#c035).

  • Keep the VA table menu readable at the minimum editor width by shortening DISTRIBUTE FRAMES EVENLY to DISTRIBUTE FRAMES. [History C036](docs/releases/0.5.4-full-history/claims.md#c036).

  • Keep route pies in floating overlays without shifting the underlying parameter layout. [History C052](docs/releases/0.5.4-full-history/claims.md#c052).

  • Give an armed parent-modulation drag ownership of the nested depth ring instead of editing the child route by mistake. [History C053](docs/releases/0.5.4-full-history/claims.md#c053).

  • Reject self-parent modulation and keep assignment controls accessible above existing routes. [History C054](docs/releases/0.5.4-full-history/claims.md#c054).

  • Cancel modulation gestures consistently on Escape and focus loss rather than leaving an invisible assignment active. [History C056](docs/releases/0.5.4-full-history/claims.md#c056).

  • Treat Keytrack, Velocity, Pressure and Timbre as finite response curves: the maximum Velocity endpoint stays at one instead of wrapping to zero. [History C059](docs/releases/0.5.4-full-history/claims.md#c059).

  • Keep oscillator table and source state coherent when presets or host state are reloaded after structural editing. [History C081](docs/releases/0.5.4-full-history/claims.md#c081).

  • Read live Grain telemetry from the actual synth engine rather than the silent legacy voice container, so playing Grain voices can drive the editor graph. [History C118](docs/releases/0.5.4-full-history/claims.md#c118).

  • Restore routed ModalBank Slope and CurveComb Morph audio after rejecting candidates that changed those routes. [History C127](docs/releases/0.5.4-full-history/claims.md#c127).

  • Keep the DSP state behind a heap handle and reuse preallocated oscillator configuration storage, avoiding oversized host-thread stack copies during processing and state handling. [History C156](docs/releases/0.5.4-full-history/claims.md#c156).

macOS · Windows · Linux

KIKstable

1.0.0

6 better

Better

  • Rebuild the low end and noise from your sample.

  • Draw pitch and volume curves. Add grit with distortion.

  • Keep a short part of the original attack.

  • Hover a preset and press Space to hear it. A line follows the sound across its waveform.

  • Try every feature for 28 days. No key or card needed to start.

  • Existing projects, presets and trial dates remain compatible.

Linux x86_64 · glibc 2.35+

KIKstable

0.1.2

5 better

Better

  • Hovering a preset gives its editor keyboard focus.

  • Space previews the card under the pointer immediately.

  • Its waveform playhead follows preview playback.

  • Text editing and inactive license screens keep their normal shortcuts.

  • Existing KIKK projects, presets and trial dates remain compatible.

Linux x86_64 · glibc 2.35+

KIKstable

0.1.1

4 better

Better

  • Renamed KIKK to KIK.

  • Start a full 28-day trial in the plugin. No key or card required.

  • Frosted activation backdrop.

  • Shorter activation screen.

Linux x86_64 · glibc 2.35+

KURVbeta

0.5.07

70 new · 58 better · 29 faster · 23 fixed

New

  • Switch the main Additive graph between editable partials and a read-only waveform view. Returning to partials preserves selection, spacing and curve edits.

  • KURV now plays through the rebuilt synth engine, rather than the old per-voice renderer. The modular patch, audio-rate routing and source operators share one playback architecture. [History C001](docs/releases/0.5.4-full-history/claims.md#c001).

  • Compile the patch into a playback program with an ordered module chain for each group and a concrete destination for each modulation route. [History C002](docs/releases/0.5.4-full-history/claims.md#c002).

  • Keep MIDI notes, velocity, pitch bend, glide and per-note expression in one note layer, instead of creating a separate note voice for each group. [History C004](docs/releases/0.5.4-full-history/claims.md#c004).

  • Replace the old editor rendering path with MUI's retained Vello Hybrid GPU runtime. This is a new graphics stack, not a skin over the previous editor. [History C008](docs/releases/0.5.4-full-history/claims.md#c008).

  • Show sampled CPU load and the active voice count in the editor header. [History C031](docs/releases/0.5.4-full-history/claims.md#c031).

  • Build patches from up to eight groups, with shared budgets of 32 oscillator slots, 32 filter slots and 32 auxiliary modules. [History C038](docs/releases/0.5.4-full-history/claims.md#c038).

  • Give groups their own ordered audio module chain, amplitude envelope, output gain, pan and output-pair routing. [History C039](docs/releases/0.5.4-full-history/claims.md#c039).

  • Allow audio-rate modulation to travel backward and across groups. Resolve playback order from the oscillator dependency graph rather than card order alone. [History C041](docs/releases/0.5.4-full-history/claims.md#c041).

  • Handle cyclic audio-rate routing explicitly: a backward edge inside a feedback cycle reads the previous sample rather than requiring an impossible ordering. [History C042](docs/releases/0.5.4-full-history/claims.md#c042).

  • Keep compatible structural modulation in the block renderer, including buffered VA routes, instead of falling back for the entire patch. [History C043](docs/releases/0.5.4-full-history/claims.md#c043).

  • Keep source-native operators attached to the source they process, while audio filters and effects remain in the group's audio chain. [History C044](docs/releases/0.5.4-full-history/claims.md#c044).

  • Organize additive processing into Pitch, Amp, Phase and Stereo lanes, with ordered fallback for older operator chains. [History C045](docs/releases/0.5.4-full-history/claims.md#c045).

  • Let additive amplitude lanes combine with Multiply, Maximum, Minimum, Add or Average rather than imposing one blend rule on every layer. [History C046](docs/releases/0.5.4-full-history/claims.md#c046).

  • Rebuild modulation around a shared domain model for graph editing, route legality, values and live state rather than editor-specific routing plumbing. [History C048](docs/releases/0.5.4-full-history/claims.md#c048).

  • Shape a modulation route with a remap curve before it reaches the destination. [History C049](docs/releases/0.5.4-full-history/claims.md#c049).

  • Multiply one route by another source to control its depth, allowing nested modulation rather than only additive destination offsets. [History C050](docs/releases/0.5.4-full-history/claims.md#c050).

  • Use compact source ports and destination pies for direct assignment and depth editing, with feedback for the current source and valid targets. [History C051](docs/releases/0.5.4-full-history/claims.md#c051).

  • Make source Rate a real modulation destination, including parent routes, instead of only allowing the source to modulate other modules. [History C058](docs/releases/0.5.4-full-history/claims.md#c058).

  • Add note-gated Sustain, Loop Point and Loop Hold LFO modes, alongside the existing free, retriggered and one-shot behaviors. [History C060](docs/releases/0.5.4-full-history/claims.md#c060).

  • Offer rate modes in Hertz, milliseconds and key-tracked frequency, with note-gate transitions controlling the loop markers. [History C061](docs/releases/0.5.4-full-history/claims.md#c061).

  • Shape random modulation through the editable response curve instead of limiting randomness to a fixed distribution. [History C062](docs/releases/0.5.4-full-history/claims.md#c062).

  • Use a 16-step gate source with per-step probabilities for rhythmic modulation. [History C063](docs/releases/0.5.4-full-history/claims.md#c063).

  • Extend the shared curve editor with editable segment behavior, selection and a reusable curve library. [History C064](docs/releases/0.5.4-full-history/claims.md#c064).

  • Keep performance sources available for macros, buttons, key tracking, velocity, pressure and timbre, alongside LFO/envelope modulation and the XY performance inputs. [History C066](docs/releases/0.5.4-full-history/claims.md#c066).

  • Retain the procedural virtual-analog foundation: canonical shapes and custom curves are evaluated by the oscillator rather than being a fixed sampled waveform bank. [History C070](docs/releases/0.5.4-full-history/claims.md#c070).

  • Draw and morph VA tables, import source data and keep editable table frames as part of the oscillator state. [History C071](docs/releases/0.5.4-full-history/claims.md#c071).

  • Define custom VA shapes with waveform expressions as well as drawn curves, using the shared expression compiler. [History C072](docs/releases/0.5.4-full-history/claims.md#c072).

  • Give each compatible oscillator its own unison count, detune range, distribution, jitter, width, alignment and pan-shape controls. [History C075](docs/releases/0.5.4-full-history/claims.md#c075).

  • Add PULSE phase processing and Offset while retiring the obsolete VA pulse/warp control arrangement. [History C077](docs/releases/0.5.4-full-history/claims.md#c077).

  • Unify Phase Bend shapes and allow a custom editable phase map rather than a separate fixed mode for every bend shape. [History C078](docs/releases/0.5.4-full-history/claims.md#c078).

  • Retain VA Prism phase processing using the instrument's own analytic periodic-source implementation. [History C079](docs/releases/0.5.4-full-history/claims.md#c079).

  • Retain continuous procedural Noise as an oscillator variant in the same group, automation and source-routing system as VA. [History C082](docs/releases/0.5.4-full-history/claims.md#c082).

  • Shape Noise with Level, Pan, Tilt, Gaps and Stereo, including burst-like gaps rather than a second oscillator type. [History C084](docs/releases/0.5.4-full-history/claims.md#c084).

  • Start new Additive oscillators with editable harmonics, while retaining a full-band procedural Wide Saw source for compatible older patches. [History C086](docs/releases/0.5.4-full-history/claims.md#c086).

  • Convert Wide Saw to editable partials and add an operator from the picker in one edit. [History C087](docs/releases/0.5.4-full-history/claims.md#c087).

  • Use an imported spectral table as an additive source and scan its frames through the common table system. [History C088](docs/releases/0.5.4-full-history/claims.md#c088).

  • Consolidate overlapping new-operator choices into Spectral Filter, Partial Shape, Stereo Shape and Partial Variation, while keeping legacy serialized operators available to old sessions. [History C089](docs/releases/0.5.4-full-history/claims.md#c089).

  • Draw a spectral filter response and use familiar low-pass, high-pass and tilt shapes without replacing the additive partial engine. [History C090](docs/releases/0.5.4-full-history/claims.md#c090).

  • Shape partial amplitudes with curve-based families that include contrast, blur, remap, gate, limit and other retained alterants. [History C091](docs/releases/0.5.4-full-history/claims.md#c091).

  • Make Stereo Shape Width alter the generated harmonic spread, while preserving the existing default sound. [History C092](docs/releases/0.5.4-full-history/claims.md#c092).

  • Add a frequency target to Ripple: the editable curve can bend partial pitch in semitones as well as shape amplitude. [History C093](docs/releases/0.5.4-full-history/claims.md#c093).

  • Add Prism Add and Prism Multiply as independent additive pitch operators with editable maps and common placement/routing. [History C095](docs/releases/0.5.4-full-history/claims.md#c095).

  • Keep Sample/Resynth and Grain in the shared oscillator contract, preserve imported source audio and prepare pitch/spectral analysis off the audio thread. Settled direct-sample playback reads its prepared band-limited source rather than running analysis during playback. [History C106](docs/releases/0.5.4-full-history/claims.md#c106).

  • Play Grain through a bounded, preallocated scheduler, with prepared pitch targeting and controlled grain lifetimes. [History C107](docs/releases/0.5.4-full-history/claims.md#c107).

  • Make Grain Speed scan through the source in the selected direction while preserving legacy behavior through the Scan state. [History C109](docs/releases/0.5.4-full-history/claims.md#c109).

  • Play spectral tables in Grain and improve frame scanning with a 64-frame prepared cache. [History C110](docs/releases/0.5.4-full-history/claims.md#c110).

  • Edit spectral tables from the Grain card instead of treating them as an invisible import artifact. [History C111](docs/releases/0.5.4-full-history/claims.md#c111).

  • Share immutable spectral tables across Grain, Additive and resonator features, and retain the table data in presets. [History C112](docs/releases/0.5.4-full-history/claims.md#c112).

  • Build spectral tables from analyzed audio and image data on worker/editor threads, within explicit frame and memory budgets. [History C113](docs/releases/0.5.4-full-history/claims.md#c113).

  • Capture a dedicated host sidechain into spectral tables rather than confusing the capture input with the instrument's output. [History C114](docs/releases/0.5.4-full-history/claims.md#c114).

  • Use worker-baked Rich PAD spectra for periodic playback, including prepared unison playback, without audio-thread FFT analysis. [History C115](docs/releases/0.5.4-full-history/claims.md#c115).

  • Add Spectral Loop resynthesis with a prepared harmonic loop bank spanning 16 roots and four snapshots, with playback crossfades rather than live analysis. [History C116](docs/releases/0.5.4-full-history/claims.md#c116).

  • Add a four-stage Diode Ladder low-pass filter with diode-like stage saturation, shared filter controls and editor support. [History C121](docs/releases/0.5.4-full-history/claims.md#c121).

  • Add FilterTable: prepare a minimum-phase, 64-tap FIR filter from a VA table and play it through the audio filter chain. [History C122](docs/releases/0.5.4-full-history/claims.md#c122).

  • Add a bounded ModalBank resonator for spectral/modal response, with prepared mode storage rather than an unbounded per-note allocation. [History C125](docs/releases/0.5.4-full-history/claims.md#c125).

  • Keep audio filters, analytic VA filters, spectral transforms and phase warps as distinct processing families. The audio family retains SVF, Phaser, Scream, Object and ModalBank alongside Diode Ladder and FilterTable, rather than presenting every operator as the same kind of filter. [History C128](docs/releases/0.5.4-full-history/claims.md#c128).

  • Retain source-aware VA low-pass, high-pass, comb and smoothing operators that evaluate the periodic source analytically. [History C129](docs/releases/0.5.4-full-history/claims.md#c129).

  • Retain spectral processing families including harmonic filtering, Tilt, Disperse and Random, using the source/operator chain's compatibility rules. [History C130](docs/releases/0.5.4-full-history/claims.md#c130).

  • Use a drawable distortion transfer curve with Amount, Multiply, skew and Mix, prepared from the same curve the editor shows. [History C131](docs/releases/0.5.4-full-history/claims.md#c131).

  • Add an ordered global effects rack after group mixing and before master gain, separate from each group's source and filter chain. [History C135](docs/releases/0.5.4-full-history/claims.md#c135).

  • Add master Delay and Reverb modules with their own controls and dry/wet balance. [History C136](docs/releases/0.5.4-full-history/claims.md#c136).

  • Add master Chorus, Phaser and Flanger modules for modulation effects after the group mix. [History C137](docs/releases/0.5.4-full-history/claims.md#c137).

  • Add master EQ, Distortion and Compressor modules in the same reorderable rack. [History C138](docs/releases/0.5.4-full-history/claims.md#c138).

  • Expose master effect controls to host automation and modulation using stable effect-kind identities; re-adding an effect returns to its existing host slot. [History C140](docs/releases/0.5.4-full-history/claims.md#c140).

  • Repair legacy preset migration and loading on the rebuilt engine instead of silently dropping incompatible state. [History C142](docs/releases/0.5.4-full-history/claims.md#c142).

  • Provide a full preset workflow in the MUI editor: browse, filter, sort, favorite, audition, save, import, export and delete user presets. [History C145](docs/releases/0.5.4-full-history/claims.md#c145).

  • Scan additional preset folders, including shared or cloud-library locations, from the editor's preset settings. [History C148](docs/releases/0.5.4-full-history/claims.md#c148).

  • Retain the Everything factory patch as a dense demonstration of multiple module kinds, sources and routing rather than counting it as a new DSP engine. [History C151](docs/releases/0.5.4-full-history/claims.md#c151).

  • Offer REPORT A BUG from Settings, opening the public issue tracker with instrument/build context. [History C153](docs/releases/0.5.4-full-history/claims.md#c153).

Better

  • Show Grain's reported live readers with the chosen envelope and source positions. Requested overlap and the eight-reader limit are displayed separately, with the preview identifying its selected voice.

  • Keep ordinary playback in small blocks; only connected feedback cycles need sample-by-sample rendering inside their cycle. [History C003](docs/releases/0.5.4-full-history/claims.md#c003).

  • Use one oscillator-control catalog for the editor, host automation, musical ranges and value formatting, so the same control means the same thing throughout the instrument. [History C005](docs/releases/0.5.4-full-history/claims.md#c005).

  • Use one placement and connection system for source operators; each source engine supplies its own processing rather than duplicating the whole operator workflow. [History C006](docs/releases/0.5.4-full-history/claims.md#c006).

  • Make the MUI editor the only product frontend. The old egui and GPUI reference frontends are no longer selectable product editors. [History C007](docs/releases/0.5.4-full-history/claims.md#c007).

  • Move border and contour rendering fixes into upstream MUI and remove the downstream patch-replay arrangement. [History C010](docs/releases/0.5.4-full-history/claims.md#c010).

  • Use MUI and its host bridge as upstream Git dependencies rather than shipping a private, uncommitted editor checkout. [History C011](docs/releases/0.5.4-full-history/claims.md#c011).

  • Separate the shared editor model from frontend rendering, keeping patch editing, persistence and parameter binding independent of the retired UI toolkits. [History C012](docs/releases/0.5.4-full-history/claims.md#c012).

  • Integrate MUI's native window/input bridge, including the Windows keyboard-capture policy used by the editor. [History C015](docs/releases/0.5.4-full-history/claims.md#c015).

  • Use editor-parented native Linux file choosers. Cancel pending dialogs when the editor closes and finish owned dialog workers before unload. [History C017](docs/releases/0.5.4-full-history/claims.md#c017).

  • Rebuild the workspace around a fluid, resizable MUI layout with connected group headers, source cards and operator surfaces. [History C021](docs/releases/0.5.4-full-history/claims.md#c021).

  • Give oscillator cards a narrow identity rail and contiguous waveform, unison and pan panels, with the waveform as the main editing surface. [History C022](docs/releases/0.5.4-full-history/claims.md#c022).

  • Make group identity and routing clearer with consistent headers, output readouts, rulers and categorized insertion menus. [History C023](docs/releases/0.5.4-full-history/claims.md#c023).

  • Redesign operator cards around their actual controls and useful previews instead of unrelated decorative surfaces. [History C024](docs/releases/0.5.4-full-history/claims.md#c024).

  • Reorder modules through real card/title drags with explicit drag feedback, rather than treating the waveform or source-routing port as a reorder grip. [History C025](docs/releases/0.5.4-full-history/claims.md#c025).

  • Show concise musical values and units on bound generator controls, and expose matching text to CLAP and VST3 hosts. [History C029](docs/releases/0.5.4-full-history/claims.md#c029).

  • Identify the build in the masthead, not just the version number, so development and packaged builds can be distinguished. [History C030](docs/releases/0.5.4-full-history/claims.md#c030).

  • Use a right-side settings drawer with click-away and Escape dismissal instead of the earlier welded reveal. [History C032](docs/releases/0.5.4-full-history/claims.md#c032).

  • Open the native color picker inline below its swatch and group settings into appearance, audio and account-related controls. [History C033](docs/releases/0.5.4-full-history/claims.md#c033).

  • Make surface tint, contrast, accent mute, oscillator color, modulation cables, interface scale and resynth detail explicit settings. [History C034](docs/releases/0.5.4-full-history/claims.md#c034).

  • Use flat accent fills and restrained baselines for envelope and response plots rather than gradient decoration. [History C037](docs/releases/0.5.4-full-history/claims.md#c037).

  • Preserve a group's musical identity when it is reordered, instead of treating its new position as a different envelope or bus history. [History C040](docs/releases/0.5.4-full-history/claims.md#c040).

  • Apply post-group controls at host-frame boundaries and route shared group controls without unnecessary staging copies. [History C047](docs/releases/0.5.4-full-history/claims.md#c047).

  • Unify connection and routing gestures so the same pie interaction is used across oscillator, operator and parameter destinations. [History C055](docs/releases/0.5.4-full-history/claims.md#c055).

  • Use the same curve representation across waveform, LFO and response editing instead of maintaining unrelated curve systems. [History C065](docs/releases/0.5.4-full-history/claims.md#c065).

  • Support per-note pitch, pressure, volume, pan and timbre through the shared note-expression layer used by the host shell. [History C067](docs/releases/0.5.4-full-history/claims.md#c067).

  • Keep mono retrigger, legato and glide behavior in the new note engine, with bounded release and voice-stealing handling. [History C068](docs/releases/0.5.4-full-history/claims.md#c068).

  • Compile drawn waveforms into qualified shared-slope curves with derivative regularization, rather than shipping the rejected compiler experiments. [History C073](docs/releases/0.5.4-full-history/claims.md#c073).

  • Restore VA Vocode, Harmonic Stretch and Disperse processing up to the host Nyquist limit at 48 and 96 kHz instead of truncating the high harmonics. [History C076](docs/releases/0.5.4-full-history/claims.md#c076).

  • Keep Noise intrinsically single-lane and present it as a compact waveform-and-shaping card, without irrelevant pitch or unison controls. [History C083](docs/releases/0.5.4-full-history/claims.md#c083).

  • Give new Ripple operators zero starting speed, give Phase Bend useful starting depth and expose additive phase editing directly on operator cards. [History C094](docs/releases/0.5.4-full-history/claims.md#c094).

  • Expand additive unison to 1–16 lanes. Saved counts migrate, but old normalized DAW automation now addresses the wider range rather than the earlier 1–4 range. [History C096](docs/releases/0.5.4-full-history/claims.md#c096).

  • Keep persisted PCM from being normalized a second time when a stored source is restored. [History C108](docs/releases/0.5.4-full-history/claims.md#c108).

  • Present Grain, Rich and Spectral Loop as the visible Resynth algorithms. The old Sample algorithm remains a decoder compatibility value, not a newly advertised mode. [History C117](docs/releases/0.5.4-full-history/claims.md#c117).

  • Size prepared voice storage to the published source and avoid retaining unnecessary additive retirement state. [History C120](docs/releases/0.5.4-full-history/claims.md#c120).

  • Keep FilterTable's current product limit explicit: it addresses the first eight VA source slots, not all 32 oscillator slots, and its magnitude response is an approximation. [History C123](docs/releases/0.5.4-full-history/claims.md#c123).

  • Build FilterTable kernels on a worker and publish completed plans with clear, acknowledgement and failure handling rather than compiling kernels during audio playback. [History C124](docs/releases/0.5.4-full-history/claims.md#c124).

  • Keep ModalBank's mode state in a persistent SIMD-friendly layout rather than gathering and scattering each mode every sample. [History C126](docs/releases/0.5.4-full-history/claims.md#c126).

  • Persist distortion-curve edits with their module and publish prepared data only when the curve changes. [History C132](docs/releases/0.5.4-full-history/claims.md#c132).

  • Keep one processor per effect kind and preserve its audio state when the rack is reordered. [History C139](docs/releases/0.5.4-full-history/claims.md#c139).

  • Publish a fixed-size effects snapshot only when the edited rack generation changes, instead of having the audio thread read the locked editor document. [History C141](docs/releases/0.5.4-full-history/claims.md#c141).

  • Preserve the configured plugin identities, preset extension and legacy preset roots during the MOOSE host migration, with checked-in compatibility fixtures. [History C143](docs/releases/0.5.4-full-history/claims.md#c143).

  • Keep factory preset state intact in the host tooling rather than replacing the patch with default host-bank values. [History C144](docs/releases/0.5.4-full-history/claims.md#c144).

  • Keep keyboard auditions in view and retain the pre-audition patch so browsing can be dismissed without losing the original sound. [History C147](docs/releases/0.5.4-full-history/claims.md#c147).

  • Retain migration support for older KURV preset generations; the history appendix records the original external .kurv-to-.kurvy migrator separately from current loading behavior. [History C149](docs/releases/0.5.4-full-history/claims.md#c149).

  • Keep legacy additive variants and frozen host-bank numbering available while structural edits update the displayed names and hidden controls. [History C150](docs/releases/0.5.4-full-history/claims.md#c150).

  • Update the Matari-Access licensing integration alongside the host/editor migration rather than introducing a separate licensing system for each plugin format. [History C152](docs/releases/0.5.4-full-history/claims.md#c152).

  • Move CLAP, VST3 and standalone hosting to MOOSE and add the AU v2 integration for macOS. Format support in source is distinct from the artifacts actually published for a release. [History C154](docs/releases/0.5.4-full-history/claims.md#c154).

  • Share the same instrument, parameters, persistence and DSP between plugin formats and standalone instead of maintaining different synth implementations per host. [History C155](docs/releases/0.5.4-full-history/claims.md#c155).

  • Use a half-band decimator for two-times-oversampled group runs rather than the heavier generic path. [History C159](docs/releases/0.5.4-full-history/claims.md#c159).

  • Use four-times oversampling for offline rendering where the host provides an offline render mode. [History C160](docs/releases/0.5.4-full-history/claims.md#c160).

  • Provide a faster local edit/test loop and a focused operator-kernel harness; the engineering appendix retains the measured workloads and their limits. [History C164](docs/releases/0.5.4-full-history/claims.md#c164).

  • Use the workstation/shared CI controls and avoid duplicate CI executions for the same pull request. [History C165](docs/releases/0.5.4-full-history/claims.md#c165).

  • Update actual plugin build and packaging tooling to the MOOSE host stack, rather than treating an editor gallery as a plugin delivery. [History C166](docs/releases/0.5.4-full-history/claims.md#c166).

  • Keep three-platform release automation, verified archive metadata and manifest publication as an explicit delivery step separate from source integration. [History C167](docs/releases/0.5.4-full-history/claims.md#c167).

  • Retain signed/notarized macOS packaging tooling while distinguishing macOS trust status from unsigned Windows and non-applicable Linux signatures. [History C168](docs/releases/0.5.4-full-history/claims.md#c168).

  • Preserve the vendor DSP research archive, including negative results and bounded unknowns. Research about another synth is not a claim that KURV copies it or matches its performance. [History C169](docs/releases/0.5.4-full-history/claims.md#c169).

  • Retain the full optimization workstream ledger alongside the complete product history; documentation-only checkpoints and held trials are not counted as shipped features. [History C170](docs/releases/0.5.4-full-history/claims.md#c170).

Faster

  • Borrow oscillator settings when seeding notes instead of copying the configuration bank, while preserving the current phase position.

  • Reuse clean retained graphics tiles and adapt larger redraws to a bounded tile cache, with whole-scene retention for oversized windows in the integrated MUI runtime. [History C009](docs/releases/0.5.4-full-history/claims.md#c009).

  • Coalesce consecutive hover samples before rebuilding the UI while preserving drag, button, keyboard, wheel and modifier-event ordering. [History C013](docs/releases/0.5.4-full-history/claims.md#c013).

  • Observe editor animation on native window ticks so visual updates follow the window's display cadence. [History C016](docs/releases/0.5.4-full-history/claims.md#c016).

  • Cache previews and static geometry by the inputs that change them, including source revisions and wavetable snapshots, instead of rebuilding unchanged plots on every frame. [History C019](docs/releases/0.5.4-full-history/claims.md#c019).

  • Reuse port wells, module-tab outlines and envelope/gate geometry during animated editor frames. [History C020](docs/releases/0.5.4-full-history/claims.md#c020).

  • Avoid recompiling the modulation program merely because an overflow route's depth changes. [History C057](docs/releases/0.5.4-full-history/claims.md#c057).

  • Reuse exact matching LFO-rate evaluations and copy only active source state during playback, rather than evaluating or copying inactive source slots. [History C069](docs/releases/0.5.4-full-history/claims.md#c069).

  • Keep portable four-lane and eight-lane VA curve rendering paths for supported platforms and dense unison playback. [History C074](docs/releases/0.5.4-full-history/claims.md#c074).

  • Keep settled stacks of compatible phase operators on the VA block-rendering path. [History C080](docs/releases/0.5.4-full-history/claims.md#c080).

  • Replay exact Noise cycles under SYNC, including the default stereo case, instead of repeating identical source work after master resets. [History C085](docs/releases/0.5.4-full-history/claims.md#c085).

  • Share prepared harmonic banks across unison lanes and bake eligible settled operator chains into them. [History C097](docs/releases/0.5.4-full-history/claims.md#c097).

  • Keep eligible static additive banks active under SYNC and common-phase operators instead of discarding the prepared bank unnecessarily. [History C098](docs/releases/0.5.4-full-history/claims.md#c098).

  • Reuse pitch-independent additive operator targets while FM changes the played pitch. [History C099](docs/releases/0.5.4-full-history/claims.md#c099).

  • Cull eligible Converge packets and batch consecutive unmasked Shift operators during audio-rate playback. [History C100](docs/releases/0.5.4-full-history/claims.md#c100).

  • Reuse repeated additive spectral-filter and Comb responses while preserving each operator's own wet amount and modulation. [History C101](docs/releases/0.5.4-full-history/claims.md#c101).

  • Bound slow Ripple and Barberpole update work and use direct partial rendering when that is cheaper than rebuilding a harmonic cache. [History C102](docs/releases/0.5.4-full-history/claims.md#c102).

  • Admit only qualified static amplitude-response reuse; moving controls return to the full renderer instead of borrowing an invalid cached response. [History C103](docs/releases/0.5.4-full-history/claims.md#c103).

  • Omit unused additive pitch workspace for plans that do not need direct pitch processing, while preserving plan handover. [History C104](docs/releases/0.5.4-full-history/claims.md#c104).

  • Share immutable prepared Prism maps across voices instead of rebuilding matching maps separately for every voice. [History C105](docs/releases/0.5.4-full-history/claims.md#c105).

  • Skip PCM reads that are discarded at full spectral blend while keeping grain timing and the return to PCM intact. [History C119](docs/releases/0.5.4-full-history/claims.md#c119).

  • Reuse stable FilterTable kernels, improve moving-kernel interpolation and borrow prepared coefficient banks rather than copying them into every processing path. [History C133](docs/releases/0.5.4-full-history/claims.md#c133).

  • Reuse FilterTable cutoff-log magnitudes and consumed FFT scratch across the four contrast kernels. This is a worker-preparation improvement, not a claimed audio-callback speed multiplier. [History C134](docs/releases/0.5.4-full-history/claims.md#c134).

  • Build only visible preset rows for large libraries and keep stable row identities through filtering and sorting. [History C146](docs/releases/0.5.4-full-history/claims.md#c146).

  • Keep direct host events off the configuration gate when they do not require rebuilding the patch. [History C157](docs/releases/0.5.4-full-history/claims.md#c157).

  • Reduce settled idle control-plane work by skipping unnecessary configuration and playback work when the patch and voice state are unchanged. [History C158](docs/releases/0.5.4-full-history/claims.md#c158).

  • Block-render known generator-driven Level/Pan routes and mixed VA FM/gain paths when their sources are available, instead of reverting the whole voice to scalar playback. [History C161](docs/releases/0.5.4-full-history/claims.md#c161).

  • Remove unused spectral banks and dead inline oscillator storage from the retained voice services, while preserving the active new-engine path. [History C162](docs/releases/0.5.4-full-history/claims.md#c162).

  • Borrow program keys for unchanged-patch comparisons instead of constructing throwaway candidate copies. [History C163](docs/releases/0.5.4-full-history/claims.md#c163).

Fixed

  • Build macOS Audio Unit bundles with the target-aware packaging tool, matching the framework revision used by KURV.

  • Recognize Windows' built-in accessibility library when verifying CLAP and VST3 packages.

  • Align the Windows graphics allocator with the renderer’s Direct3D bindings so the Windows plugin build compiles.

  • At neutral settings, Custom distortion follows the authored transfer curve without an extra offset or normalization. Asymmetric and constant curves retain their authored zero-input output.

  • A module-title click opens its type menu without starting a reorder. Dragging starts after movement, and copied filters retain exact settings when their host values have not changed.

  • Keep additive operator modulation sample-accurate when a generator supplies either the child route or its parent, using the shared routing legality rules.

  • Release publication stops if the existing download manifest cannot be read, preserving other products and requiring verified archives for every platform.

  • Repair native editor scaling and macOS editor compilation during the MUI migration. [History C014](docs/releases/0.5.4-full-history/claims.md#c014).

  • Keep the Windows GPU allocation dependencies compatible with the editor renderer. [History C018](docs/releases/0.5.4-full-history/claims.md#c018).

  • Recover header styling, keep compact readouts from overlapping and correct oscillator panel geometry. [History C026](docs/releases/0.5.4-full-history/claims.md#c026).

  • Keep fast parameter drags at the released value without delayed editor echoes or snap-back from host synchronization. [History C027](docs/releases/0.5.4-full-history/claims.md#c027).

  • Correct knob stepping and compact control interaction so gestures follow their declared musical ranges. [History C028](docs/releases/0.5.4-full-history/claims.md#c028).

  • Paint menus and popups above floating routing pies so a modulation handle cannot show through a color picker. [History C035](docs/releases/0.5.4-full-history/claims.md#c035).

  • Keep the VA table menu readable at the minimum editor width by shortening DISTRIBUTE FRAMES EVENLY to DISTRIBUTE FRAMES. [History C036](docs/releases/0.5.4-full-history/claims.md#c036).

  • Keep route pies in floating overlays without shifting the underlying parameter layout. [History C052](docs/releases/0.5.4-full-history/claims.md#c052).

  • Give an armed parent-modulation drag ownership of the nested depth ring instead of editing the child route by mistake. [History C053](docs/releases/0.5.4-full-history/claims.md#c053).

  • Reject self-parent modulation and keep assignment controls accessible above existing routes. [History C054](docs/releases/0.5.4-full-history/claims.md#c054).

  • Cancel modulation gestures consistently on Escape and focus loss rather than leaving an invisible assignment active. [History C056](docs/releases/0.5.4-full-history/claims.md#c056).

  • Treat Keytrack, Velocity, Pressure and Timbre as finite response curves: the maximum Velocity endpoint stays at one instead of wrapping to zero. [History C059](docs/releases/0.5.4-full-history/claims.md#c059).

  • Keep oscillator table and source state coherent when presets or host state are reloaded after structural editing. [History C081](docs/releases/0.5.4-full-history/claims.md#c081).

  • Read live Grain telemetry from the actual synth engine rather than the silent legacy voice container, so playing Grain voices can drive the editor graph. [History C118](docs/releases/0.5.4-full-history/claims.md#c118).

  • Restore routed ModalBank Slope and CurveComb Morph audio after rejecting candidates that changed those routes. [History C127](docs/releases/0.5.4-full-history/claims.md#c127).

  • Keep the DSP state behind a heap handle and reuse preallocated oscillator configuration storage, avoiding oversized host-thread stack copies during processing and state handling. [History C156](docs/releases/0.5.4-full-history/claims.md#c156).

macOS · Windows · Linux

RELAYstable

0.5.0

4 better

Better

  • Two RELAY plugins in one room now send and receive audio over LAN or WebRTC. Browser listeners hear both plugins together.

  • Browser listeners can name themselves. The sharing plugin shows each browser microphone and plugin return in a compact strip with its own gain, mute and level meter.

  • Separate input and output MUTE controls dim their meters when active. THRU controls whether local DAW input passes to the plugin output.

  • The plugin opens at a more readable size and waits for a pause or Enter before reconnecting after room or password edits.

macOS · Windows · Linux

RELAYstable

0.4.2

2 better

Better

  • The browser listen page shows the optional room password before joining and sends it with the first join request.

  • The RELAY product page now matches the plugin's Signal look, with clearer downloads, comparison and help sections.

macOS · Windows · Linux

RELAYstable

0.4.1

3 better

Better

  • Browser listeners have separate talkback gain sliders in the plugin's mic view, with live indicators and a 0 dB reset.

  • The plugin and browser use Matari's Signal look: lime, Silkscreen headings, Departure Mono readouts and the animated dot and chevrons. The plugin's changelog and settings panel offers a saved Standard appearance too.

  • The listen page keeps a compact content-sized card when mic mode and the room roster are visible in Firefox.

macOS · Windows · Linux

RELAYstable

0.4.0

7 better

Better

  • Built on MOOSE 7 (Matari's truce fork) instead of truce 6.3. Sessions and presets from 0.2.0 load unchanged.

  • An Audio Unit (AU v2) for macOS, in the same installer as the CLAP and VST3.

  • The meters and link status keep moving while the editor is left alone.

  • The editor scales with the window when you resize it.

  • The about panel's notes no longer overlap, and scroll when they don't fit.

  • Typing in the room and password fields works on Windows.

  • Includes MOOSE's archive and audio input routing fixes.

macOS · Windows · Linux

RELAYstable

0.2.0

9 better

Better

  • Rewritten from scratch: one small core, one plugin, one worker.

  • Internet rooms over WebRTC with Opus up to 510 kbps, adapting to the slowest listener under a ceiling you pick; lossless on a LAN.

  • Anyone can listen in a browser at relay.matari-audio.com/<room>, with their own volume.

  • Browser listeners can talk back with their mic; the plugin plays it and shows who is talking.

  • Nothing is sent over the internet during silence.

  • The buffer sizes itself to the network and resyncs in silence.

  • IN and OUT meters, each with its own fader.

  • The editor keeps its scale when reopened.

  • Windows, macOS (signed and notarized, Universal) and Linux.

macOS · Windows · Linux

KORREKTbeta

0.20.2

2 better · 1 fixed

Better

  • The scope derives its added-peak tint from the selected theme and keeps it out of the red spectrum; monochrome themes use a neutral highlight.

  • VIOLET, white with a blue-violet accent, is the new default theme.

Fixed

  • Center-only headroom retargets use bounded crossfades across large swings and predicted dry-peak overshoots. The demo phrase no longer gains peak level at any Analysis quality.

macOS · Windows · Linux

BUFFRstable

1.0.92

2 faster · 19 fixed

Recording that keeps going

Hosts misbehave. The take survives.

  • Fixed

    Recording no longer stalls when a host abandons an audio reader mid-callback. System Audio keeps recording while the host is away, and the problem is reported once in diagnostics.

  • Fixed

    Editing audio while BUFFR records can no longer, in rare cases, free a part of the recording that is still being written.

  • Fixed

    Crash-recovery saves can no longer lose the previous copy of a recording if a save fails partway, and leftovers from interrupted saves are cleaned up. If part of a long recording kept on disk can't be read back, BUFFR now shows Storage read failed instead of that audio silently going missing.

  • Fixed

    When a host sends larger audio blocks than it announced, System Audio keeps recording instead of dropping the block. Blocks that carry MIDI but no audio pass the MIDI through and no longer interrupt recording or freeze the meters. An invalid tempo or time signature from the host no longer breaks the metronome or bar grid.

  • Fixed

    On Linux, System Audio no longer risks corrupting its state when an app changes its stream format mid-capture, and a capture that is slow to stop no longer overlaps a second one that could garble the recording.

  • Fixed

    On Linux, global MIDI routing reconnects on its own once another app releases the controller, and closing BUFFR while routing starts takes a few seconds at most instead of up to 90.

MIDI and export values you can trust

What you export is what you played.

  • Fixed

    MIDI 2.0 values near zero now export near zero in MIDI 1 files instead of at about 61%. Sustain, program changes, and other on/off controls export exactly as recorded.

  • Fixed

    The piano roll and Smart Quantize pair note-ons and note-offs the same way, so notes on different ports or voices are no longer joined.

  • Fixed

    Imported MIDI files can no longer bring in out-of-range data, and grid snap no longer drifts over long sessions (about 14 ms by bar 1000).

  • Fixed

    Audio-to-MIDI previews play and seek before you keep any notes, and the controls make it clear which one keeps notes and which one clears the preview.

  • Fixed

    One invalid sample no longer makes Normalize silence the whole export, and Ride no longer gets stuck or produces garbage gain after invalid audio.

  • Fixed

    24-bit mono WAV exports with an odd number of frames include the padding byte that strict WAV readers require.

  • Fixed

    MP3, AAC, and Opus exports can no longer hang when the encoder prints a lot of diagnostics.

Steadier editor, lighter footprint

Fewer crashes, less busywork.

  • Fixed

    Dragging audio or MIDI out of the macOS standalone app works again. The first drag no longer flashes and fails, and a failed drag no longer blocks every later drag until BUFFR restarts.

  • Fixed

    Rare host crashes caused by invalid timeline, scrollbar, or accessibility values are fixed, and the MIDI lane no longer keeps redrawing after very long recordings.

  • Fixed

    Processed previews no longer stay unavailable after the audio changes during a render, and preview playback keeps working after several cancelled previews.

  • Fixed

    If undo or redo fails partway, BUFFR clears the edit history and says so instead of silently losing an entry.

  • Faster

    Dragging a slider no longer rewrites your preferences on every frame; changes save when you let go or after a short pause.

  • Faster

    The spectrogram reserves much less graphics memory, growing its drawing buffer as needed up to 8 MB instead of claiming 64 MB per display format up front, and export progress no longer piles up in memory while the editor is busy.

Crash reports

Better evidence when something goes wrong.

  • Fixed

    macOS crash summaries include the exception details and the original exception backtrace.

  • Fixed

    Crash reporting no longer misses a crash when the system has reused the crashed host's process number, damaged crash records are cleared, and on Linux the first BUFFR instance no longer waits on the system crash log before starting.

Universal macOS installer ZIP (.pkg inside) · Windows x64 (.zip) · Linux x64 (.zip)

KORREKTbeta

0.20.1

2 new

New

  • Punch above 50 % raises the weaker polarity to meet the stronger instead of stacking the peaks onto one side, so the wave hits hard both ways around the centre line. At 100 % and Fine, both polarities of a lopsided bass pulse rise 3.5 dB and a dense mix 0.8 dB; a 120 Hz voice evens out with its top 0.7 dB lower. Punch up to 50 % is unchanged.

  • The scope draws a smooth volume envelope instead of per-pixel peaks: grey past the amber is what the correction took away, a gradient from amber to green on top of it is what it added.

macOS · Windows · Linux

KORREKTbeta

0.20.0

6 new · 1 better · 1 faster · 3 fixed

New

  • Rebuilds the engine as one continuously varying all-pass FIR. Each hop is transformed once; three realised filters give the exact output for every broadband rotation, θ glides per sample, and new band filters crossfade over one hop, so there is no block switching and no click at chunk edges.

  • Center holds θ at the minimum of a per-angle peak memory with a one-second half-life, matching the best fixed rotation on voice, beating it on half-wave material and staying within 0.2 dB of it on dense mixes.

  • Spectral steps sixteen ERB band phases along an FFT gradient and keeps only steps that lower the true peak. On a 120 Hz voice at Fine, peaks drop 3.5 dB against 0.9 dB for Center alone.

  • Punch is now a knob that sets where both stages steer the peaks, at the same level: 0 % as low as phase can take them (headroom), 50 % left where they were, 100 % as high as they go, harmonics lined up into harder hits. At Fine, peaks move −3.5 and +4.7 dB on a 120 Hz voice and −1.0 and +2.9 dB on a dense mix at 0 and 100 %.

  • The Center control hosts a scrolling scope of up to 16 s (4 s by default, scroll to zoom): one opaque, centred waveform in the accent colour over the input in grey, so the grey that shows is what the correction took away, a live peak-change readout, and one lane per Spectral band on the same time axis that lights up as that band turns. Both run to the rim of the dial, drawn one column per physical pixel from ¼ ms bins with anti-aliased edges; finished columns are cached, so each frame only sums new audio, and the editor paints at 60 Hz only while audio flows.

  • EMBER, charcoal with amber, is the new default theme.

Better

  • Analysis now sets real host latency, 21, 43, 85 or 171 ms at 48 kHz for Fast, Balanced, Fine and Ultra, and replaces the Engine, Timing, Adaptive and Lookahead parameters and the host meters.

Faster

  • Uses 0.5–0.9 % of one core for stereo at 48 kHz, against 1.2–1.6 % for the old worker-thread optimiser, with no allocation on the audio thread.

Fixed

  • The plugin only reports sleep once the output is silent, and the declared tail is exact, fixing clap-validator's sleep test.

  • Knob digits and strokes follow the window size instead of staying fixed at 465 and 1240 px, and keep their seven-segment readout.

  • Parameters no longer carry groups that VST3 hosts could not resolve, fixing the Steinberg validator's unit check.

macOS · Windows · Linux

BUFFRstable

1.0.91

5 new · 5 better · 7 fixed

New

  • Audio-to-MIDI results are a source of their own. Detected notes get a diamond "Detected" row at the top of the MIDI channel sidebar, filtered independently of channels 1-16, so conversions no longer collide with recorded MIDI.

  • Audio-to-MIDI detects kick, snare, and closed hi-hat onsets on General MIDI drum channel 10; drum hits draw as short triangles in the MIDI lane.

  • Spectral view gains a Paint tool. Drag along a line in the spectrogram and BUFFR snaps the stroke to the nearest partial and adds the traced notes.

  • Detected notes draw noteGRABBER-style over the spectrogram as teal pitch bars beside a piano-key strip, and the MIDI lane's Detected row follows the audio lane's timeline instead of the MIDI lane's, so every detected note sits under the audio it came from.

  • Spectral view gains an A2Midi tool. The neural model analyses the audio selection, or the whole buffer, once in the background with no length cap, then note sensitivity, split sensitivity, and min length sliders re-decode it live so notes highlight the spectrogram in green and fill the MIDI lane's Detected row; Add commits them, and while the tool is on, Convert to MIDI and MIDI drag-out use the same settings. Viewing the Detected row on its own puts the MIDI lane on the audio timeline and grid, so detected notes zoom, snap, and play with the audio; All or any real channel keeps the MIDI lane's own grid. Turning on Paint or A2Midi selects the Detected row. Analysis and preview survive toggling the tool and only re-run when the audio changes; double-click a slider to reset it. The Detected row in the channel sidebar carries a sparkle icon, its lane no longer reports "No MIDI on selected channels" while detected notes are showing, and Space plays those notes from the visible window instead of counting silently from frame zero. Paint strokes snap to the spectral ridge under the pointer as you draw, skip anything below the spectrogram floor, and a tap in Paint mode no longer seeks the playhead.

Better

  • Audio-to-MIDI conversion adds only detected notes; the beat-grid kick and hi-hat track on MIDI channel 2 is gone, and the plugin is about 10 MB smaller.

  • New configurations start the spectral view at a 2048-point FFT; saved choices are preserved.

  • Documented that REAPER on Linux must run with GDK_BACKEND=x11: on a native Wayland GDK backend REAPER crashes inside its own window layer when any plugin editor opens.

  • When recording storage cannot be written at all, BUFFR now retries saving less often instead of every five seconds, and reports the folder it tried to write so the problem can be found; the same failure is no longer repeated in the log.

  • Reports and diagnostics now name the graphics adapter, backend, device type and driver that drew the interface, and whether GPU spectral analysis is active, so display and Spectral problems can be traced to the driver that caused them.

Fixed

  • macOS CLAP and VST3 plug-ins report the installed BUFFR version and their own bundle identifiers instead of a placeholder 1.0.0, so crash reports and Apple diagnostics name the release they came from.

  • macOS crash reports now carry the loaded image identifiers and addresses that a backtrace needs, and signed macOS builds keep their debug symbols, so a crash on macOS points at the code that caused it instead of an unrelated function.

  • On Retina Macs the plugin editor opens at the right size again. The VST3, AU, and CLAP editors were reporting their size in pixels where macOS hosts expect points, so REAPER and other hosts opened a double-sized window with the interface drawn at half scale in the bottom-left corner and refused to resize it.

  • Spectral GPU analysis now belongs to the editor that created it and to that plugin instance alone, so closing and reopening the editor (or running a second instance) can no longer hand background analysis a discarded graphics device.

  • The report window now comes to the front instead of opening behind Settings.

  • Opening several BUFFR panels at once on Linux no longer crashes the host. Each panel window registers itself with the system accessibility service, and a defect in that service's lookup code aborted the entire host application when two panels registered at the same time.

  • macOS asks for Screen & System Audio Recording as BUFFR itself, including inside a plugin host, instead of silently reusing whatever the host was granted. System Audio now reports itself as connected only once real audio arrives, so a capture that fails to start shows the reason it failed rather than flickering between connected and unavailable, and the permission guidance no longer disappears for good when you open System Settings: returning to BUFFR after granting permission restarts capture on its own.

Universal macOS installer ZIP (.pkg inside) · Windows x64 (.zip) · Linux x64 (.zip)

KURVbeta

0.20.06

2 new · 3 fixed

New

  • Settings > Interface > PRESETS lists extra preset folders with an ADD FOLDER… picker. Every listed folder is scanned as user presets, for a shared drive or a cloud library.

  • A migrator for KURV 0.8 .kurv presets: cargo run --example migrate_kurv_presets -- <in.kurv>... --out <dir> writes 0.20 .kurvy files and reports what carried over. In-group RATIO BRICKWALL filters move into the WARPs rack; the retired automation banks are dropped.

Fixed

  • Loading a preset restores every control. The browser wrote the file's host-automation bank over the patch and skipped the restore hook, so oscillator levels, filter cutoffs and group gains bound to an automation slot landed at minimum.

  • Factory presets show factory in the SAVED column instead of an epoch date.

  • Windows VST3 loads in hosts that scan without searching the plugin's own folder, FL Studio among them. The MinGW runtime (libstdc++, libgcc, winpthread) is linked statically, so no DLLs ship beside KURV.vst3.

macOS · Windows · Linux

KURVbeta

0.20.05

5 new · 19 better · 22 faster · 5 fixed

New

  • PM/FM now works on an oscillator that carries a prepared WARP (SPECTRAL, DISPERSE, TILT, RANDOM) or SYNC. A prepared spectrum is read by phase, so the per-sample phase offset lands at the table read; the refusal "Phase modulation cannot be combined with this WARP" is gone from the routing matrix, the host automation guards and the WARP assignment path.

  • Every modulated control shows what its modulation is doing right now: the dry value stays put and a run in each source's colour follows the value the audio thread is using, with a combined marker where several sources meet.

  • Modulated filters, distortion, WARPs and oscillator previews draw a ghost of themselves at the modulated values, in the modulator's colour, on top of the dry shape. Nothing is drawn and no extra work happens when nothing is modulated.

  • Added analytic VA low-pass, high-pass, comb, and smoothing WARPs with source antialiasing. Added hard Sync beside Bend and PWM, including reset correction and neutral-amount continuity.

  • KURV 0.20 starts a new state and preset format; older project and preset formats are rejected. Preset conversion is deferred to an external migrator.

Better

  • WARPs use title-bar mode selection, a filled waveform on the left, and readable inside-value knobs on an LFO-style control rail. Brickwall belongs to Spectral; phase warps have their own category.

  • Distortion adds Amount drive alongside Mult and Mix, with horizontal and vertical skew sliders around its drawable transfer curve.

  • Distortion is a separate generator-stack module with a drawable transfer curve, a compact shape selector, Multiply repeats, horizontal/vertical skew, and Mix. Removed Bias and Stereo controls.

  • Waveshaper curve edits persist with the module and publish prepared data to audio processors only when changed; modulation uses the same transfer function shown by the editor.

  • Moved the envelope inside the purple group identity header. Envelope lines provide direct stage and curve editing without visible point handles.

  • Warp assignments use compact connection pies on the oscillator, with source-hover feedback and a centered assignment gesture on its waveform panel.

  • Separated general phase warps from VA harmonic low-pass/high-pass filters in the insertion menu.

  • Restored customized group headers and large pane labels. Group envelopes sit above the generators, with direct stage and curve editing, pointer values, and gradient fill.

  • WARPs use compact boxed cards with small previews, segmented controls, and a centered add button.

  • Compatible oscillators reveal an assignment target beside their content. Per-connection amounts stay in a compact side strip and follow host automation.

  • Independent WARPs rack with categorized insertion, compatible-source assignment, and resizable left and right panes. Shared warp amount multiplies each connection's own automatable/modulatable depth.

  • Modulation gestures now start actual drags and cancel consistently on Escape, outside clicks, and focus loss.

  • Added prepared Disperse/Tilt/Random and seven configurable spectral transform families, with exact zero-depth neutrality and a bounded 255-harmonic correction.

  • Generator-stack distortion provides six transfer types with Drive, Bias, Spread, Mix, and antiderivative antialiasing.

  • Group output controls follow the module chain, with a playback-derived envelope overview and responsive aligned rows. Removed the redundant group-header waveform preview.

  • Reduced repeated filter-coefficient bank copies; controlled dense-patch measurements preserve exact audio statistics. This stress workload still exceeds its callback deadline.

  • Groups own their per-note amplitude envelopes. One-group and multi-group patches use the same render path, and reordering preserves envelope and bus histories by group identity.

  • Source-native processors belong to their source and are edited in the left pane. Audio effects remain in the group signal path.

  • Admit supported native chains explicitly: one built-in VA Brickwall followed by an optional Phase Warp. Unsupported orders, source representations, spectral Warp, Tilt, Random, and Sync remain unavailable pending DSP qualification.

Faster

  • Recompiling a prepared WARP skips its band pass entirely when the band spans the whole spectrum, and derives the Tilt pivot once instead of once per bin. Bit-identical audio; eight voices of sixty-four unison with a 1 kHz LFO on the amount: Tilt 0.72 ms to 0.63 ms, Disperse 0.71 ms to 0.61 ms, Time Skew 0.75 ms to 0.65 ms per callback.

  • Per-lane harmonic limits stay in integer vector lanes instead of being cast to usize one lane at a time, which compiled to eight saturating scalar conversions per sample. Bit-identical audio; eight voices of sixty-four unison with a 1 kHz LFO on the amount: Brickwall high-pass 0.98 ms to 0.80 ms, Brickwall low-pass 0.76 ms to 0.70 ms, Disperse 0.74 ms to 0.71 ms per callback.

  • Each Brickwall prefix table row is padded so its cubic neighbourhood is four contiguous samples and its stride is no longer a power of two, so a table read is one sixteen-byte load per lane instead of four gathers into conflicting cache sets. Bit-identical audio; eight voices of sixty-four unison with a 1 kHz LFO on the amount: Brickwall high-pass 1.18 ms to 0.98 ms per callback.

  • A prepared-spectral table read is one sixteen-byte load per lane instead of four scalar loads, because every correction mip now repeats its first entry in a wrap pad and lane indices are derived in vector registers. Bit-identical audio; eight voices of sixty-four unison with a 1 kHz LFO on the amount: Tilt 0.96 ms to 0.76 ms, Disperse 0.94 ms to 0.74 ms, Time Skew 0.96 ms to 0.78 ms, Vocode 0.52 ms to 0.41 ms, Formant 0.53 ms to 0.41 ms, Random 0.52 ms to 0.42 ms per callback.

  • Brickwall derives its per-lane harmonic limits, band edge weights and prefix table positions eight lanes wide instead of one lane at a time. Bit-identical audio; eight voices of sixty-four unison with a 1 kHz LFO on the amount: Brickwall high-pass 1.48 ms to 1.18 ms, Brickwall low-pass 0.89 ms to 0.75 ms per callback.

  • The analytic WARP low pass skips its boundary exponential on the samples where every unison lane sits far enough into the cycle for that exponential to be under 1e-7, which is past the f32 resolution of the basis it corrects. About 2% of CURVE LP at eight voices of sixty-four unison; the output moves by about 2e-11 relative.

  • The phase WARPs (BEND, HARM, PWM) advance their warp harmonics by a fixed rotation seeded once per block instead of evaluating a sine polynomial per sample, and fold the displacement scale into the depth ceiling and the per-frame amounts so the block loop is a broadcast, a clamp and a fused add. Eight voices of sixty-four unison with a 1 kHz LFO on the amount: BEND 0.19 ms to 0.14 ms, HARM 0.18 ms to 0.13 ms, PWM 0.22 ms to 0.14 ms per callback. A new test bounds the rotation against the portable kernel at 2e-6.

  • CURVE SMOOTH answers a whole cycle from its closed form, waveform events included, whenever the smoothing width spans enough samples for the antialiasing kernel's second-moment term to be accurate there; only a cutoff above 3.6% of the sample rate still pays the per-lane quadrature. Eight voices of sixty-four unison with a 1 kHz LFO on the amount: 0.88 ms to 0.55 ms per callback. A new test bounds the substitution against a direct convolution of the ideal basis at 1e-3.

  • The analytic WARP filters hand the dry unison block straight to the left mix instead of writing a discarded second channel, and only add the wet difference on the frames that have one. CURVE LP 0.72 ms to 0.70 ms, CURVE SMOOTH 0.91 ms to 0.88 ms, CURVE COMB 0.57 ms to 0.56 ms per callback; the reassociated mix moves the output by about 1e-7 relative.

  • The Sync WARP keeps its lane batch in registers on the local-edge path instead of spilling it to arrays first. Bit-identical audio; 0.72 ms to 0.71 ms per callback.

  • The Sync WARP's local edge kernel takes one reciprocal per sample instead of a divide per edge family per master cycle, and each slave edge evaluates only the residual its family can carry. 0.75 ms to 0.72 ms per callback at eight voices of sixty-four unison; the output moves by about 1e-9 relative from the reassociated divides.

  • The Sync WARP skips its antialiasing-mode correction on the samples where no unison lane sits inside a spline kernel's edge support and the two evaluations cancel exactly. Eight voices of sixty-four unison with a 1 kHz LFO on the amount: 0.94 ms to 0.75 ms per callback. The remaining samples are unchanged; the skipped ones drop a cancelling add/subtract pair, moving the output by about 7e-9 relative.

  • The analytic WARP filters render their dry source with the same whole-block unison kernel the unwarped voice uses, and their eight-lane kernel resolves its filter constants once per block instead of once per sample. Eight voices of sixty-four unison with a 1 kHz LFO on the amount: CURVE LP 0.81 ms to 0.72 ms, CURVE SMOOTH 1.01 ms to 0.91 ms per callback. CURVE LP and CURVE SMOOTH are bit-identical; CURVE COMB's two shifted taps now advance as their own blocks, which moves its output by about 4e-8 relative.

  • the analytic WARP low pass derives its far boundary exponential from the near one instead of evaluating a second vector exponential per sample. CURVE LP on a 64-voice unison stack drops from 0.89 ms to 0.79 ms per callback, with the same audio.

  • analytic WARP filters fall back to the scalar antialiasing quadrature per lane instead of per eight-lane batch, so one lane whose kernel straddles a waveform event no longer costs the whole batch. CURVE SMOOTH on a 64-voice unison stack drops from 1.26 ms to 0.99 ms per callback.

  • Sync renders its bandlimited reset edges eight lanes wide below the primitive cancellation threshold, and skips the edge families that are out of kernel range. Eight voices of sixty-four unison with a 1 kHz LFO on the Sync amount: 2.43 ms to 0.92 ms median per callback, a 2.6x saving, with no measurable change in alias energy.

  • Recompiling a modulated prepared WARP only builds and stores the harmonics a correction mip can read, instead of the whole 1024-bin spectrum. Bit-identical audio; Tilt 1.00 ms to 0.94 ms per callback.

  • The prepared-spectral correction lookup derives its table indices eight lanes wide, from mip geometry resolved once per block, instead of one lane at a time. Bit-identical audio; Vocode 0.75 ms to 0.53 ms, Tilt 1.23 ms to 1.00 ms per callback at eight voices of sixty-four unison.

  • A modulated prepared WARP rebuilds its spectrum only on the samples that can compile a new endpoint, instead of once per sample and discarding sixty-three of every sixty-four. Bit-identical audio; Vocode 0.91 ms to 0.75 ms, Tilt 1.32 ms to 1.23 ms per callback at eight voices of sixty-four unison.

  • Prepared-spectral WARPs (Spectral, Tilt, Disperse, Time Skew, Random) share one table index across the crossfade endpoints and choose their correction mips once per block instead of once per sample. Bit-identical audio; eight voices of sixty-four unison with a 1 kHz LFO on the amount: Tilt 2.13 ms to 1.32 ms, Disperse 2.10 ms to 1.33 ms, Time Skew 2.10 ms to 1.32 ms, Vocode 1.11 ms to 0.91 ms per callback.

  • The block-major WARP amount path is no longer limited to single-group patches, so cross-group audio-rate modulation keeps eight-lane block rendering. Eight voices of sixty-four unison with a 64-lane oscillator on a WARP amount in another group: 2.18 ms to 0.24 ms median per callback, no missed deadlines.

  • Every WARP renders block-major and eight lanes wide, including Brickwall, Tilt, Disperse and Time Skew, which previously dropped the whole voice back to sample-by-sample rendering. Modulated WARPs on sixty-four unison voices cost between two and five times less CPU. x86 builds now require SSE4.1.

Fixed

  • Audio-rate sources now cross group boundaries in both directions. An oscillator in one group can drive a WARP amount, a phase, or a pitch in any other group, in either direction and in mutual pairs; the render order is a topological sort of the whole oscillator graph, and a cycle reads the previous sample. Previously the audio source had to precede its targets inside the same group.

  • Oscillator previews include assigned warps and independent connection amounts. Connection markers expand with the oscillator rail, show names only while dragging, and double-click removes the assignment.

  • Collapsed envelope stages remain draggable to increase their duration. Strengthened the envelope fill and removed its bottom baseline.

  • Apply source gains once in block rendering and retain per-voice Group Pitch modulation. Save and restore allocated host values through the same configuration boundary.

  • Keep plugin creation on a bounded host stack by constructing the boxed DSP state on a dedicated initialization thread.

macOS · Windows · Linux

BUFFRpreview

1.0.90

5 better

Better

  • Rebuilt Settings around Input, Capture, Export, Appearance, and Performance, with License, Updates, Diagnostics, and Report inside one window. Stable accessible names for icon-only controls, consistent spacing, stronger headings, aligned icons, solid accents, readable slider values and FFT menus that close after selection, and compact native dialogs replace nested panels and uneven padding. Theme and spectral colors edit directly, save automatically, and reset to their original presets. Settings preserve valid saved choices across upgrades and merge changes between instances; new configurations default to icon-only toolbars, solid waveform fill, and two hours of history.

  • Added faster GPU spectral analysis and wavelet synchrosqueezing for clearer separation of nearby notes, plus GPU spectral selection where supported and CPU fallback. Faster parallel loading, reusable zoom detail, adaptive memory limits, Overview and Full detail modes, corrected frequency scaling and tile edges, stable selections, stronger narrow ridges, calibrated levels, and a wider Floor range improve analysis and display. Long recordings, compressed imports, processed previews, playback, exports, and undo use bounded storage; recovery survives plugin reloads, restores faster, and preserves unreadable data safely.

  • Improved recording and playback reliability: System Audio continues when the host stops processing, macOS capture handles formats and timing more reliably, and source changes and MIDI preview avoid interrupting other channels. Corrected quiet multichannel playback, true-peak normalization, streamed processing continuity, silent-range exports, Windows drag-and-drop, oversized host blocks, and shutdown behavior. Graphics setup, lost devices, Spectral reopening, and auxiliary-window commands recover more reliably, while background work avoids blocking recording.

  • Setup starts with activation, adds a final Make it yours step for theme, waveform, and spectrogram choices, and finishes with a three-second BUFFR-colored inward animation, animated logo, and reduced-motion support. Activate by key, start a trial, or use MuseHub in supported editions directly inside Setup or Settings. The License page shows a masked key, current device and active devices, with refresh and confirmed deactivation. Existing activations are preserved.

  • Preview is consistently named in updates and downloads, with installed and available release notes and scrollable history. Diagnostics show the complete available session log. Reports always include viewable diagnostics; the displayed snapshot is the one sent. Automatic crash reporting retains complete available incident evidence until delivery is confirmed, and more accurate graphics, memory, storage, and shutdown diagnostics improve troubleshooting.

Universal macOS installer ZIP (.pkg inside) · Windows x64 (.zip) · Linux x64 (.zip)

RELAYbeta

0.1.2

1 better

Better

  • Simplified editor and aligned responsive layout. Fixed CLAP state refresh, VST3 host interface discovery, and clipped rendering on resize. Windows and Linux CLAP/VST3 builds; Windows requires Microsoft Visual C++ 2015–2022 x64 runtime. Run the included Windows installer as administrator and restart Windows before scanning plugins.

Windows x64 (unsigned) · Linux x86_64 (Ubuntu 24.04+)

KURVbeta

0.8.187

8 new · 8 better · 5 faster · 4 fixed

New

  • Interactive F1 help. Hover any component for an outline, press F1 or click HELP to lift it out of the workspace, enlarged over the dimmed background and still fully live; callouts name every control with its range and meaning.

  • A full manual for every module. The Index at the top right opens pages for the VA oscillator, wave drawing and VA tables, waveform expressions, Noise, Grain, Resynth, unison, pan, filters, envelopes, LFOs, macros, modulation routing, performance and MPE, groups and audio routing, presets and settings, each with control-by-control tours, gestures, limits and recipes.

  • Help navigation: ↑ and ↓ walk the controls of the staged component, ← and → step to the neighbouring component, Enter drills into a region, Backspace climbs back out, Escape closes.

  • MACROS page and a MacroPack section for macro knobs, ON/OFF buttons and the XY pad, with F1 on those cells opening the right page.

  • Oscillator LEVEL now reaches 200% instead of 100%, on the VA readouts, the Noise card and audio-rate AM routes.

  • Armed modulation mode keeps every control editable: click a source port to arm it, press the + on each destination to route and set its depth, and keep adjusting values in between.

  • Group PITCH transposes every pitched oscillator in a group by up to ±48 semitones, and each modulator has a bypass that is saved with the patch.

  • A rebuilt card shell shared by every rack card (oscillators, filters, AUX, sources and group headers), with one readout vocabulary, a six-dot reorder grip on every card and the same fine, snap and reset gestures everywhere.

Better

  • The help backdrop is a plain dim veil instead of a blur, so the workspace behind the stage stays intact.

  • F1 over any part of a card (its header, a graph, a cell) lifts the whole card rather than a single region.

  • Every host parameter, the settings panel, the preset deck, the wave editor pencil, function toggle and table actions, and the quality selectors carry help text.

  • Filter cutoff, resonance, slope, morph and shape modulation now cover their real ranges, and filter mode changes stay continuous instead of clicking.

  • The OBJECT filter's modes are peak-normalised, so DECAY no longer doubles as a volume control and nothing comes out louder than the input.

  • The group envelope callouts read their true 0 ms to 20 s range and the pitch wheel range reads 1 to 96 semitones.

  • Waveform expression edits are bounded and can no longer overflow the compiled buffer; invalid edits keep the last valid wave playing.

  • The stereo pair of a diffused Rich resynthesis is now decorrelated instead of duplicated.

Faster

  • Editor parameter block shrinks from about 500 KiB to 76 KiB and the host automation pool from 2048 to 512 slots, with deleted-module slots kept reserved until the pool is full.

  • DSP state at load drops from 125 MB to 41 MB by allocating Resynth voice state only for slots that hold a sample.

  • Prepared SVF, Scream, Phaser, Object, oscillator and structural render state is reused on hot paths, with 2 to 15% lower median callback time on dense, feedback and modulation-heavy workloads.

  • Zero-attack envelopes are declicked with a band-limited step and passband equalisation keeps 1x, 2x, 3x and 4x oversampling tonally matched.

  • Worker calibration waits are bounded so an audio callback can never be extended by a background job.

Fixed

  • Embedded Resynth samples no longer go silent after a Bitwig deactivate and reactivate cycle or a project restore; Grain, Rich and sample slots are republished on every artifact publication.

  • The LFO graph keeps responding while its card is lifted onto the help stage.

  • No remaining panics on the audio thread; the whole crate now passes clippy with a baseline of a handful of warnings, down from over six thousand.

  • The test suite is green (418 tests) after fixing block-renderer divergence during gain declick windows and two timing-dependent pool tests.

macOS · Windows · Linux

BUFFRstable

1.0.72

2 better · 1 faster · 2 fixed

Better

  • Audio and MIDI imports append cleanly with mixed sample-rate conversion, complete undo state, bounded multichannel disk use, visible progress, correct keyboard focus, and immediate waveforms; repeated exports reuse prepared files and remain reliable through Windows Explorer, asynchronous hosts, Wayland, XWayland, undo, cancellation, and editor closure.

  • Settings, Activity Log, Diagnostics, and Report panels are movable, resizable, scrollable, selectable, copyable, and accessible; reports retain bounded capture, renderer, Spectral, memory, import, and crash evidence, build IDs identify exact installs, damaged trials recover, and activation, support, and update downloads reject malformed responses.

Faster

  • Long recordings keep sealed audio on durable storage, release obsolete audio and Offline FX previews, bound waveform, Spectral, and MIDI memory plus multichannel undo disk use, and avoid repeated scans, scene copies, gradient work, idle redraws, and background-worker polling; Auto, Full, and Low Power modes adapt presentation cost to the machine.

Fixed

  • Native drag, resize, input, focus, modal, teardown, and late host callbacks no longer freeze, crash, abort, or retain destroyed editors; Baseview 0.3.2 improves CLAP, VST3, standalone, multi-instance macOS Metal, software-rendered Windows, embedded Linux, X11 parent detection, reopening, resizing, and display scaling.

  • System Audio follows device and host changes, survives uneven processing and recoverable interruptions, reports startup failures and underruns accurately, and guides macOS users to Screen Recording settings; standalone shutdown, shared MIDI routing, controller reconnection, per-note expression, and accessible MIDI activity are more reliable.

Universal macOS installer ZIP (.pkg inside) · Windows x64 (.zip) · Linux x64 (.zip)

BUFFRvizia

1.0.88

5 better

Better

  • BUFFR-V now ships as a separate experimental CLAP, VST3, and standalone download for Linux, Windows, and universal macOS, with its own plug-in identity and notarized macOS installer.

  • The experimental Vizia spectrogram now retains source tiles while the timeline moves and colors them on the GPU, removing the viewport-wide CPU recoloring that stalled playback and resizing.

  • Completed spectral analysis now redraws the Audio canvas immediately, and playback schedules spectrogram work ahead of the moving playhead instead of waiting for unrelated UI activity.

  • Spectrogram redraws now target the correct editor and stop cleanly when it closes, preventing stalled multi-instance views and redundant frame requests.

  • Partial spectral tiles no longer sample an empty neighboring column while recording or panning between analysis columns.

Universal macOS installer ZIP (.pkg inside) · Windows x64 (.zip) · Linux x64 (.zip)

KURVbeta

0.8.145

8 new · 6 better · 1 faster

New

  • RATIO spectral filter mode masks an oscillator's partials at the source instead of the mixed bus: CUTOFF is a harmonic ratio from 0x to 1024x, PASS flips between harmonic low-pass and high-pass, and the filter panel previews the masked wave.

  • Settings is split into INTERFACE, WORKSPACE and the remaining pages with a category selector instead of one long scroll.

  • UI SCALE setting with 100%, 125% and 150%, saved with the plugin state and composed on top of the host DPI.

  • MACROPACK source card in the LFO rack with up to 12 macro cells, each assignable to several parameters, with BUTTON toggle cells and unipolar or bipolar switching.

  • Per-parameter undo and redo: hover a control and press Alt+Z or Shift+Ctrl+Z to step only that parameter's history, next to the whole-plugin undo.

  • Performance panel gains separate PB RANGE down and up values (1 to 96 semitones), an MPE RANGE control and a typed TUNING entry in Hz.

  • Group cards can be renamed and recoloured from their identity chip, dragged to move, Ctrl-dragged to duplicate, and paint a live cycle preview of the group output including its modulation routes.

  • AUX slots get a compact card with a drop zone for audio-rate oscillator sources, LEVEL, INVERT, and reset and remove actions.

Better

  • The route inspector shows destination and depth inline, and a source can be flipped between unipolar and bipolar from the inspector.

  • Dragging a source onto a target explains itself: vertical drag sets the depth, and invalid targets are named as such instead of silently refusing.

  • Ctrl snaps parameter drags to musically meaningful steps (semitones, cents, percent) on top of Shift for fine control and double-click to reset.

  • Oscillator cards show the tuning mode (SEMI, RATIO, EXP FM) as a clickable switch with matching cents, Hz and ratio readouts.

  • Pan-shape and spline editors: double-click a point to flatten its segment, double-click empty space to add a point, Shift for fine moves, remove and reset in the right-click menu.

  • New settings for modulation display and CPU: SHOW MODULATION CABLES keeps cables visible for every visible route, and AUDIO-RATE FAST or EXACT trades CPU against modulation quality.

Faster

  • Modulation DSP and generator routing reworked and measured against realtime budgets across multi-group, AUX, audio-rate FM/PM/AM/ring and resynth workloads.

macOS Universal (.pkg) · Windows x64 (.zip) · Linux x86-64 (.tar.gz)

BUFFRpreview

1.0.69

1 new · 15 better · 12 faster · 26 fixed

New

  • Auto, Full, and Low Power display modes now let BUFFR adapt to constrained machines while preserving the user's full-quality settings.

Better

  • Completed audio imports reveal the full appended waveform immediately, while the animated aurora keeps the lane visibly busy until the import finishes.

  • Audio imports now keep the waveform visible under an animated aurora until ready, block conflicting gestures during the handoff, and report the exact reason when a drag export cannot be prepared.

  • Timeline pan and vertical gain, frequency, and pitch controls now expose distinct values and actions to assistive technology.

  • Long recordings keep using conservative waveform summaries at zoom boundaries instead of redundantly rereading raw audio.

  • The editor stays idle when nothing changes, coalesces redraws during active work, and preserves native drag, accessibility, and graphics-recovery behavior.

  • Panel close buttons now expose their purpose to screen readers and desktop automation.

  • File-drop diagnostics now record background import progress so stalled imports can be identified without guessing whether the host accepted the drop.

  • Support reports include bounded current activity, correlate delayed crash artifacts more reliably, and finish background submissions safely before the host unloads BUFFR.

  • Auto, Full, and Low Power display modes now adapt to constrained, virtual, and software-rendered machines while preserving Full settings; Low Power uses a one-second passive refresh, a simple waveform, and disables Spectrogram and background Wet work, with performance controls available from FX.

  • Standalone closes without waiting for another audio callback, including before input starts and when JACK stops; MIDI activity is announced accessibly, linked inputs reconnect more reliably, and per-note expression stays attached to the correct repeated note; macOS crash reports retain memory-allocation evidence and support reports can be correlated anonymously.

  • Standalone closes without waiting for another audio callback; MIDI activity is announced accessibly, linked inputs reconnect more reliably, and per-note expression stays attached to the correct repeated note; macOS crash reports retain memory-allocation evidence and support reports can be correlated anonymously.

  • MIDI activity is announced accessibly, linked inputs reconnect more reliably, per-note expression stays attached to the correct repeated note, and Low Power bounds dense note and marker drawing; macOS crash reports retain memory-allocation evidence and support reports can be correlated anonymously.

  • macOS crash reports retain virtual-memory allocation and memory-summary evidence for diagnosis.

  • Crash reports can now be correlated with anonymous installation and system statistics without exposing raw hardware identifiers.

  • Right-clicking FX now opens performance, refresh-rate, Spectrogram resource, and background Wet controls.

Faster

  • Import undo history stores only channels containing retained audio instead of every negotiated host channel, greatly reducing temporary disk use in multichannel hosts.

  • Long recordings now keep sealed audio on durable storage instead of retaining the complete capture in memory; clearing, replacing, or changing Offline FX releases obsolete resident audio and waveform summaries.

  • Zoomed-out waveforms avoid repeated recording scans, scene copies, gradient work, and continuous transient redraws; Low Power bounds dense MIDI note, marker, and expression memory while long-session paging skips empty slots.

  • Zoomed-out waveforms avoid repeated recording scans, scene copies, gradient work, and continuous transient redraws; long-session paging skips empty slots, and background workers stop without idle polling delays.

  • Software-rendered editors now select Low Power automatically and limit passive live animations and waveform refresh without slowing direct interaction.

  • Zoomed-out waveforms avoid repeated scans, scene copies, and continuous onset redraws; long-session paging skips empty slots; background workers stop without idle polling delays.

  • Zoomed-out waveforms no longer rescan the visible recording for every drawn bucket.

  • Low Power uses a 30 FPS simple waveform, hides transient and fill work, disables background Wet preparation, and keeps Spectral processing inactive.

  • Waveform redraws now reuse display calculations, skip unused gradient work, and enforce the selected presentation rate for background-triggered frames.

  • Spectral processing now starts only when Spectral view is used, and switching back to Waveform releases its cached analysis.

  • Long recordings now keep sealed audio on durable storage instead of retaining the complete capture in memory, while preserving playback, waveform, effects, and export access.

  • Repeated Offline FX preview changes now release obsolete waveform summaries instead of accumulating display memory.

Fixed

  • Audio files with different sample rates are converted to the active timeline rate while importing, so repeated mixed-rate drops append, display, play, and export as one continuous buffer.

  • Timeline keyboard shortcuts keep working after clicking the audio or MIDI lane while text fields still retain keyboard input.

  • Export drags on Windows now keep their native thumbnail after leaving BUFFR so it follows the cursor through Explorer and compatible hosts.

  • File drops from native Wayland applications reach BUFFR again when it is embedded in XWayland DAW windows, with an incoming-drop indicator before release.

  • Export drags work after importing audio whose sample rate differs from the DAW sample rate.

  • Embedded Linux editors no longer crash when a host window rejects a focus request.

  • Rebuilt the editor on Baseview 0.3.2, kept Settings and Diagnostics inside the main window, and hardened resize and input handling against reported editor crashes.

  • Editor opening, closing, reopening, resizing, and UI scaling now follow the host window contract consistently across CLAP and VST3.

  • Late host callbacks after an editor closes are ignored safely instead of retaining or re-entering a destroyed editor.

  • Windows standalone now uses the same native graphics fallback as hosted formats instead of failing on systems without working OpenGL.

  • Activation, support, and update downloads now reject oversized or malformed responses cleanly.

  • Windows waveform selections no longer collapse when the window backend repeats a drag-start event.

  • Dragging an exported selection into Windows Explorer no longer freezes BUFFR during the native file handoff.

  • Linux X11 resize handling now distinguishes actual DAW parents from window-manager decoration frames, addressing the observed standalone runaway resize and memory growth while preserving embedded resizing.

  • Dragged audio, MIDI, and combined files remain available for DAWs that finish importing asynchronously after a cancelled, rejected, or failed native handoff; repeated audio drags keep reusing the prepared file.

  • Diagnostic storage failures and unavailable snapshots are now reported explicitly instead of appearing successful or empty.

  • Repeated drags reuse prepared files, successful or ambiguous handoffs survive undo and editor closure, and rejected or failed drags release temporary files; native drag, resize, and modal callbacks no longer re-enter rendering, and Windows System Audio follows output changes and closes cleanly during host teardown.

  • Windows System Audio now closes cleanly when a host validates or unloads BUFFR while continuing to follow default-output changes.

  • System Audio status now refreshes immediately after startup or shutdown, and recoverable capture discontinuities no longer restart capture.

  • MIDI input controls now announce live activity to screen readers.

  • Repeated audio and spectral drags now reuse one prepared file, and files already handed to a host survive cancellation, undo, and closing the editor.

  • Nested native window callbacks no longer freeze or crash BUFFR during file dragging, resizing, or modal window interactions.

  • Plug-in teardown no longer aborts when the final background worker finishes during shutdown.

  • Parked timeline zoom and file dragging now respond immediately instead of waiting for background repaint limits.

  • Windows plug-in and standalone interfaces no longer freeze or crash when native input arrives during a redraw.

  • Clearing or replacing a recording now releases its resident audio memory without discarding retained audio.

Universal macOS installer ZIP (.pkg inside) · Windows x64 (.zip) · Linux x64 (.zip)

KURVbeta

0.8.69

1 new

New

  • Open beta: no account or license key required.

macOS Universal (.zip) · Windows x64 (.zip) · Linux x86-64 (.zip)

BUFFRstable

1.0.40

21 better · 7 faster · 32 fixed

Better

  • First-run Capture setup now lets users choose whether offline processing is cached in the background, with clear memory guidance on hover.

  • With background Wet preparation disabled, selecting audio starts one exact preview with visible progress; enabling it also prepares reusable full-buffer previews.

  • Updating on Windows now requests permission, waits for the host to release BUFFR, replaces the standard CLAP and VST3 installs, and places the standalone app on the Desktop.

  • Updating on macOS now opens the signed, notarized BUFFR installer in Apple Installer.

  • Linux updates place the standalone app on the Desktop and request administrator permission only when an existing system-wide plug-in copy also needs updating.

  • First-run setup now uses two focused Capture and MIDI steps, with format help on hover and Bit depth beside History.

  • Global MIDI source and multi-controller linking now share one setup page with a clearer alternating device list.

  • Finishing setup now blooms into a brief BUFFR-colored Ready moment before revealing the recorder.

  • Dropped audio and MIDI now append at the end of their lanes, and one undo restores the complete pre-drop audio and MIDI state, including combined drops.

  • Audio drops target the selected channel, while All preserves BUFFR source-channel routing when available; imported MIDI keeps its embedded MIDI channels.

  • The drop target now highlights the affected lane and audio destination with a foreground dashed aurora overlay.

  • Linux installation guidance now lists the runtime libraries and graphics support required by the release package.

  • Platform guidance now states the Windows MIDI Services, Linux runtime-library, and macOS deployment baselines required for a reliable BUFFR install.

  • Global MIDI now relies on native sharing on current Windows 11 systems. Exclusive legacy Windows inputs should use Host MIDI from the DAW.

  • Extended plug-in validation now allows enough time for large multi-rate Windows validation runs to complete.

  • Settings now exposes locally published experimental releases as the Unstable update channel.

  • The current Nice Plug and Baseview editor lifecycle improves native window ownership, display scaling, and editor open/close behavior across CLAP, VST3, and standalone builds.

  • BUFFR now uses the current upstream egui rendering and input backend while preserving accessibility, native drag-and-drop, frame scheduling, and graphics recovery behavior.

  • Keyboard input uses the current cross-platform event model while preserving BUFFR's native window, display-scaling, and drag behavior.

  • Offline effect-analysis caches now rebuild safely from retained recordings after the experimental dependency update.

  • Experimental builds refresh the audio, graphics, resampling, analysis, and updater foundations for current platform compatibility.

Faster

  • Background Wet analysis now has a fixed memory budget, while disabling it releases the cache and avoids duplicate selection export rendering.

  • Silent rolling capture now leaves the interface truly idle instead of continuously redrawing an empty timeline.

  • Unchanged interface frames now reuse the last presented image instead of rebuilding and presenting the complete window.

  • Spectral analysis now stops at the newest safe FFT window instead of repeatedly scheduling impossible future work.

  • Software-rendered editors limit live redraws, and background effect analysis no longer busy-spins while recording.

  • Audio processing now flushes denormal values to prevent avoidable CPU spikes on x86 systems.

  • Spectrogram rendering reuses one GPU-coverage snapshot per frame and avoids rescanning unchanged tile memory while idle.

Fixed

  • Wet waveform previews now require exact continuous cache coverage, and unavailable audio can no longer appear as a valid silent Wet signal.

  • Successful drags from an XWayland BUFFR editor into Bitwig now release the source gesture cleanly, so later drags work without reopening the interface.

  • New audio activity wakes the waveform immediately, while reopening or refocusing the editor always restores a complete frame.

  • Back always returns to Capture, and completed steps can be reopened from the setup progress bar.

  • Files dragged from another BUFFR window or a Wayland app now reach embedded BUFFR editors on Hyprland.

  • A failed Hyprland drop no longer blocks later drags until the editor is reopened.

  • Windows software-rendered editors now stay responsive during timeline selection, settings changes, and live capture without returning to excessive redraw load.

  • Spectral view now fills the complete visible recording during live capture instead of leaving thin analyzed chunks separated by gaps.

  • Rapid Windows editor automation and resize callbacks no longer crash the host while a frame is rendering.

  • Standalone audio and MIDI now work with interfaces that require native input or output buffer sizes, including MOTU M2 capture and Windows WASAPI devices.

  • Windows hosts can scan, instantiate, unload, and reopen saved BUFFR projects reliably while Global MIDI detects device changes in the background.

  • Rapid Windows editor automation and resizing no longer crashes the host or overwrites the user's interface preferences.

  • The standalone window now displays the BUFFR title instead of a framework placeholder.

  • Standalone MIDI input now processes complete controller bursts per audio block, preventing chords and dense control changes from being delayed across later buffers.

  • The macOS AU now targets macOS 13 instead of inheriting macOS 15 from the release builder.

  • Linux Global MIDI now verifies the exact controller endpoint and live owner before offering one-time RawMIDI compatibility setup, avoids incorrect setup prompts, and reports the saved supervised controller in route status.

  • Updating BUFFR now restarts an active Linux MIDI route service so it immediately runs the newly installed helper.

  • Rapid editor close and reopen cycles no longer abort Linux hosts while the graphics surface is being recreated.

  • VST3 parameter automation no longer wakes an operating-system queue from the real-time audio thread, reducing intermittent dropout and stability risk.

  • Linux only offers its one-time shared MIDI setup when another application actually holds the selected controller.

  • Audio and MIDI activity now refreshes the editor promptly without waking background services from the real-time audio thread.

  • VST3 host bypass controls now stay synchronized while audio processing is active and after state restoration.

  • Rapid host automation of UI scale no longer compounds window dimensions or stalls the editor on Linux.

  • Repeated Windows plug-in state save and restore no longer crashes after Global MIDI device monitoring starts.

  • Windows builds work with the upgraded accessibility and native file-drag backends.

  • Audio and MIDI activity now wakes the editor immediately, while text, icons, and controls stay visible and correctly scaled across displays and zoom levels.

  • Corrupt plug-in state is rejected without crashing; restored values, saved defaults, and audio-buffer state remain consistent during host state and lifecycle handoffs.

  • Host deactivation now cancels offline effect analysis promptly instead of waiting for obsolete catch-up work.

  • Native Wayland editors can be reopened reliably, shut down cleanly when the plug-in unloads, and no longer report a file drag as complete before the destination finishes reading it.

  • The BUFFR logo renders correctly again throughout the experimental graphics build.

  • Spectrogram analysis now reaches the GPU continuously instead of appearing as thin chunks that slowly fill while zooming.

  • The standalone app now keeps running through recoverable audio-device changes, stream dropouts, and denied real-time priority instead of treating them as fatal errors.

Universal macOS installer ZIP (.pkg inside) · Windows x64 (.zip) · Linux x64 (.zip)

RELAYbeta

0.1.0

1 new

New

  • First public RELAY — CONNECT and LINK, LAN PCM, named listen page, CLAP and VST3 on Linux, Windows, and unsigned universal macOS.

macOS (unsigned universal) · Windows · Linux

KORREKTbeta

0.19.0

4 new · 2 faster

New

  • Rebuilds KORREKT as a minimal Center, Punch, and Spectral instrument, with the live oscilloscope inside the giant draggable Center control and real values inside both smaller controls.

  • Auto compares identity, a conservative bank, and the full spectral search, then replays candidates through the shipped lattice filter before publishing the safest winner.

  • Adds four real analysis lookbacks with bounded search budgets, adaptive click-free pole transitions, a measured spectral rainbow, and visible zero host latency.

  • Punch now uses Hann-windowed harmonic detection and must beat a focus-free Auto finalist under exact continuous lattice replay before it can replace the safe centered bank.

Faster

  • Pole changes now finish through finite staged all-pass paths, coalesce rapid analysis updates to the newest target, and measure their adaptive rate against retained programme audio.

  • Programme-level fallback refinement searches nearby frequency and radius basins, while deep Punch candidates must sharpen four unseen analysis windows without sacrificing centering or true peak.

macOS · Windows · Linux

KORREKTbeta

0.18.9

1 new

New

  • Gives the editor a sport-orange visual system with neutral charcoal surfaces, athletic Barlow Semi Condensed typography, sharper geometry, lime telemetry, and a vibrant multicolor spectral palette.

macOS · Windows · Linux

KORREKTbeta

0.18.8

1 new

New

  • Restores the rotary Amount, Depth, and Focus controls with refined instrument styling, keeps precision sliders for time-based controls, and replaces tinted surfaces with a neutral charcoal palette.

macOS · Windows · Linux

KORREKTbeta

0.18.7

1 new

New

  • The editor is rebuilt as a focused phase-analysis instrument with custom precision rails, flat mode matrices, clearer telemetry, Archivo typography, and a restrained graphite-and-ice visual system.

macOS · Windows · Linux

KORREKTbeta

0.18.6

2 new · 1 faster · 3 fixed

New

  • Spectral rotation now moves up to 32 adaptive all-pass sections toward the frequency regions driving the current peak imbalance.

  • Broadband and Spectral modes both optimize waveform balance while preserving magnitude response and guarding against true-peak regression.

Faster

  • The oscilloscope now uses peak-preserving band-limited interpolation and bounded display work for readable shapes at every zoom level.

Fixed

  • Before and After balance meters now follow DSP measurements instead of changing with oscilloscope zoom.

  • Changing spectral detail or latency now transitions through prepared state without disabling correction, clicks, or garbled blocks.

  • Audio-driven repaint keeps the scope responsive during continuous playback instead of waiting for a UI interaction to wake it.

macOS · Windows · Linux