Mixer4 Sum Test 2


This sum test attempts to demonstrate that Mixer4 will preserve bit resolution in a track even when its volume is set to a low value.
We begin with clean 24-bit test tones of 1 kHz, 2 kHz, 4 kHz, and 8 kHz. They are full scale in level.

An FFT of the 1 kHz tone is here

We would like the same degree of purity in any file that leaves the mixer, except for some dither noise.

The experiment is set up as follows:

1. Significantly lower a particular channel's volume (channel 1). This is the only channel with the 1 kHz tone. We are choosing -24 dB to match our makeup gain below.

2. Sum 60 additional channels with channel 1. These additional channels will have their volume lowered by 30 dB to avoid a sum over 0 dBFS.

3. Half of the extra channels will have their polarity reversed in order to cancel out the signal of the other 30 channels (but not channel 1).

4. Raise the output at the master fader channel to observe what detail remains of channel 1!


Note: Mixer4 does not allow you to make huge volume adjustments upward. This is just a safety catch in case you meant to type 5 dB, but accidentally typed 50 dB!

We will add 24 dB of gain at the master channel by:
1. Setting the master fader gain to +12 dB.
2. Running the output through a flat EQ (band1) which allows us to use effects makeup gain (fxg) of another +12 dB.

Results

Engineering talk aside, the test shows that this mixer will perform accurately by preserving the details of every track if you follow the design.
The rule is simply: Do not let channel outputs exceed 0 dB full scale. This is generally a good rule for any DAW.

As you can see in the FFT's, the output looks just like the input despite all the calculations subjected up on it.
The output .wav file itself can be downloaded here for further analysis.
The data output showing channel peaks from Mixer4 can be seen here. Output levels are 3 dB lower than the fader levels due to the 3 dB pan law.

Here are a few things I hope you can appreciate.
1. Channel 1 had its gain reduced by an equivalent of about 4 bits, yet those bits were not lost during the mix. If they were lost, we would see other frequencies in the ouput signal.
2. Channel 1 is added to the the accumulator first and then all the other signals are added subsequently. Channel 1 remains intact despite all the other signals.
3. Signals do not begin cancelling due to polarity differences until track 32 is added to the accumulator. Unlike sum test 1, this test shows that many many tracks can be added before nulling begins.
4. All the summing is done with a fixed point accumulator. Other designs are possible, but this is a design that clearly works.
5. The time taken to do the mix was about 6.02 seconds on an solid state drive and a Core 2 processor @ 2.5 GHz running Linux 3.10.

Try it yourself with Mixer4 or another mixer with the source files below:

The 1 kHz wave file
The 2 kHz wave file
The 4 kHz wave file
The 8 kHz wave file
The faders.txt file
The tracks.txt file
The prefs.txt file