Skip to content

Effects: Expander's tail follows Key Listen; classes state their residue beside the tail; Distortion's reset residue is held - #198

Merged
bdbarnett merged 1 commit into
mainfrom
tail-bounds-effects
Oct 20, 2026
Merged

bdbarnett merged 1 commit into
mainfrom
tail-bounds-effects

Conversation

@bdbarnett

Copy link
Copy Markdown
Contributor

Part of #146. Fixes #155.

Expander, Key Listen on (#146). tail_samples said 0 while the key filters rang for 2,304 frames or more. With Key Listen on it now bounds that ring from Key Low, Key High and the rate: about 5,100 frames at 48 kHz with Key Low at its minimum, against a measured 2,373 (1,568 to 2,688 on the burst probes used here), and shorter as Key Low rises. With Key Listen off it is still 0. A test holds the ring under the bound at five Key Low and Key High pairs and at 0 with Key Listen off; a class that declares 0 with Key Listen on is shown red. The issue stays open for the LadderFilter and delay-family halves.

Residue beside the tail (#155). Compressor, DynamicEQ, MultibandCompressor, DeEsser, CombFilter, Exciter, Fuzz, Overdrive and Distortion each say, beside TAIL_SAMPLES, how far the output can stand from an untouched copy after a reset, a rejoin or a control move, with the figures the lifecycle matrix measured. Distortion's slow coupling-pole residue after a reset was written as about 700 LSB; on the matrix's E1 material it reads 787 mono and 630 stereo over the 20,000 frames after the tail, so the docs now say up to about 800, and a test holds it under 800. A reset that leaves the drive at full is shown red against that bound.

Run: tests.test_cpython_effects_expander and _distortion (83 tests, OK), the lifecycle matrix for Expander on CPython, MicroPython and CircuitPython (656 cells, 64 red, the same lines on all three and the same rows the known table holds), tools/validate_api.py, tools/validate_metadata.py, flake8. Not run here: the full suite.

…due beside the tail; Distortion's reset residue is held

Expander (#146): with Key Listen on, tail_samples bounds the key filters' ring
from Key Low, Key High and the rate; it stays 0 with Key Listen off. A test
holds the bound across the key settings and shows a tail of 0 red.

#155: Compressor, DynamicEQ, MultibandCompressor, DeEsser, CombFilter, Exciter,
Fuzz, Overdrive and Distortion state the residue that outlasts tail_samples
beside TAIL_SAMPLES. Distortion's reset residue (787 LSB mono, 630 stereo) is
held under 800 by a test, with a reset that leaves the drive up shown red.
@bdbarnett
bdbarnett merged commit 9ee48b0 into main Oct 20, 2026
6 checks passed
@bdbarnett
bdbarnett deleted the tail-bounds-effects branch October 20, 2026 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Detector and coupling state outlasts tail_samples after a reset or rejoin

1 participant