Jet and lip voices never go quiet on release; the ring backstop frees them minutes late #74
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
bcox/tymbal#74
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Both wind valves self-sustain at zero pressure: the jet's force law carries no pressure-amplitude term (pressure only sets the delay length), and
kLip's slope at the origin is unbounded, so a released voice keeps a nonzero drive andquiet_run_never starts. The factory jet/lip patches route breath ontokLevelto silence the output, but the voice itself is freed only by the lap-counted ring backstop (kRingBackstopLaps = 16384laps x line length): about 31 s at the flute's key 72, about 8 minutes at the low-flue's floor of key 24 -- all at full per-sample render cost, inaudible the whole time.Voice stealing covers correctness, but polyphony and CPU budgets should not carry silent zombie voices for minutes. Same class as #58 (hi-hat never retires while the pedal is held).
Two fix directions, either sufficient:
dsp/waveguide.h's jet comments), with the same question asked of the lip's opening;Context: waveguide engine merged at
5bef851(WVGD, minor 37). The backstop's mechanism and the measured hold times are documented at the constant's definition indsp/waveguide_layer.h.