... for better maintainability
consolidated duplicate code:
* drawing the dB-grid of a-comp's and a-expander's full display
* drawing the gain reduction bar of a-comp's and a-expander's full display
* the entire only-bars display
Up to now we had in a-comp and a-exp one run_mono() and one run_stero()
function which where almost identical except that run_stereo() treated two
in/outs and run_mono() only one. Now we store the number of channels
acomp->n_channels according to the URI and in run() we loop over an array of
pointers to the in/out buffers.
improve release behavior.
This slows down the release after events like single snare hits as, the gain
reduction only releases to 160 dB rather than to inf.
To properly visualize attack and release we calculate the input level out of
the gain reduction the output level threshold and ratio.
if (output_level >= threshold) { // no expansion
input_level = output_level
} else {
input_level = (gain_reduction - threshold * (1-ratio)) / ratio
}