Code:

#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
// GUItool: begin automatically generated code
AudioInputTDM tdm2; //xy=88,184
AudioMixer4 mixADC_a2; //xy=302,173
AudioMixer4 mixADC_a1; //xy=306,99
AudioMixer4 mixADC_a3; //xy=306,246
AudioMixer4 mixADC_a4; //xy=310,330
AudioInputUSB usb1; //xy=529,276
AudioMixer4 mixADC_a; //xy=537,149
AudioMixer4 mixLeft1; //xy=755,171
AudioMixer4 mixRight1; //xy=757,286
AudioOutputTDM tdm1; //xy=1024,206
AudioConnection patchCord1(tdm2, 0, mixADC_a1, 0);
AudioConnection patchCord2(tdm2, 1, mixADC_a1, 1);
AudioConnection patchCord3(tdm2, 2, mixADC_a1, 2);
AudioConnection patchCord4(tdm2, 3, mixADC_a1, 3);
AudioConnection patchCord5(tdm2, 4, mixADC_a2, 0);
AudioConnection patchCord6(tdm2, 5, mixADC_a2, 1);
AudioConnection patchCord7(tdm2, 6, mixADC_a2, 2);
AudioConnection patchCord8(tdm2, 7, mixADC_a2, 3);
AudioConnection patchCord9(tdm2, 8, mixADC_a3, 0);
AudioConnection patchCord10(tdm2, 9, mixADC_a3, 1);
AudioConnection patchCord11(tdm2, 10, mixADC_a3, 2);
AudioConnection patchCord12(tdm2, 11, mixADC_a3, 3);
AudioConnection patchCord13(tdm2, 12, mixADC_a4, 0);
AudioConnection patchCord14(tdm2, 13, mixADC_a4, 1);
AudioConnection patchCord15(tdm2, 14, mixADC_a4, 2);
AudioConnection patchCord16(tdm2, 15, mixADC_a4, 3);
AudioConnection patchCord17(mixADC_a2, 0, mixADC_a, 1);
AudioConnection patchCord18(mixADC_a1, 0, mixADC_a, 0);
AudioConnection patchCord19(mixADC_a3, 0, mixADC_a, 2);
AudioConnection patchCord20(mixADC_a4, 0, mixADC_a, 3);
AudioConnection patchCord21(usb1, 0, mixLeft1, 3);
AudioConnection patchCord22(usb1, 1, mixRight1, 3);
AudioConnection patchCord23(mixADC_a, 0, mixLeft1, 0);
AudioConnection patchCord24(mixADC_a, 0, mixRight1, 0);
AudioConnection patchCord25(mixLeft1, 0, tdm1, 0);
AudioConnection patchCord26(mixRight1, 0, tdm1, 1);
// GUItool: end automatically generated code

Code:

mixADC_a1.gain(0, 0.25);
mixADC_a1.gain(1, 0.25);
mixADC_a1.gain(2, 0.25);
mixADC_a1.gain(3, 0.25);
mixADC_a2.gain(0, 0.25);
mixADC_a2.gain(1, 0.25);
mixADC_a2.gain(2, 0.25);
mixADC_a2.gain(3, 0.25);
mixADC_a3.gain(0, 0.25);
mixADC_a3.gain(1, 0.25);
mixADC_a3.gain(2, 0.25);
mixADC_a3.gain(3, 0.25);
mixADC_a4.gain(0, 0.25);
mixADC_a4.gain(1, 0.25);
mixADC_a4.gain(2, 0.25);
mixADC_a4.gain(3, 0.25);
mixADC_a.gain(0, 0.25);
mixADC_a.gain(1, 0.25);
mixADC_a.gain(2, 0.25);
mixADC_a.gain(3, 0.25);
mixLeft1.gain(0, 0.5);
mixRight1.gain(4, 0.5);

It works, but my gain structure isn't quite right yet. I have a lot of moving parts on this device. The ADC has gain, volume, filters, etc. So I'm testing different configurations to see what works best. But so far I'm getting sound that is either too low (not enough), or too high (clipping). From what I know about professional audio, most of the gain should be applied at the first stage of the audio path. So setting the gain to the right setting on the ADC is ideal. Then each mixer should ultimately push through "