Stakes. Three of the four compressors audioeffects.Compressor models —
the 1176, the LA-2A and the Fairchild 670 — are feedback designs, and the
class ships all four as feed-forward because the palette's feedback detector
cannot carry a ratio steeper than 2:1. Three of its dossier's trait rows
(F4, O5, M4) are disconfirmed on that alone, and the class's own module
docstring records it rather than hiding it. This is the node ask its
dossier calls N-C4b, and it has never been filed.
Measured (audiocomponents/tools/compressor_probes.py feedback, 48 kHz,
CPython at AUDIOIF_PIN 2f6cbc3), a bare
audiodynamics.Dynamics(feedback_detector=True) against a 20 dB DC
overshoot:
ratio 4:1 8:1 12:1 20:1
feedback 8.573 9.334 9.568 9.746 dB of gain reduction
analytic 8.571 9.333 9.565 9.744
feed-fwd 15.000 17.500 18.333 19.000
The feedback arm settles at the algebra's own ceiling — the loop reduces its
own detector input, so a ratio R settles at 20·R/(R+1)·… and the whole
family converges on 10 dB, i.e. 2:1 effective, whatever the knob says. A
character that has to make 4:1 through 20:1 therefore cannot use it, and the
one feedback trait that could be kept is the static signature, not the
ordering.
Ask. A feedback detector whose gain computer solves for the input
level rather than reading the reduced output — the standard closed-form
inversion — so the loop settles at the ratio the knob asks for and the
attack/release asymmetry of a feedback design is available at ratios above
2:1. Default off, as feedback_detector is now, so nothing measured against
the pin moves.
Recorded in audiocomponents/docs/effects/Compressor-evidence.md §12 (F4,
O5, M4, V5) and in docs/effects/Compressor.md App. J.3.
Stakes. Three of the four compressors
audioeffects.Compressormodels —the 1176, the LA-2A and the Fairchild 670 — are feedback designs, and the
class ships all four as feed-forward because the palette's feedback detector
cannot carry a ratio steeper than 2:1. Three of its dossier's trait rows
(F4, O5, M4) are disconfirmed on that alone, and the class's own module
docstring records it rather than hiding it. This is the node ask its
dossier calls N-C4b, and it has never been filed.
Measured (
audiocomponents/tools/compressor_probes.py feedback, 48 kHz,CPython at
AUDIOIF_PIN2f6cbc3), a bareaudiodynamics.Dynamics(feedback_detector=True)against a 20 dB DCovershoot:
The feedback arm settles at the algebra's own ceiling — the loop reduces its
own detector input, so a ratio R settles at
20·R/(R+1)·… and the wholefamily converges on 10 dB, i.e. 2:1 effective, whatever the knob says. A
character that has to make 4:1 through 20:1 therefore cannot use it, and the
one feedback trait that could be kept is the static signature, not the
ordering.
Ask. A feedback detector whose gain computer solves for the input
level rather than reading the reduced output — the standard closed-form
inversion — so the loop settles at the ratio the knob asks for and the
attack/release asymmetry of a feedback design is available at ratios above
2:1. Default off, as
feedback_detectoris now, so nothing measured againstthe pin moves.
Recorded in
audiocomponents/docs/effects/Compressor-evidence.md§12 (F4,O5, M4, V5) and in
docs/effects/Compressor.mdApp. J.3.