 #include "tonewheel_osc_audio.h"
 #include "vibrato_audio.h"
 
+// Hammond B-3.
+AudioMixer4 organOut;
 TonewheelOsc tonewheels;
 Vibrato vibrato;
+AudioConnection patchCord0(tonewheels, 0, vibrato, 0);
+AudioConnection patchCord1(vibrato, 0, organOut, 0);
+
+AudioSynthWaveformSine percussion;
+AudioEffectEnvelope percussionEnv;
+AudioConnection patchCord2(percussion, 0, percussionEnv, 0);
+AudioConnection patchCord3(percussionEnv, 0, organOut, 1);
+
+// Leslie 122.
 Preamp preamp;
+AudioConnection patchCord4(organOut, 0, preamp, 0);
+
+// Teensy output.
 AudioFilterBiquad antialias;
+AudioConnection patchCord5(organOut, 0, antialias, 0);
+
 AudioOutputI2S i2s1;
-
-AudioConnection patchCord0(tonewheels, 0, vibrato, 0);
-AudioConnection patchCord1(vibrato, 0, preamp, 0);
-AudioConnection patchCord2(preamp, 0, antialias, 0);
-AudioConnection patchCord3(antialias, 0, i2s1, 0);
-AudioConnection patchCord4(antialias, 0, i2s1, 1);
 AudioControlSGTL5000 audioShield;
+AudioConnection patchCord6(antialias, 0, i2s1, 0);
+AudioConnection patchCord7(antialias, 0, i2s1, 1);
 
 uint8_t keys[62] = {0};
 uint8_t drawbars[10] = {0};
 uint16_t volumes[92] = {0};
 
+uint8_t numKeysDown = 0;
 void handleNoteOn(byte chan, byte note, byte vel);
 void handleNoteOff(byte chan, byte note, byte vel);
 

    tonewheels.init();
    vibrato.init();
    preamp.init();

    drawbars[1] = 8;
    drawbars[2] = 8;

        return;
    }

    if (--numKeysDown == 0) {
        percussionEnv.noteOff();
    }
    keys[key] = 0;
    manual_fill_volumes(keys, drawbars, volumes);
    tonewheels.setVolumes(volumes);
