From b77871200307aadda80698f7442957638627b77a Mon Sep 17 00:00:00 2001 From: Holger Wirtz Date: Wed, 23 Oct 2019 13:20:26 +0200 Subject: [PATCH] Added more menu functions. Fixed volume setup. --- MicroDexed.ino | 185 +++++++++++++++++++++-------------- UI.hpp | 233 ++++++++++++++++++++++++++++++++++++++++---- config.h | 46 ++++++--- doc/Audio-Chain.png | Bin 0 -> 87298 bytes 4 files changed, 363 insertions(+), 101 deletions(-) create mode 100644 doc/Audio-Chain.png diff --git a/MicroDexed.ino b/MicroDexed.ino index aa5890b..f3762d9 100644 --- a/MicroDexed.ino +++ b/MicroDexed.ino @@ -64,7 +64,7 @@ AudioConnection patchCord8(modchorus_filter, 0, master_mixer_l, 3); AudioConnection patchCord9(modchorus, 0, master_mixer_r, 3); AudioConnection patchCord10(modchorus, 0, master_mixer_l, 3); #endif -#ifdef USE_REVERB +#if defined(USE_REVERB) AudioEffectFreeverbStereo freeverbs1; AudioConnection patchCord11(queue1, 0, freeverbs1, 0); AudioConnection patchCord12(queue1, 0, freeverbs1, 1); @@ -125,15 +125,9 @@ uint8_t midi_timing_counter = 0; // 24 per qarter elapsedMillis midi_timing_timestep; uint16_t midi_timing_quarter = 0; elapsedMillis long_button_pressed; -SoftenValue soften_volume; -SoftenValue soften_filter_res[NUM_DEXED]; -SoftenValue soften_filter_cut[NUM_DEXED]; -uint8_t effect_filter_cutoff = 0; -uint8_t effect_filter_resonance = 0; -uint8_t effect_delay_time = 0; -uint8_t effect_delay_feedback = 0; -uint8_t effect_delay_volume = 0; -bool effect_delay_sync = 0; +SoftenValue soften_volume; +SoftenValue soften_filter_res[NUM_DEXED]; +SoftenValue soften_filter_cut[NUM_DEXED]; elapsedMicros fill_audio_buffer; elapsedMillis control_rate; uint8_t active_voices = 0; @@ -142,11 +136,11 @@ elapsedMillis cpu_mem_millis; #endif config_t configuration = { 0xffff, - DEFAULT_SYSEXBANK, - DEFAULT_SYSEXSOUND, - VOLUME, - 0.5f, // pan - 0, // mono + SYSEXBANK_DEFAULT, + SYSEXSOUND_DEFAULT, + VOLUME_DEFAULT, + PANORAMA_DEFAULT, // pan + MONO_DEFAULT, // mono DEFAULT_MIDI_CHANNEL, REVERB_ROOMSIZE_DEFAULT, REVERB_DAMPING_DEFAULT, @@ -154,7 +148,10 @@ config_t configuration = { CHORUS_FREQUENCY_DEFAULT, CHORUS_WAVEFORM_DEFAULT, CHORUS_DEPTH_DEFAULT, - CHORUS_LEVEL_DEFAULT + CHORUS_LEVEL_DEFAULT, + FILTER_CUTOFF_DEFAULT, + FILTER_RESONANCE_DEFAULT, + LOUDNESS_DEFAULT }; bool eeprom_update_flag = false; @@ -370,7 +367,7 @@ void setup() // set initial volume and pan (read from EEPROM) set_volume(configuration.vol, configuration.pan); - soften_volume.init(configuration.vol, 0.0, 1.0); + soften_volume.init(configuration.vol, VOLUME_MIN, VOLUME_MAX); #if defined (DEBUG) && defined (SHOW_CPU_LOAD_MSEC) // Initialize processor and memory measurements @@ -430,10 +427,6 @@ void loop() if (peak1.read() > 0.99) peak++; } -#ifndef TEENSY_AUDIO_BOARD - for (uint8_t i = 0; i < AUDIO_BLOCK_SAMPLES; i++) - audio_buffer[i] *= configuration.vol; -#endif queue1.playBuffer(); } @@ -506,7 +499,7 @@ void loop() set_volume(soften_volume.value(), configuration.pan); #ifdef DEBUG Serial.print(F("Volume: ")); - Serial.print(configuration.vol, 5); + Serial.print(configuration.vol, DEC); Serial.print(F(" step: ")); Serial.print(soften_volume.steps()); Serial.print(F(" diff: ")); @@ -563,73 +556,107 @@ void handleControlChange(byte inChannel, byte inCtrl, byte inValue) } break; case 1: - MicroDexed[0]->controllers.modwheel_cc = inValue; - MicroDexed[0]->controllers.refresh(); + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->controllers.modwheel_cc = inValue; + MicroDexed[i]->controllers.refresh(); + } break; case 2: - MicroDexed[0]->controllers.breath_cc = inValue; - MicroDexed[0]->controllers.refresh(); + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->controllers.breath_cc = inValue; + MicroDexed[i]->controllers.refresh(); + } break; case 4: - MicroDexed[0]->controllers.foot_cc = inValue; - MicroDexed[0]->controllers.refresh(); + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->controllers.foot_cc = inValue; + MicroDexed[i]->controllers.refresh(); + } break; case 7: // Volume - configuration.vol = float(inValue) / 0x7f; - set_volume(configuration.vol, configuration.pan); + configuration.vol = map(inValue, 0, 0x7f, VOLUME_MIN, VOLUME_MAX); + soften_volume.update(configuration.vol, SOFTEN_VALUE_CHANGE_STEPS); break; case 10: // Pan - configuration.pan = float(inValue) / 128; + configuration.pan = map(inValue, 0, 0x7f, PANORAMA_MIN, PANORAMA_MAX); set_volume(configuration.vol, configuration.pan); break; case 32: // BankSelect LSB configuration.bank = inValue; break; case 64: - MicroDexed[0]->setSustain(inValue > 63); - if (!MicroDexed[0]->getSustain()) { - for (uint8_t note = 0; note < MicroDexed[0]->getMaxNotes(); note++) { - if (MicroDexed[0]->voices[note].sustained && !MicroDexed[0]->voices[note].keydown) { - MicroDexed[0]->voices[note].dx7_note->keyup(); - MicroDexed[0]->voices[note].sustained = false; + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->setSustain(inValue > 63); + if (!MicroDexed[i]->getSustain()) { + for (uint8_t note = 0; note < MicroDexed[0]->getMaxNotes(); note++) { + if (MicroDexed[i]->voices[note].sustained && !MicroDexed[i]->voices[note].keydown) { + MicroDexed[i]->voices[note].dx7_note->keyup(); + MicroDexed[i]->voices[note].sustained = false; + } } } } break; case 103: // CC 103: filter resonance - effect_filter_resonance = map(inValue, 0, 127, 0, ENC_FILTER_RES_STEPS); - MicroDexed[0]->fx.Reso = 1.0 - float(effect_filter_resonance) / ENC_FILTER_RES_STEPS; + configuration.filter_resonance = map(inValue, 0, 0x7f, FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX); + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->fx.Reso = configuration.filter_resonance / 100.0; + } break; case 104: // CC 104: filter cutoff - effect_filter_cutoff = map(inValue, 0, 127, 0, ENC_FILTER_CUT_STEPS); - MicroDexed[0]->fx.Cutoff = 1.0 - float(effect_filter_cutoff) / ENC_FILTER_CUT_STEPS; + configuration.filter_cutoff = map(inValue, 0, 0x7f, FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX); + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->fx.Cutoff = configuration.filter_cutoff / 100.0; + } break; case 105: // CC 105: delay time - effect_delay_time = map(inValue, 0, 127, 0, ENC_DELAY_TIME_STEPS); - ////delay.delay(0, mapfloat(effect_delay_time, 0, ENC_DELAY_TIME_STEPS, 0.0, DELAY_MAX_TIME)); - break; + configuration.delay_time = map(inValue, 0, 0x7f, DELAY_TIME_MIN, DELAY_TIME_MAX); + delay1.delay(0, configuration.delay_time * 10); case 106: // CC 106: delay feedback - effect_delay_feedback = map(inValue, 0, 127, 0, ENC_DELAY_FB_STEPS); - ////delay_mixer_r.gain(1, mapfloat(float(effect_delay_feedback), 0, ENC_DELAY_FB_STEPS, 0.0, 1.0)); + configuration.delay_feedback = map(inValue, 0, 0x7f, DELAY_FEEDBACK_MIN , DELAY_FEEDBACK_MAX); + delay_fb_mixer.gain(1, configuration.delay_feedback / 100.0 ); // amount of feedback + delay_fb_mixer.gain(0, 1.0 - configuration.delay_feedback / 100.0); // original signalbreak; break; case 107: // CC 107: delay volume - effect_delay_volume = map(inValue, 0, 127, 0, ENC_DELAY_VOLUME_STEPS); - ////delay_mixer_l.gain(1, mapfloat(effect_delay_volume, 0, ENC_DELAY_VOLUME_STEPS, 0.0, 1.0)); // delay tap1 signal (with added feedback) + configuration.delay_level = map(inValue, 0, 0x7f, DELAY_LEVEL_MIN, DELAY_LEVEL_MAX); + master_mixer_r.gain(2, configuration.delay_level / 100.0); + master_mixer_l.gain(2, configuration.delay_level / 100.0); break; case 120: - MicroDexed[0]->panic(); + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->panic(); + } break; case 121: - MicroDexed[0]->resetControllers(); + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->resetControllers(); + } break; case 123: - MicroDexed[0]->notesOff(); + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->notesOff(); + } break; case 126: - MicroDexed[0]->setMonoMode(true); + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->setMonoMode(true); + } break; case 127: - MicroDexed[0]->setMonoMode(false); + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->setMonoMode(false); + } break; } } @@ -637,13 +664,19 @@ void handleControlChange(byte inChannel, byte inCtrl, byte inValue) void handleAfterTouch(byte inChannel, byte inPressure) { - MicroDexed[0]->controllers.aftertouch_cc = inPressure; - MicroDexed[0]->controllers.refresh(); + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->controllers.aftertouch_cc = inPressure; + MicroDexed[i]->controllers.refresh(); + } } void handlePitchBend(byte inChannel, int inPitch) { - MicroDexed[0]->controllers.values_[kControllerPitch] = inPitch + 0x2000; // -8192 to +8191 --> 0 to 16383 + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->controllers.values_[kControllerPitch] = inPitch + 0x2000; // -8192 to +8191 --> 0 to 16383 + } } void handleProgramChange(byte inChannel, byte inProgram) @@ -934,19 +967,23 @@ bool checkMidiChannel(byte inChannel) VOLUME HELPER ******************************************************************************/ -void set_volume(float v, float p) +void set_volume(uint8_t v, int8_t p) { configuration.vol = v; configuration.pan = p; - MicroDexed[0]->fx.Gain = v; - - uint16_t tmp = v * 1023.0 + 0.5; - float tmp2 = configuration.pan; + uint16_t tmp = v / 100.0 * 1023.0 + 0.5; + float tmp2 = mapfloat(configuration.pan, PANORAMA_MIN, PANORAMA_MAX, 0.0, 1.0); float tmp3 = (float)(tmp * (tmp + 2)) / (float)(1 << 20); -#ifdef SHOW_DEBUG + + // float v = (float)(a * (a + 2))/(float)(1 << 20); // (pseudo-) logarithmic curve for volume control + // http://files.csound-tutorial.net/floss_manual/Release03/Cs_FM_03_ScrapBook/b-panning-and-spatialization.html + volume_r.gain(tmp3 * sinf(tmp2 * PI / 2)); + volume_l.gain(tmp3 * cosf(tmp2 * PI / 2)); + +#ifdef DEBUG Serial.print(F("Setting volume: VOL=")); - Serial.print(value, DEC); + Serial.print(configuration.vol, DEC); Serial.print(F("[")); Serial.print(tmp3, 3); Serial.print(F("] PAN=")); @@ -959,15 +996,21 @@ void set_volume(float v, float p) Serial.println(tmp3 * cosf(tmp2 * PI / 2), 3); #endif - // float v = (float)(a * (a + 2))/(float)(1 << 20); // (pseudo-) logarithmic curve for volume control - // http://files.csound-tutorial.net/floss_manual/Release03/Cs_FM_03_ScrapBook/b-panning-and-spatialization.html - volume_r.gain(tmp3 * sinf(tmp2 * PI / 2)); - volume_l.gain(tmp3 * cosf(tmp2 * PI / 2)); - if (configuration.mono == 2) + { + volume_r.gain(1.0); volume_l.gain(0.0); + } else if (configuration.mono == 3) + { volume_r.gain(0.0); + volume_l.gain(1.0); + } + else + { + volume_r.gain(1.0); + volume_l.gain(1.0); + } } // https://www.dr-lex.be/info-stuff/volumecontrols.html#table1 @@ -1011,10 +1054,8 @@ void initial_values_from_eeprom(void) Serial.println(); #endif - if (configuration.vol > 1.0) - configuration.vol = 1.0; - else if (configuration.vol < 0.0) - configuration.vol = 0.0; + if (configuration.vol > 100) + configuration.vol = 100; } void eeprom_write(void) diff --git a/UI.hpp b/UI.hpp index 15e2014..2e502c7 100644 --- a/UI.hpp +++ b/UI.hpp @@ -30,6 +30,7 @@ #include "LiquidCrystalPlus_I2C.h" #include "SoftenValue.hpp" #include "effect_modulated_delay.h" +#include "dexed.h" #include #include @@ -50,9 +51,9 @@ extern void strip_extension(char* s, char *target); extern void eeprom_write(void); extern bool get_voice_names_from_bank(uint8_t b); extern bool load_sysex(uint8_t b, uint8_t v); -extern SoftenValue soften_volume; -extern SoftenValue soften_filter_res[NUM_DEXED]; -extern SoftenValue soften_filter_cut[NUM_DEXED]; +extern SoftenValue soften_volume; +extern SoftenValue soften_filter_res[NUM_DEXED]; +extern SoftenValue soften_filter_cut[NUM_DEXED]; extern AudioEffectDelay delay1; #ifdef USE_REVERB extern AudioEffectFreeverbStereo freeverbs1; @@ -64,6 +65,8 @@ extern AudioMixer4 master_mixer_r; extern AudioMixer4 master_mixer_l; extern AudioAmplifier volume_r; extern AudioAmplifier volume_l; +extern Dexed* MicroDexed[NUM_DEXED]; +extern void set_volume(uint8_t v, int8_t p); /*********************************************************************** GLOBAL @@ -450,10 +453,10 @@ void encoder_left_up(void) #ifdef DEBUG Serial.println(F("Volume +")); #endif - if (configuration.vol < 1.0) - soften_volume.update(soften_volume.value() + 0.05, SOFTEN_VALUE_CHANGE_STEPS); + if (configuration.vol < VOLUME_MAX) + soften_volume.update(soften_volume.value() + (VOLUME_MAX - VOLUME_MIN) / VOLUME_ENC_STEPS, SOFTEN_VALUE_CHANGE_STEPS); else - soften_volume.update(1.0, SOFTEN_VALUE_CHANGE_STEPS); + soften_volume.update(VOLUME_MAX, SOFTEN_VALUE_CHANGE_STEPS); eeprom_write(); UI_func_volume(0); } @@ -463,10 +466,10 @@ void encoder_left_down(void) #ifdef DEBUG Serial.println(F("Volume -")); #endif - if (configuration.vol > 0.0) - soften_volume.update(soften_volume.value() - 0.05, SOFTEN_VALUE_CHANGE_STEPS); + if (configuration.vol > VOLUME_MIN) + soften_volume.update(soften_volume.value() - (VOLUME_MAX - VOLUME_MIN) / VOLUME_ENC_STEPS, SOFTEN_VALUE_CHANGE_STEPS); else - soften_volume.update(0.0, SOFTEN_VALUE_CHANGE_STEPS); + soften_volume.update(VOLUME_MIN, SOFTEN_VALUE_CHANGE_STEPS); eeprom_write(); UI_func_volume(0); } @@ -800,7 +803,7 @@ void UI_func_chorus_frequency(uint8_t param) lcd.setCursor(0, 1); lcd_display_float(configuration.chorus_frequency / 10.0, 2, 1, false, true, false); lcd.print(" Hz"); - + modulator.frequency(configuration.chorus_frequency / 10.0); } @@ -1074,27 +1077,223 @@ void UI_func_delay_level(uint8_t param) void UI_func_filter_cutoff(uint8_t param) { - ; + if (LCDML.FUNC_setup()) // ****** SETUP ********* + { + // setup function + lcd.setCursor(0, 0); + lcd.print(F("Filter Cut-Off")); + } + + if (LCDML.FUNC_loop()) // ****** LOOP ********* + { + if (LCDML.BT_checkEnter()) + { + LCDML.FUNC_goBackToMenu(); + } + else if (LCDML.BT_checkDown()) + { + if (configuration.filter_cutoff < FILTER_CUTOFF_MAX) + { + configuration.filter_cutoff++; + } + } + else if (LCDML.BT_checkUp()) + { + if (configuration.filter_cutoff > FILTER_CUTOFF_MIN) + { + configuration.filter_cutoff--; + } + } + lcd.setCursor(0, 1); + lcd_display_int(configuration.filter_cutoff, 3, true, true, false); + + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->fx.Cutoff = configuration.filter_cutoff / 100.0; + } + } + + if (LCDML.FUNC_close()) // ****** STABLE END ********* + { + // you can here reset some global vars or do nothing + } } void UI_func_filter_resonance(uint8_t param) { - ; + if (LCDML.FUNC_setup()) // ****** SETUP ********* + { + // setup function + lcd.setCursor(0, 0); + lcd.print(F("Filter Resonance")); + } + + if (LCDML.FUNC_loop()) // ****** LOOP ********* + { + if (LCDML.BT_checkEnter()) + { + LCDML.FUNC_goBackToMenu(); + } + else if (LCDML.BT_checkDown()) + { + if (configuration.filter_resonance < FILTER_RESONANCE_MAX) + { + configuration.filter_resonance++; + } + } + else if (LCDML.BT_checkUp()) + { + if (configuration.filter_resonance > FILTER_RESONANCE_MIN) + { + configuration.filter_resonance--; + } + } + lcd.setCursor(0, 1); + lcd_display_int(configuration.filter_resonance, 3, true, true, false); + + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->fx.Reso = configuration.filter_resonance / 100.0; + } + } + + if (LCDML.FUNC_close()) // ****** STABLE END ********* + { + // you can here reset some global vars or do nothing + } } void UI_func_midi_channel(uint8_t param) { - ; + if (LCDML.FUNC_setup()) // ****** SETUP ********* + { + // setup function + lcd.setCursor(0, 0); + lcd.print(F("MIDI Channel")); + } + + if (LCDML.FUNC_loop()) // ****** LOOP ********* + { + if (LCDML.BT_checkEnter()) + { + LCDML.FUNC_goBackToMenu(); + } + else if (LCDML.BT_checkDown()) + { + if (configuration.midi_channel < MIDI_CHANNEL_MAX) + { + configuration.midi_channel++; + } + } + else if (LCDML.BT_checkUp()) + { + if (configuration.midi_channel > MIDI_CHANNEL_MIN) + { + configuration.midi_channel--; + } + } + lcd.setCursor(0, 1); + + if (configuration.midi_channel == 0) + { + lcd.print(F("OMNI")); + } + else + { + lcd_display_int(configuration.midi_channel, 2, false, true, false); + lcd.print(F(" ")); + } + } + + if (LCDML.FUNC_close()) // ****** STABLE END ********* + { + // you can here reset some global vars or do nothing + } } void UI_func_loudness(uint8_t param) { - ; + if (LCDML.FUNC_setup()) // ****** SETUP ********* + { + // setup function + lcd.setCursor(0, 0); + lcd.print(F("Loudness")); + } + + if (LCDML.FUNC_loop()) // ****** LOOP ********* + { + if (LCDML.BT_checkEnter()) + { + LCDML.FUNC_goBackToMenu(); + } + else if (LCDML.BT_checkDown()) + { + if (configuration.loudness < LOUDNESS_MAX) + { + configuration.loudness++; + } + } + else if (LCDML.BT_checkUp()) + { + if (configuration.loudness > LOUDNESS_MIN) + { + configuration.loudness--; + } + } + lcd.setCursor(0, 1); + lcd_display_int(configuration.loudness, 3, true, true, false); + + for (uint8_t i = 0; i < NUM_DEXED; i++) + { + MicroDexed[i]->fx.Gain = configuration.loudness / 100.0; + } + } + + if (LCDML.FUNC_close()) // ****** STABLE END ********* + { + // you can here reset some global vars or do nothing + } } void UI_func_panorama(uint8_t param) { - ; + if (LCDML.FUNC_setup()) // ****** SETUP ********* + { + // setup function + lcd.setCursor(0, 0); + lcd.print(F("Panorama")); + } + + if (LCDML.FUNC_loop()) // ****** LOOP ********* + { + if (LCDML.BT_checkEnter()) + { + LCDML.FUNC_goBackToMenu(); + } + else if (LCDML.BT_checkDown()) + { + if (configuration.pan < PANORAMA_MAX) + { + configuration.pan++; + } + } + else if (LCDML.BT_checkUp()) + { + if (configuration.loudness > PANORAMA_MIN) + { + configuration.pan--; + } + } + lcd.setCursor(0, 1); + lcd_display_int(configuration.pan, 2, false, true, true); + } + + set_volume(configuration.vol, configuration.pan); + + if (LCDML.FUNC_close()) // ****** STABLE END ********* + { + // you can here reset some global vars or do nothing + } } void UI_func_stereo_mono(uint8_t param) @@ -1189,11 +1388,11 @@ void UI_func_volume(uint8_t param) // update LCD content LCDML.DISP_clear(); lcd.show(0, 0, 8, "Volume: "); - lcd.show(0, 9, 3, configuration.vol * 100.0 + 0.5); + lcd.show(0, 9, 3, configuration.vol); lcd.setCursor(1, 1); for (uint8_t i = 0; i < LCD_cols; i++) { - if (i < int((LCD_cols - 2) * configuration.vol + 0.5)) + if (i < int((LCD_cols - 2) * configuration.vol / 100.0)) lcd.print("*"); else lcd.print(" "); diff --git a/config.h b/config.h index 8434c15..380ed84 100644 --- a/config.h +++ b/config.h @@ -65,8 +65,8 @@ #define DEFAULT_MIDI_CHANNEL MIDI_CHANNEL_OMNI #define MIDI_MERGE_THRU 1 -#define DEFAULT_SYSEXBANK 0 -#define DEFAULT_SYSEXSOUND 0 +#define SYSEXBANK_DEFAULT 0 +#define SYSEXSOUND_DEFAULT 0 //************************************************************************************************* //* DEXED AND EFECTS SETTINGS @@ -84,7 +84,6 @@ //* AUDIO SETTINGS //************************************************************************************************* // https://rechneronline.de/funktionsgraphen/ -#define VOLUME 0.8 #define VOLUME_CURVE 0.07 #ifndef TEENSY_AUDIO_BOARD #if AUDIO_BLOCK_SAMPLES == 64 @@ -140,12 +139,7 @@ #define SDCARD_SCK_PIN 13 // not actually used // Encoder with button -#define ENC_FILTER_RES_STEPS 100 -#define ENC_FILTER_CUT_STEPS 100 -#define ENC_DELAY_TIME_STEPS 50 -#define ENC_DELAY_FB_STEPS 35 -#define ENC_DELAY_VOLUME_STEPS 50 -#define ENC_VOLUME_STEPS 20 +#define ENCODER_USE_INTERRUPTS #define NUM_ENCODER 2 #define ENC_L_PIN_A 3 #define ENC_L_PIN_B 2 @@ -188,8 +182,12 @@ #if defined(__MK66FX1M0__) // Teensy-3.6 // Teensy-3.6 settings #define MIDI_DEVICE_USB_HOST 1 +#if defined(USE_REVERB) #define MAX_NOTES 16 #else +#define MAX_NOTES 14 +#endif +#else // Teensy-3.5 settings #undef MIDI_DEVICE_USB_HOST #define MAX_NOTES 11 @@ -215,9 +213,18 @@ #define MOD_LINKWITZ_RILEY_FILTER_OUTPUT 2 #define MONO_MIN 0 -#define MONO_MAX 1 +#define MONO_MAX 3 #define MONO_DEFAULT 0 +#define VOLUME_MIN 0 +#define VOLUME_MAX 100 +#define VOLUME_DEFAULT 80 +#define VOLUME_ENC_STEPS 20 + +#define PANORAMA_MIN -20 +#define PANORAMA_MAX 20 +#define PANORAMA_DEFAULT 0 + #define MIDI_CHANNEL_MIN MIDI_CHANNEL_OMNI #define MIDI_CHANNEL_MAX 16 #define MIDI_CHANNEL_DEFAULT MIDI_CHANNEL_OMNI @@ -262,13 +269,25 @@ #define DELAY_LEVEL_MAX 100 #define DELAY_LEVEL_DEFAULT 0 +#define FILTER_CUTOFF_MIN 0 +#define FILTER_CUTOFF_MAX 100 +#define FILTER_CUTOFF_DEFAULT 0 + +#define FILTER_RESONANCE_MIN 0 +#define FILTER_RESONANCE_MAX 100 +#define FILTER_RESONANCE_DEFAULT 0 + +#define LOUDNESS_MIN 0 +#define LOUDNESS_MAX 100 +#define LOUDNESS_DEFAULT 100 + // struct for holding the current configuration struct config_t { uint32_t checksum; uint8_t bank; uint8_t voice; - float vol; - float pan; + uint8_t vol; + int8_t pan; uint8_t mono; uint8_t midi_channel; uint8_t reverb_roomsize; @@ -281,6 +300,9 @@ struct config_t { uint8_t delay_time; uint8_t delay_feedback; uint8_t delay_level; + uint8_t filter_cutoff; + uint8_t filter_resonance; + uint8_t loudness; }; // struct for smoothing value changes diff --git a/doc/Audio-Chain.png b/doc/Audio-Chain.png new file mode 100644 index 0000000000000000000000000000000000000000..2f5cca2fedbfd6caf42333ba71ba19f58a26accb GIT binary patch literal 87298 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 I0m9|~0Mu~^#{d8T literal 0 HcmV?d00001