Skip to content

audiodynamics: a feedback detector that settles at the ratio the knob asks for (N-C4b) #62

Description

@bdbarnett

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions