diff --git a/MicroDexed.ino b/MicroDexed.ino index b132364..c75796e 100644 --- a/MicroDexed.ino +++ b/MicroDexed.ino @@ -53,62 +53,47 @@ AudioAmplifier modchorus_inverter; // FX chain left AudioMixer4 delay_send_mixer_l; -AudioMixer4 delay_mixer_l; AudioMixer4 delay_fb_mixer_l; AudioEffectDelay delay_l; AudioConnection patchCord1(delay_send_mixer_l, 0, delay_fb_mixer_l, 0); AudioConnection patchCord2(delay_fb_mixer_l, delay_l); AudioConnection patchCord3(delay_l, 0, delay_fb_mixer_l, 1); // feedback-loop -AudioConnection patchCord4(delay_l, 0, delay_mixer_l, 0); -AudioConnection patchCord5(delay_fb_mixer_l, 0, delay_mixer_l, 1); -AudioConnection patchCord6(delay_mixer_l, 0, master_mixer_l, DELAY); AudioMixer4 chorus_send_mixer_l; AudioEffectModulatedDelay modchorus_l; -AudioConnection patchCord7(chorus_send_mixer_l, 0, modchorus_l, 0); -AudioConnection patchCord8(chorus_modulator, 0, modchorus_l, 1); +AudioConnection patchCord4(chorus_send_mixer_l, 0, modchorus_l, 0); +AudioConnection patchCord5(chorus_modulator, 0, modchorus_l, 1); #if MOD_FILTER_OUTPUT != MOD_NO_FILTER_OUTPUT AudioFilterBiquad modchorus_filter_l; -AudioConnection patchCord9(modchorus_l, modchorus_filter_l); -AudioConnection patchCord10(modchorus_filter_l, modchorus_inverter); -AudioConnection patchCord11(modchorus_inverter_l, 0, master_mixer_l, CHORUS); +AudioConnection patchCord6(modchorus_l, modchorus_filter_l); +AudioConnection patchCord7(modchorus_filter_l, modchorus_inverter); #else -AudioConnection patchCord9(modchorus_l, modchorus_inverter); -AudioConnection patchCord10(modchorus_inverter, 0, master_mixer_l, CHORUS); +AudioConnection patchCord6(modchorus_l, modchorus_inverter); #endif #if defined(USE_REVERB) AudioMixer4 reverb_send_mixer_l; AudioEffectFreeverb freeverb_l; -AudioConnection patchCord12(reverb_send_mixer_l, freeverb_l); -AudioConnection patchCord13(freeverb_l, 0, master_mixer_r, REVERB); +AudioConnection patchCord8(reverb_send_mixer_l, freeverb_l); #endif // FX chain right AudioMixer4 delay_send_mixer_r; -AudioMixer4 delay_mixer_r; AudioMixer4 delay_fb_mixer_r; AudioEffectDelay delay_r; -AudioConnection patchCord14(delay_send_mixer_r, 0, delay_fb_mixer_r, 0); -AudioConnection patchCord15(delay_fb_mixer_r, delay_r); -AudioConnection patchCord16(delay_r, 0, delay_fb_mixer_r, 1); // feedback-loop -AudioConnection patchCord17(delay_r, 0, delay_mixer_r, 0); -AudioConnection patchCord18(delay_fb_mixer_r, 0, delay_mixer_r, 1); -AudioConnection patchCord19(delay_mixer_r, 0, master_mixer_r, DELAY); +AudioConnection patchCord9(delay_send_mixer_r, 0, delay_fb_mixer_r, 0); +AudioConnection patchCord10(delay_fb_mixer_r, delay_r); +AudioConnection patchCord11(delay_r, 0, delay_fb_mixer_r, 1); // feedback-loop AudioMixer4 chorus_send_mixer_r; -AudioConnection patchCord20(chorus_send_mixer_r, modchorus_r); +AudioConnection patchCord12(chorus_send_mixer_r, modchorus_r); AudioEffectModulatedDelay modchorus_r; -AudioConnection patchCord21(chorus_modulator, 0, modchorus_r, 1); +AudioConnection patchCord13(chorus_modulator, 0, modchorus_r, 1); #if MOD_FILTER_OUTPUT != MOD_NO_FILTER_OUTPUT AudioFilterBiquad modchorus_filter_r; -AudioConnection patchCord22(modchorus_r, modchorus_filter_r); -AudioConnection patchCord23(modchorus_filter_r, 0, master_mixer_r, CHORUS); -#else -AudioConnection patchCord22(modchorus_r, 0, master_mixer_r, CHORUS); +AudioConnection patchCord14(modchorus_r, modchorus_filter_r); #endif #if defined(USE_REVERB) AudioMixer4 reverb_send_mixer_r; AudioEffectFreeverb freeverb_r; -AudioConnection patchCord24(reverb_send_mixer_r, freeverb_r); -AudioConnection patchCord25(freeverb_r, 0, master_mixer_r, REVERB); +AudioConnection patchCord15(reverb_send_mixer_r, freeverb_r); #endif // FX chain tail @@ -121,50 +106,63 @@ AudioAmplifier volume_l; AudioEffectStereoMono stereo2mono; AudioAnalyzePeak master_peak_r; AudioAnalyzePeak master_peak_l; -AudioConnection patchCord26(dexed_mixer_r, 0, master_mixer_r, DEXED); -AudioConnection patchCord27(dexed_mixer_l, 0, master_mixer_l, DEXED); -AudioConnection patchCord28(master_mixer_r, volume_r); -AudioConnection patchCord29(master_mixer_l, volume_l); -AudioConnection patchCord30(volume_r, 0, stereo2mono, 0); -AudioConnection patchCord31(volume_l, 0, stereo2mono, 1); -AudioConnection patchCord32(volume_r, master_peak_r); -AudioConnection patchCord33(volume_l, master_peak_l); -AudioConnection patchCord34(microdexed_peak_mixer, microdexed_peak); +AudioConnection patchCord16(delay_fb_mixer_r, 0, master_mixer_r, DELAY); +AudioConnection patchCord17(delay_fb_mixer_l, 0, master_mixer_l, DELAY); +#if MOD_FILTER_OUTPUT != MOD_NO_FILTER_OUTPUT +AudioConnection patchCord18(modchorus_filter_r, 0, master_mixer_r, CHORUS); +AudioConnection patchCord19(modchorus_inverter, 0, master_mixer_l, CHORUS); +#else +AudioConnection patchCord18(modchorus_r, 0, master_mixer_r, CHORUS); +AudioConnection patchCord19(modchorus_inverter, 0, master_mixer_l, CHORUS); +#endif +#if defined(USE_REVERB) +AudioConnection patchCord20(freeverb_r, 0, master_mixer_r, REVERB); +AudioConnection patchCord21(freeverb_l, 0, master_mixer_l, REVERB); +#endif +AudioConnection patchCord22(dexed_mixer_r, 0, master_mixer_r, DEXED); +AudioConnection patchCord23(dexed_mixer_l, 0, master_mixer_l, DEXED); +AudioConnection patchCord24(master_mixer_r, volume_r); +AudioConnection patchCord25(master_mixer_l, volume_l); +AudioConnection patchCord26(volume_r, 0, stereo2mono, 0); +AudioConnection patchCord27(volume_l, 0, stereo2mono, 1); +AudioConnection patchCord28(volume_r, master_peak_r); +AudioConnection patchCord29(volume_l, master_peak_l); +AudioConnection patchCord30(microdexed_peak_mixer, microdexed_peak); // Outputs #ifdef AUDIO_DEVICE_USB AudioOutputUSB usb1; -AudioConnection patchCord35(stereo2mono, 0, usb1, 0); -AudioConnection patchCord36(stereo2mono, 1, usb1, 1); +AudioConnection patchCord31(stereo2mono, 0, usb1, 0); +AudioConnection patchCord32(stereo2mono, 1, usb1, 1); #endif #if defined(TEENSY_AUDIO_BOARD) AudioOutputI2S i2s1; -AudioConnection patchCord37(stereo2mono, 0, i2s1, 0); -AudioConnection patchCord38(stereo2mono, 1, i2s1, 1); +AudioConnection patchCord33(stereo2mono, 0, i2s1, 0); +AudioConnection patchCord34(stereo2mono, 1, i2s1, 1); AudioControlSGTL5000 sgtl5000_1; #elif defined (I2S_AUDIO_ONLY) AudioOutputI2S i2s1; -AudioConnection patchCord37(stereo2mono, 0, i2s1, 0); -AudioConnection patchCord38(stereo2mono, 1, i2s1, 1); +AudioConnection patchCord33(stereo2mono, 0, i2s1, 0); +AudioConnection patchCord34(stereo2mono, 1, i2s1, 1); #elif defined(TGA_AUDIO_BOARD) AudioOutputI2S i2s1; -AudioConnection patchCord37(stereo2mono, 0, i2s1, 0); -AudioConnection patchCord38(stereo2mono, 1, i2s1, 1); +AudioConnection patchCord33(stereo2mono, 0, i2s1, 0); +AudioConnection patchCord34(stereo2mono, 1, i2s1, 1); AudioControlWM8731master wm8731_1; #elif defined(PT8211_AUDIO) AudioOutputPT8211 pt8211_1; -AudioConnection patchCord37(stereo2mono, 0, pt8211_1, 0); -AudioConnection patchCord38(stereo2mono, 1, pt8211_1, 1); +AudioConnection patchCord33(stereo2mono, 0, pt8211_1, 0); +AudioConnection patchCord34(stereo2mono, 1, pt8211_1, 1); #elif defined(TEENSY_DAC_SYMMETRIC) AudioOutputAnalogStereo dacOut; AudioMixer4 invMixer; -AudioConnection patchCord37(stereo2mono, 0, dacOut , 0); -AudioConnection patchCord38(stereo2mono, 1, invMixer, 0); -AudioConnection patchCord39(invMixer, 0, dacOut , 1); +AudioConnection patchCord33(stereo2mono, 0, dacOut , 0); +AudioConnection patchCord34(stereo2mono, 1, invMixer, 0); +AudioConnection patchCord35(invMixer, 0, dacOut , 1); #else AudioOutputAnalogStereo dacOut; -AudioConnection patchCord37(stereo2mono, 0, dacOut, 0); -AudioConnection patchCord38(stereo2mono, 1, dacOut, 1); +AudioConnection patchCord33(stereo2mono, 0, dacOut, 0); +AudioConnection patchCord34(stereo2mono, 1, dacOut, 1); #endif // @@ -180,24 +178,24 @@ void create_audio_connections(AudioSourceMicroDexed &dexed, AudioEffectMonoStere { Serial.print(F("Connecting Dexed ")); Serial.print(instance_id, DEC); - Serial.println(F(" -> ")); + Serial.println(F(":")); dynamicConnections[nDynamic++] = new AudioConnection(dexed, 0, microdexed_peak_mixer, instance_id); dynamicConnections[nDynamic++] = new AudioConnection(dexed, 0, mono2stereo, 0); dynamicConnections[nDynamic++] = new AudioConnection(pan, 0, mono2stereo, 1); - Serial.println(F(" Peakmeter")); + Serial.println(F(" -> Peakmeter")); dynamicConnections[nDynamic++] = new AudioConnection(mono2stereo, 0, dexed_mixer_r, instance_id); dynamicConnections[nDynamic++] = new AudioConnection(mono2stereo, 1, dexed_mixer_l, instance_id); - Serial.println(F(" Dexed mixer")); + Serial.println(F(" -> Dexed mixer")); dynamicConnections[nDynamic++] = new AudioConnection(mono2stereo, 0, chorus_send_mixer_r, instance_id); dynamicConnections[nDynamic++] = new AudioConnection(mono2stereo, 1, chorus_send_mixer_l, instance_id); - Serial.println(F(" Chorus send")); + Serial.println(F(" -> Chorus send")); dynamicConnections[nDynamic++] = new AudioConnection(mono2stereo, 0, delay_send_mixer_r, instance_id); dynamicConnections[nDynamic++] = new AudioConnection(mono2stereo, 1, delay_send_mixer_l, instance_id); - Serial.println(F(" Delay send")); + Serial.println(F(" -> Delay send")); #if defined(USE_REVERB) dynamicConnections[nDynamic++] = new AudioConnection(mono2stereo, 0, reverb_send_mixer_r, instance_id); dynamicConnections[nDynamic++] = new AudioConnection(mono2stereo, 1, reverb_send_mixer_l, instance_id); - Serial.println(F(" Reverb send")); + Serial.println(F(" -> Reverb send")); #endif } @@ -491,10 +489,6 @@ void setup() delay_fb_mixer_r.gain(1, mapfloat(configuration.delay_feedback, DELAY_FEEDBACK_MIN, DELAY_FEEDBACK_MAX, 0.0, 1.0)); // amount of feedback delay_fb_mixer_l.gain(0, 1.0); // original signal delay_fb_mixer_l.gain(1, mapfloat(configuration.delay_feedback, DELAY_FEEDBACK_MIN, DELAY_FEEDBACK_MAX, 0.0, 1.0)); // amount of feedback - delay_mixer_r.gain(0, 1.0); - delay_mixer_l.gain(0, 1.0); - delay_mixer_r.gain(1, 1.0); - delay_mixer_l.gain(1, 1.0); // CHORUS switch (configuration.chorus_waveform)