Repository navigation
Releases: thorinside/nosuch_texture
Releases · thorinside/nosuch_texture
Release list
v1.2.0
v1.2.0 — Tape rewrite, AutoGain calibrate-and-lock, reverb 96 kHz fix Headline changes since v1.1.3: - Tape mode: replaced mu-law codec with linear buffer + SoftClip output. Fixes "loud overload sounds" reported when many grains stacked constructively in the compressed-domain buffer. - AutoGain: 5 s calibration window, locks at -10 dBFS, no ratcheting. Earlier ratchet measured AutoGain's local output instead of the bus peak and gave a false sense of clip protection. - Reverb: SR-scaled delays + Butterworth biquad LP keyed in Hz. Fixes the 4 kHz resonance peak that appeared at 96 kHz sample rate. - kMaxGrains 20 → 30 to match the original Beads "30 replay heads" spec. CPU headroom from earlier optimizations (DTC grain cache, -O2, FastPowUnit, etc.) absorbs the bump cleanly on disting NT. - Input chain: 6-pole Butterworth LP cascade replaces 4-pole. - Grain engine: sub-block phase decoherence, read-offset wrap glitches, and decimated-mode feedback regen all fixed. - New spectral test harness with FRA, THD, IR, and wow/flutter gates. Validated by listening tests on hardware (disting NT) at 48 kHz and 96 kHz.
v1.1.3
Add CV modulation indicators to UI and fix density CV dead code Bar graphs (Time/Size/Shape) now show CV influence: bright tick mark for deterministic modulation (AR CW), dim filled range for random spread (AR CCW or no CV). Pitch and Density text displays append the CV offset when connected. Also wires up the density CV input which was previously read but never applied. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.1.2
Default AR parameters to 100% so CV inputs work out of the box On the Disting NT, users expect CV inputs to pass through when routed — unlike hardware Beads where physical attenuverter knobs make the noon default intuitive. Defaulting to 100% (fully CW) means CV works immediately without needing to discover the AR parameters. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v1.1.1
CPU optimizations: DTC grain cache, -O2, single-precision fixes - Add DTC pre-fetch cache for grain buffer reads (DRAM→DTC copy before each grain block, single-cycle reads instead of random DRAM access) - Move reverb delay lines to DTC when available (~48KB single-cycle) - Switch compiler from -Os to -O2 for hardware target - Replace ReadHermiteStereo with ReadHermiteStereoFast in delay engine - Add FastPowUnit IEEE754 approximation for delay slicer envelope - Replace std::pow with exp2/logf in grain duration calculations - Fix double-precision promotion: logf/expf replacing std::log/std::exp in auto_gain, mu-law, random, and delay engine hot paths - Add adaptive interpolation (linear when grain count > half cap) - Tighten dynamic grain cap multiplier from 2.0 to 1.5 - Fix uninitialized _NT_sclInfo in parameterString - Bound pitch quantizer normalization loops to prevent runaway with degenerate scales - Clamp SCL ratios to 1e-9 minimum to prevent log2(-inf/NaN) - Fix pre-delay counter not decrementing in DTC cached path Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.1.0
Add .scl scale quantization to pitch path Load Scala tuning files from SD card and quantize all pitch sources (knob, attenurandomizer, CV, MIDI) to scale degrees. Adds Scale File and Root Note parameters with async SCL loading, SD card mount/unmount handling, and custom parameter string display. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
No Such Texture
Rename project and update description in README Updated project name and adjusted description to reference the Mutable Instruments Beads manual.