Thanks for your replies. I have looked at Chris’s compressor; it’s an admirable piece of work. I found it while doing research into software or hardware that might already perform the function I have in mind. Nothing has fit the bill so far.

The closest hardware type seems to be the “variable mu” compressor using remote-cutoff tubes to create a soft knee response. In a weird way, diode overdrive effects units are also related in that they create near-instantaneous soft clipping of each individual wave crest/trough.

The closest software approach seems to be waveshaping. Because of the involvement of summing infinite series in my concept, interpolated lookup tables appear to be a possible solution.

The heart of the idea is the transfer function:

OUTPUT=(1/(1-INPUT))^(REDUCTION EXPONENT).

I refer to this as the attenuation factor.

The process works like so: for the input signal to be processed, it processes each sample individually. Say the input signal sample has amplitude .5. The total final output for this input sample is the sum of a series. For the sake of illustration, say the increment value between the individual amplitudes of the sample (as determined by bit depth, for instance) is .00001 instead of infinitesimal. Starting at level 0, each increment of the input signal sample’s value is divided by the attenuation factor. So, .00001/((1/(1-.00001))^(REDUCTION EXPONENT)) is calculated and the resulting value is stored. Next, (.00002-.00001)/((1/(1-.00002))^(REDUCTION EXPONENT)) is calculated and the resulting value is stored. And so on, up until (.5-.49999)/((1/(1-.5))^(REDUCTION EXPONENT)). Then all the stored values are summed, and we have the output value for that sample.

The REDUCTION EXPONENT is simply a separate number to be chosen by the user. The larger it is, the more the process squashes the input signal.

As it turns out, for an input signal strength of 1, a reduction exponent of 1 results in an output value of .5. A reduction exponent of 2 results in an output of .333…, etc., so that the output value is a predictable 1/(REDUCTION EXPONENT+1).

As can be seen, the attack and release times for this process are necessarily fixed at 0 microseconds. The “threshold” and “ratio” controls are fundamentally united into one single control, which is in fact the process just illustrated; the lower the threshold, necessarily the higher the compression ratio, and vice versa.

I have tried all kinds of trigonometric functions and all variety of polynomials and other tricks in the transfer function that don’t involve infinite summing. The process just described gives by far the best-looking resulting attenuation curves. Moving from low ratios to high, the effect goes from a harmonic-reducing “rounding” of the waveform to the more traditional odd-harmonic-generating squaring of waveforms. I really want to see this in action, since as far as I can tell it has the potential to have an unprecedented and characteristic effect on the sound of incoming signals.