I programmed a plugin which I think is helpful to mix music.

The aim of the plug in is the following. A sound which should be in the front of a mix (which i call dominant) should be unaffected by further further additions of sounds. The aim is that a sound which is added does not introduce amplitude spikes. This is done by modulating the amplitude of the sounds that should be added to the mix by the dominant sound.

The faust code of the plugin is the following:

process(input,sidechain) = input*(1-(sidechain*sidechain));

(you can use the faust online compiler to generate a v2 or vst plugin if you like.)

The previous code can be used to create a plug in with two input channels and one output channel. The first (left) inputs is modulated by the signal from the second (right) input.

To illustrate how it functions I created the following plots.

In the previous plot we see

Channel 1: Sound A, a bass drum sound.

Channel 2: Sound B, a noisy percussion sound.

Channel 3: Sound A+B

Channel 4: 1-A*A which is the modulation signal

Channel 5:Sound B as it is affected when sound A is used as side-chain (B*(1-A*A))

Channel 6: A mix of the original sound A and the modulated sound B

As you can see in the difference between channel 3 and 6 that in the case of channel 6 the amplitude is not overshooting. The volume of sound B is reduced by the wave of sound A, so that sound B fills the space in-between the peaks of sound A.

In the following plot I show how the modulation signal is constructed on the example of sound A from the previous plot:

Channel 1: Sound A

Channel 2: absolute of sound A

Channel 3: sound A multiplied by sound A

Channel 4: 1 – (A * A)

Channel 4 is the modulation signal as it is created in the plugin.

I also created a variation of this plugin in which the sum of the dominant signal and and the modulated signal are added:

process(dominant,secondary) = (((1-(dominant*dominant))*secondary)+dominant);

This is how I will use the effect.