I've made a little more progress with my compressor/dynamics research. I've managed to succeed at defining the coefficients to get the effect I want. The feed-forward performance depends upon the frequency and RMS/peak level of the input signal combined with the attack/release time ratio. I remember doing this same work quite some time ago and giving up. I should have taken more notes last time like those I've now recorded.

A simple solution to the sidechain mix blend was to give up on handling them as one. Although I did succeed at getting as far as a 2nd order error of as little as -2.5 dB which I'm sure could be eliminated entirely. It turns out to be much easier to mix feed-forward and feed-back discretely which gives a perfect result with no complicated compensation math.

(I've also improved the meters and their ranges.)

So since the input is a sine here the RMS is -3.01 dB, peak is 0.0 dB and the gain reduction depends upon the attack/release time ratio. We're observing 3.01 dB with the input frequency (333 Hz) vs. max (1.5 s) release time. At 1 kHz it's 1.8 dB error, 10 kHz 1.0 dB, 23 kHz 1.7 dB. At nyquist the signal approximates a pulse (they're equal for exactly nyquist) and gives exactly 0.0 dB error.

Having a small amount of feed-back sidechain linearizes and makes the result independent of the input gain (that's what feedback is of course) and reduces the error by a lot. At 80 ms release the error is 11.4 dB, with 6% feed-back that's reduced to 2.5 dB.

The primary useful purpose of having a feed-forward mode is like in the LA-2A which feeds a tiny bit of feed-forward with a "limit" switch. That causes the compressor to over-shoot on gain reduction and dramatically "dynamically" reduces attack time without requiring look-ahead. In order for this to work it requires the feed-back and feed-forward paths are scaled together by the same coefficient. That gives the feed-forward gain reduction path infinite gain reduction (scales below zero and it's clipped when going negative.)

So to make the compressor support these functions it sadly requires

**two** additional controls! A "limit" switch would force the feed-forward side-chain to be mixed directly with feed-back to cause it to over-shoot. The side-chain mix parameter in this case is only really useful between around 70% and 100% where it dramatically reduces the output gain with any greater feed-forward signal allowed. A "input RMS" knob would allow the compressor to attempt to compensate the feed-forward coefficient according to peak input RMS level.

Without knowing both the exact input RMS and input frequency content, exact feed-forward gain reduction is impossible in a compressor like this. I hate the idea of adding more controls but to get the sort of performance I'd like they're required. I think that practically speaking I'm forced to add them. I'll experiment more with that and hopefully I can call this finished this time and not waste my time repeating the same work again