|
|
@ -39,7 +39,7 @@ |
|
|
|
#include <effect_stereo_mono.h> |
|
|
|
#include <effect_stereo_mono.h> |
|
|
|
#include <effect_mono_stereo.h> |
|
|
|
#include <effect_mono_stereo.h> |
|
|
|
#include <effect_platervbstereo.h> |
|
|
|
#include <effect_platervbstereo.h> |
|
|
|
#include <effect_compressor.h> |
|
|
|
//#include <effect_compressor.h>
|
|
|
|
#include <template_mixer.hpp> |
|
|
|
#include <template_mixer.hpp> |
|
|
|
#if NUM_DRUMS > 0 |
|
|
|
#if NUM_DRUMS > 0 |
|
|
|
#include "midinotes.h" |
|
|
|
#include "midinotes.h" |
|
|
@ -58,7 +58,7 @@ |
|
|
|
AudioSynthDexed* MicroDexed[NUM_DEXED]; |
|
|
|
AudioSynthDexed* MicroDexed[NUM_DEXED]; |
|
|
|
AudioSynthEPiano ep(NUM_EPIANO_VOICES); |
|
|
|
AudioSynthEPiano ep(NUM_EPIANO_VOICES); |
|
|
|
|
|
|
|
|
|
|
|
AudioEffectCompressor2* compressor[NUM_DEXED]; |
|
|
|
//AudioEffectCompressor2* compressor[NUM_DEXED];
|
|
|
|
AudioSynthWaveform* chorus_modulator[NUM_DEXED]; |
|
|
|
AudioSynthWaveform* chorus_modulator[NUM_DEXED]; |
|
|
|
#if MOD_FILTER_OUTPUT != MOD_NO_FILTER_OUTPUT |
|
|
|
#if MOD_FILTER_OUTPUT != MOD_NO_FILTER_OUTPUT |
|
|
|
AudioFilterBiquad* modchorus_filter[NUM_DEXED]; |
|
|
|
AudioFilterBiquad* modchorus_filter[NUM_DEXED]; |
|
|
@ -91,8 +91,8 @@ AudioEffectPlateReverb reverb; |
|
|
|
|
|
|
|
|
|
|
|
AudioMixer<5> master_mixer_r; |
|
|
|
AudioMixer<5> master_mixer_r; |
|
|
|
AudioMixer<5> master_mixer_l; |
|
|
|
AudioMixer<5> master_mixer_l; |
|
|
|
AudioEffectCompressor2 compressor_r; |
|
|
|
//AudioEffectCompressor2 compressor_r;
|
|
|
|
AudioEffectCompressor2 compressor_l; |
|
|
|
//AudioEffectCompressor2 compressor_l;
|
|
|
|
AudioAmplifier volume_r; |
|
|
|
AudioAmplifier volume_r; |
|
|
|
AudioAmplifier volume_l; |
|
|
|
AudioAmplifier volume_l; |
|
|
|
AudioEffectStereoMono stereo2mono; |
|
|
|
AudioEffectStereoMono stereo2mono; |
|
|
@ -155,10 +155,12 @@ AudioConnection patchCord[] = { |
|
|
|
{ reverb_mixer_l, 0, reverb, 1 }, |
|
|
|
{ reverb_mixer_l, 0, reverb, 1 }, |
|
|
|
{ reverb, 0, master_mixer_r, MASTER_MIX_CH_REVERB }, |
|
|
|
{ reverb, 0, master_mixer_r, MASTER_MIX_CH_REVERB }, |
|
|
|
{ reverb, 1, master_mixer_l, MASTER_MIX_CH_REVERB }, |
|
|
|
{ reverb, 1, master_mixer_l, MASTER_MIX_CH_REVERB }, |
|
|
|
{ master_mixer_r, compressor_r }, |
|
|
|
// { master_mixer_r, compressor_r },
|
|
|
|
{ master_mixer_l, compressor_l }, |
|
|
|
// { master_mixer_l, compressor_l },
|
|
|
|
{ compressor_r, volume_r }, |
|
|
|
// { compressor_r, volume_r },
|
|
|
|
{ compressor_l, volume_l }, |
|
|
|
// { compressor_l, volume_l },
|
|
|
|
|
|
|
|
{ master_mixer_r, volume_r }, |
|
|
|
|
|
|
|
{ master_mixer_l, volume_l }, |
|
|
|
{ volume_r, 0, stereo2mono, 0 }, |
|
|
|
{ volume_r, 0, stereo2mono, 0 }, |
|
|
|
{ volume_l, 0, stereo2mono, 1 }, |
|
|
|
{ volume_l, 0, stereo2mono, 1 }, |
|
|
|
{ stereo2mono, 0, master_peak_r, 0 }, |
|
|
|
{ stereo2mono, 0, master_peak_r, 0 }, |
|
|
@ -239,7 +241,7 @@ AudioConnection* dynamicConnections[NUM_DEXED * 17 + NUM_DRUMS * 4]; |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
FLASHMEM void create_audio_dexed_chain(uint8_t instance_id) { |
|
|
|
FLASHMEM void create_audio_dexed_chain(uint8_t instance_id) { |
|
|
|
MicroDexed[instance_id] = new AudioSynthDexed(MAX_NOTES / NUM_DEXED, SAMPLE_RATE); |
|
|
|
MicroDexed[instance_id] = new AudioSynthDexed(MAX_NOTES / NUM_DEXED, SAMPLE_RATE); |
|
|
|
compressor[instance_id] = new AudioEffectCompressor2(); |
|
|
|
//compressor[instance_id] = new AudioEffectCompressor2();
|
|
|
|
mono2stereo[instance_id] = new AudioEffectMonoStereo(); |
|
|
|
mono2stereo[instance_id] = new AudioEffectMonoStereo(); |
|
|
|
chorus_modulator[instance_id] = new AudioSynthWaveform(); |
|
|
|
chorus_modulator[instance_id] = new AudioSynthWaveform(); |
|
|
|
#if MOD_FILTER_OUTPUT != MOD_NO_FILTER_OUTPUT |
|
|
|
#if MOD_FILTER_OUTPUT != MOD_NO_FILTER_OUTPUT |
|
|
@ -255,11 +257,14 @@ FLASHMEM void create_audio_dexed_chain(uint8_t instance_id) { |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
delay_mixer[instance_id] = new AudioMixer<2>(); |
|
|
|
delay_mixer[instance_id] = new AudioMixer<2>(); |
|
|
|
|
|
|
|
|
|
|
|
dynamicConnections[nDynamic++] = new AudioConnection(*MicroDexed[instance_id], 0, *compressor[instance_id], 0); |
|
|
|
//dynamicConnections[nDynamic++] = new AudioConnection(*MicroDexed[instance_id], 0, *compressor[instance_id], 0);
|
|
|
|
dynamicConnections[nDynamic++] = new AudioConnection(*compressor[instance_id], 0, microdexed_peak_mixer, instance_id); |
|
|
|
//dynamicConnections[nDynamic++] = new AudioConnection(*compressor[instance_id], 0, microdexed_peak_mixer, instance_id);
|
|
|
|
|
|
|
|
//dynamicConnections[nDynamic++] = new AudioConnection(*compressor[instance_id], 0, *chorus_mixer[instance_id], 0);
|
|
|
|
|
|
|
|
//dynamicConnections[nDynamic++] = new AudioConnection(*compressor[instance_id], 0, *modchorus[instance_id], 0);
|
|
|
|
|
|
|
|
dynamicConnections[nDynamic++] = new AudioConnection(*MicroDexed[instance_id], 0, microdexed_peak_mixer, instance_id); |
|
|
|
|
|
|
|
dynamicConnections[nDynamic++] = new AudioConnection(*MicroDexed[instance_id], 0, *chorus_mixer[instance_id], 0); |
|
|
|
|
|
|
|
dynamicConnections[nDynamic++] = new AudioConnection(*MicroDexed[instance_id], 0, *modchorus[instance_id], 0); |
|
|
|
|
|
|
|
|
|
|
|
dynamicConnections[nDynamic++] = new AudioConnection(*compressor[instance_id], 0, *chorus_mixer[instance_id], 0); |
|
|
|
|
|
|
|
dynamicConnections[nDynamic++] = new AudioConnection(*compressor[instance_id], 0, *modchorus[instance_id], 0); |
|
|
|
|
|
|
|
#if MOD_FILTER_OUTPUT != MOD_NO_FILTER_OUTPUT |
|
|
|
#if MOD_FILTER_OUTPUT != MOD_NO_FILTER_OUTPUT |
|
|
|
dynamicConnections[nDynamic++] = new AudioConnection(*chorus_modulator[instance_id], 0, *modchorus_filter[instance_id], 0); |
|
|
|
dynamicConnections[nDynamic++] = new AudioConnection(*chorus_modulator[instance_id], 0, *modchorus_filter[instance_id], 0); |
|
|
|
dynamicConnections[nDynamic++] = new AudioConnection(*modchorus_filter[instance_id], 0, *modchorus[instance_id], 1); |
|
|
|
dynamicConnections[nDynamic++] = new AudioConnection(*modchorus_filter[instance_id], 0, *modchorus[instance_id], 1); |
|
|
|