diff --git a/MicroDexed.ino b/MicroDexed.ino index 67c64b9..72b7609 100644 --- a/MicroDexed.ino +++ b/MicroDexed.ino @@ -313,6 +313,7 @@ void setup() delay(2000); } else + initial_values_from_eeprom(false); */ initial_values_from_eeprom(false); @@ -360,9 +361,6 @@ void setup() Serial.println(F("Internal DAC enabled.")); #endif - // Load values from EEPROM - //initial_values_from_eeprom(false); - // start SD card #ifndef TEENSY4 SPI.setMOSI(SDCARD_MOSI_PIN); @@ -1296,7 +1294,9 @@ void initial_values_from_eeprom(bool init) MicroDexed[instance_id]->doRefreshVoice(); chorus_send_mixer_r.gain(instance_id, configuration.dexed[instance_id].chorus_send / 200.0); - chorus_send_mixer_l.gain(instance_id, configuration.dexed[instance_id].chorus_send / 200.0); + chorus_send_mixer_r.gain(instance_id, configuration.dexed[instance_id].chorus_send / 200.0); + delay_send_mixer_l.gain(instance_id, configuration.dexed[instance_id].delay_send / 200.0); + delay_send_mixer_l.gain(instance_id, configuration.dexed[instance_id].delay_send / 200.0); delay_fb_mixer_r.gain(0, 1.0); // original signal 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 @@ -1348,6 +1348,7 @@ void check_configuration(void) configuration.delay_time = constrain(configuration.delay_time, DELAY_TIME_MIN / 10, DELAY_TIME_MAX / 10); configuration.delay_feedback = constrain(configuration.delay_feedback, DELAY_FEEDBACK_MIN, DELAY_FEEDBACK_MAX); configuration.delay_level = constrain(configuration.delay_level, DELAY_LEVEL_MIN, DELAY_LEVEL_MAX); + configuration.soft_midi_thru = constrain(configuration.soft_midi_thru, SOFT_MIDI_THRU_MIN, SOFT_MIDI_THRU_MAX); for (uint8_t instance_id = 0; instance_id < NUM_DEXED; instance_id++) { configuration.dexed[instance_id].midi_channel = constrain(configuration.dexed[instance_id].midi_channel, MIDI_CHANNEL_MIN, MIDI_CHANNEL_MAX); @@ -1409,6 +1410,7 @@ void init_configuration(void) configuration.delay_time = DELAY_TIME_DEFAULT / 10; configuration.delay_feedback = DELAY_FEEDBACK_DEFAULT; configuration.delay_level = DELAY_LEVEL_DEFAULT; + configuration.soft_midi_thru = SOFT_MIDI_THRU_DEFAULT; for (uint8_t instance_id = 0; instance_id < NUM_DEXED; instance_id++) { configuration.dexed[instance_id].midi_channel = DEFAULT_MIDI_CHANNEL; @@ -1622,6 +1624,7 @@ void show_configuration(void) Serial.print(F("Delay Time ")); Serial.println(configuration.delay_time, DEC); Serial.print(F("Delay Feedback ")); Serial.println(configuration.delay_feedback, DEC); Serial.print(F("Delay Level ")); Serial.println(configuration.delay_level, DEC); + Serial.print(F("Soft MIDI Thr ")); Serial.println(configuration.soft_midi_thru, DEC); Serial.flush(); for (uint8_t instance_id = 0; instance_id < NUM_DEXED; instance_id++) { diff --git a/UI.hpp b/UI.hpp index 9e04d5b..51f4ad7 100644 --- a/UI.hpp +++ b/UI.hpp @@ -187,6 +187,7 @@ void UI_func_voice_selection(uint8_t param); void UI_func_volume(uint8_t param); void UI_func_load(uint8_t param); void UI_func_save(uint8_t param); +void UI_func_midi_soft_thru(uint8_t param); void UI_function_not_enabled(void); void UI_function_not_implemented(uint8_t param); void lcd_display_int(int16_t var, uint8_t size, bool zeros, bool brackets, bool sign); @@ -300,8 +301,9 @@ LCDML_add(98, LCDML_0_3, 1, "Load", UI_func_load); LCDML_add(99, LCDML_0_3, 2, "Save", UI_func_save); LCDML_add(100, LCDML_0, 4, "System", NULL); LCDML_add(101, LCDML_0_4, 1, "Stereo/Mono", UI_func_stereo_mono); -LCDML_add(102, LCDML_0, 5, "Info", UI_func_information); -#define _LCDML_DISP_cnt 102 +LCDML_add(102, LCDML_0_4, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); +LCDML_add(103, LCDML_0, 5, "Info", UI_func_information); +#define _LCDML_DISP_cnt 103 #define MENU_ID_OF_INSTANCE_2 42 #else LCDML_add(0, LCDML_0, 1, "Setup", NULL); @@ -364,8 +366,9 @@ LCDML_add(56, LCDML_0_3, 1, "Load", UI_func_load); LCDML_add(57, LCDML_0_3, 2, "Save", UI_func_save); LCDML_add(58, LCDML_0, 4, "System", NULL); LCDML_add(59, LCDML_0_4, 1, "Stereo/Mono", UI_func_stereo_mono); -LCDML_add(60, LCDML_0, 5, "Info", UI_func_information); -#define _LCDML_DISP_cnt 60 +LCDML_add(60, LCDML_0_4, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); +LCDML_add(61, LCDML_0, 5, "Info", UI_func_information); +#define _LCDML_DISP_cnt 61 #define MENU_ID_OF_INSTANCE_2 41 #endif // create menu @@ -3198,6 +3201,58 @@ void UI_func_information(uint8_t param) } } +void UI_func_midi_soft_thru(uint8_t param) +{ + if (LCDML.FUNC_setup()) // ****** SETUP ********* + { + // setup function + lcd.setCursor(0, 0); + lcd.print(F("MIDI-Soft_Thru")); + } + + if (LCDML.FUNC_loop()) // ****** LOOP ********* + { + if (LCDML.BT_checkEnter()) + { + LCDML.FUNC_goBackToMenu(); + } + else if (LCDML.BT_checkDown() || LCDML.BT_checkUp()) + { + if (LCDML.BT_checkDown()) + { + if (configuration.soft_midi_thru < SOFT_MIDI_THRU_MAX) + { + configuration.soft_midi_thru++; + } + } + else if (LCDML.BT_checkUp()) + { + if (configuration.soft_midi_thru > SOFT_MIDI_THRU_MIN) + { + configuration.soft_midi_thru--; + } + } + } + + lcd.setCursor(0, 1); + switch (configuration.soft_midi_thru) + { + case 0: + lcd.print(F("[OFF]")); + break; + case 1: + lcd.print(F("[ON ]")); + break; + } + } + + if (LCDML.FUNC_close()) // ****** STABLE END ********* + { + // you can here reset some global vars or do nothing + eeprom_write(); + } +} + void UI_func_voice_selection(uint8_t param) { #ifdef DEBUG diff --git a/config.h b/config.h index 8ea1d12..bc0baa0 100644 --- a/config.h +++ b/config.h @@ -71,7 +71,6 @@ //* MIDI SOFTWARE SETTINGS //************************************************************************************************* #define DEFAULT_MIDI_CHANNEL MIDI_CHANNEL_OMNI -#define MIDI_MERGE_THRU 1 #define SYSEXBANK_DEFAULT 0 #define SYSEXSOUND_DEFAULT 0 @@ -197,7 +196,6 @@ // Internal timer #define AUTOSTORE_MS 5000 -#define VOICE_SELECTION_MS 2000 // EEPROM address #define EEPROM_START_ADDRESS 100 @@ -451,6 +449,10 @@ enum { DEXED, CHORUS, DELAY, REVERB}; #define INSTANCE_NOTE_END_MAX MIDI_B7 #define INSTANCE_NOTE_END_DEFAULT INSTANCE_NOTE_END_MAX +#define SOFT_MIDI_THRU_MIN 0 +#define SOFT_MIDI_THRU_MAX 1 +#define SOFT_MIDI_THRU_DEFAULT 1 + // typedef struct { uint8_t midi_channel; @@ -502,6 +504,7 @@ typedef struct { uint8_t delay_time; uint8_t delay_feedback; uint8_t delay_level; + uint8_t soft_midi_thru; dexed_t dexed[NUM_DEXED]; } config_t; diff --git a/midi_devices.hpp b/midi_devices.hpp index f5fde51..459c762 100644 --- a/midi_devices.hpp +++ b/midi_devices.hpp @@ -26,9 +26,11 @@ #include "config.h" +extern config_t configuration; + /* #if defined(MIDI_DEVICE_USB) -#include -#endif */ + #include + #endif */ #ifdef MIDI_DEVICE_USB_HOST #include #endif @@ -41,11 +43,11 @@ USBHost usb_host; MIDIDevice midi_usb(usb_host); #endif /* #ifdef MIDI_DEVICE_USB -static const unsigned sUsbTransportBufferSize = 16; -typedef midi::UsbTransport UsbTransport; -UsbTransport sUsbTransport; -MIDI_CREATE_INSTANCE(UsbTransport, sUsbTransport, midi_onboard_usb); -#endif */ + static const unsigned sUsbTransportBufferSize = 16; + typedef midi::UsbTransport UsbTransport; + UsbTransport sUsbTransport; + MIDI_CREATE_INSTANCE(UsbTransport, sUsbTransport, midi_onboard_usb); + #endif */ void handleNoteOn(byte inChannel, byte inNumber, byte inVelocity); void handleNoteOff(byte inChannel, byte inNumber, byte inVelocity); @@ -77,23 +79,24 @@ void handleNoteOn_MIDI_DEVICE_DIN(byte inChannel, byte inNumber, byte inVelocity #ifdef DEBUG Serial.print(F("[MIDI_DIN] NoteOn")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendNoteOn(inNumber, inVelocity, inChannel); + midi_usb.sendNoteOn(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendNoteOn(inNumber, inVelocity, inChannel); + usbMIDI.sendNoteOn(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleNoteOff_MIDI_DEVICE_DIN(byte inChannel, byte inNumber, byte inVelocity) @@ -102,23 +105,24 @@ void handleNoteOff_MIDI_DEVICE_DIN(byte inChannel, byte inNumber, byte inVelocit #ifdef DEBUG Serial.print(F("[MIDI_DIN] NoteOff")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendNoteOff(inNumber, inVelocity, inChannel); + midi_usb.sendNoteOff(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendNoteOff(inNumber, inVelocity, inChannel); + usbMIDI.sendNoteOff(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleControlChange_MIDI_DEVICE_DIN(byte inChannel, byte inData1, byte inData2) @@ -127,23 +131,24 @@ void handleControlChange_MIDI_DEVICE_DIN(byte inChannel, byte inData1, byte inDa #ifdef DEBUG Serial.print(F("[MIDI_DIN] CC")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendControlChange(inData1, inData2, inChannel); + midi_usb.sendControlChange(inData1, inData2, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendControlChange(inData1, inData2, inChannel); + usbMIDI.sendControlChange(inData1, inData2, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleAfterTouch_MIDI_DEVICE_DIN(byte inChannel, byte inPressure) @@ -152,23 +157,24 @@ void handleAfterTouch_MIDI_DEVICE_DIN(byte inChannel, byte inPressure) #ifdef DEBUG Serial.print(F("[MIDI_DIN] AT")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendAfterTouch(inPressure, inChannel); + midi_usb.sendAfterTouch(inPressure, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendAfterTouch(inPressure, inChannel); + usbMIDI.sendAfterTouch(inPressure, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handlePitchBend_MIDI_DEVICE_DIN(byte inChannel, int inPitch) @@ -177,23 +183,24 @@ void handlePitchBend_MIDI_DEVICE_DIN(byte inChannel, int inPitch) #ifdef DEBUG Serial.print(F("[MIDI_DIN] PB")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendPitchBend(inPitch, inChannel); + midi_usb.sendPitchBend(inPitch, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendPitchBend(inPitch, inChannel); + usbMIDI.sendPitchBend(inPitch, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleProgramChange_MIDI_DEVICE_DIN(byte inChannel, byte inProgram) @@ -202,74 +209,77 @@ void handleProgramChange_MIDI_DEVICE_DIN(byte inChannel, byte inProgram) #ifdef DEBUG Serial.print(F("[MIDI_DIN] PC")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendProgramChange(inProgram, inChannel); + midi_usb.sendProgramChange(inProgram, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendProgramChange(inProgram, inChannel); + usbMIDI.sendProgramChange(inProgram, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } -void handleSystemExclusive_MIDI_DEVICE_DIN(byte *data, uint len) +void handleSystemExclusive_MIDI_DEVICE_DIN(byte * data, uint len) { handleSystemExclusive(data, len); #ifdef DEBUG Serial.print(F("[MIDI_DIN] SysEx")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendSysEx(len, data); + midi_usb.sendSysEx(len, data); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendSysEx(len, data); + usbMIDI.sendSysEx(len, data); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } /* void handleSystemExclusiveChunk_MIDI_DEVICE_DIN(byte *data, uint len, bool last) -{ + { handleSystemExclusiveChunk(data, len, last); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F("[MIDI_DIN] SysExChunk")); -#endif -#ifdef MIDI_MERGE_THRU -#ifdef MIDI_DEVICE_USB_HOST + #endif + if (configuration.soft_midi_thru == 1) + { + #ifdef MIDI_DEVICE_USB_HOST midi_usb.sendSysEx(len, data, last); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F(" THRU->MIDI_USB_HOST")); -#endif -#endif -#ifdef MIDI_DEVICE_USB + #endif + #endif + #ifdef MIDI_DEVICE_USB usbMIDI.sendSysEx(len, data, last); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F(" THRU->MIDI_USB")); -#endif -#endif -#ifdef DEBUG + #endif + #endif + } + #ifdef DEBUG Serial.println(); -#endif -#endif -} */ + #endif + } */ void handleTimeCodeQuarterFrame_MIDI_DEVICE_DIN(byte data) { @@ -277,23 +287,24 @@ void handleTimeCodeQuarterFrame_MIDI_DEVICE_DIN(byte data) #ifdef DEBUG Serial.print(F("[MIDI_DIN] TimeCodeQuarterFrame")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendTimeCodeQuarterFrame(0xF1, data); + midi_usb.sendTimeCodeQuarterFrame(0xF1, data); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendTimeCodeQuarterFrame(0xF1,data); + usbMIDI.sendTimeCodeQuarterFrame(0xF1, data); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleAfterTouchPoly_MIDI_DEVICE_DIN(byte inChannel, byte inNumber, byte inVelocity) @@ -302,23 +313,24 @@ void handleAfterTouchPoly_MIDI_DEVICE_DIN(byte inChannel, byte inNumber, byte in #ifdef DEBUG Serial.print(F("[MIDI_DIN] AT-Poly")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendAfterTouch(inNumber, inVelocity, inChannel); + midi_usb.sendAfterTouch(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendAfterTouch(inNumber, inVelocity, inChannel); + usbMIDI.sendAfterTouch(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleSongSelect_MIDI_DEVICE_DIN(byte inSong) @@ -327,23 +339,24 @@ void handleSongSelect_MIDI_DEVICE_DIN(byte inSong) #ifdef DEBUG Serial.print(F("[MIDI_DIN] SongSelect")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendSongSelect(inSong); + midi_usb.sendSongSelect(inSong); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendSongSelect(inSong); + usbMIDI.sendSongSelect(inSong); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleTuneRequest_MIDI_DEVICE_DIN(void) @@ -352,23 +365,24 @@ void handleTuneRequest_MIDI_DEVICE_DIN(void) #ifdef DEBUG Serial.print(F("[MIDI_DIN] TuneRequest")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendTuneRequest(); + midi_usb.sendTuneRequest(); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendTuneRequest(); + usbMIDI.sendTuneRequest(); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleClock_MIDI_DEVICE_DIN(void) @@ -377,23 +391,24 @@ void handleClock_MIDI_DEVICE_DIN(void) #ifdef DEBUG Serial.print(F("[MIDI_DIN] Clock")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendRealTime(midi::Clock); + midi_usb.sendRealTime(midi::Clock); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendRealTime(midi::Clock); + usbMIDI.sendRealTime(midi::Clock); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleStart_MIDI_DEVICE_DIN(void) @@ -402,23 +417,24 @@ void handleStart_MIDI_DEVICE_DIN(void) #ifdef DEBUG Serial.print(F("[MIDI_DIN] Start")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendRealTime(midi::Start); + midi_usb.sendRealTime(midi::Start); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendRealTime(midi::Start); + usbMIDI.sendRealTime(midi::Start); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleContinue_MIDI_DEVICE_DIN(void) @@ -427,23 +443,24 @@ void handleContinue_MIDI_DEVICE_DIN(void) #ifdef DEBUG Serial.print(F("[MIDI_DIN] Continue")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendRealTime(midi::Continue); + midi_usb.sendRealTime(midi::Continue); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendRealTime(midi::Continue); + usbMIDI.sendRealTime(midi::Continue); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleStop_MIDI_DEVICE_DIN(void) @@ -452,23 +469,24 @@ void handleStop_MIDI_DEVICE_DIN(void) #ifdef DEBUG Serial.print(F("[MIDI_DIN] Stop")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendRealTime(midi::Stop); + midi_usb.sendRealTime(midi::Stop); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendRealTime(midi::Stop); + usbMIDI.sendRealTime(midi::Stop); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleActiveSensing_MIDI_DEVICE_DIN(void) @@ -477,23 +495,24 @@ void handleActiveSensing_MIDI_DEVICE_DIN(void) #ifdef DEBUG Serial.print(F("[MIDI_DIN] ActiveSensing")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendRealTime(midi::ActiveSensing); + midi_usb.sendRealTime(midi::ActiveSensing); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendRealTime(midi::ActiveSensing); + usbMIDI.sendRealTime(midi::ActiveSensing); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleSystemReset_MIDI_DEVICE_DIN(void) @@ -502,49 +521,51 @@ void handleSystemReset_MIDI_DEVICE_DIN(void) #ifdef DEBUG Serial.print(F("[MIDI_DIN] SystemReset")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendRealTime(midi::SystemReset); + midi_usb.sendRealTime(midi::SystemReset); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendRealTime(midi::SystemReset); + usbMIDI.sendRealTime(midi::SystemReset); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } /* void handlRealTimeSysteme_MIDI_DEVICE_DIN(byte inRealTime) -{ + { handleRealTimeSystem(); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F("[MIDI_DIN] RealTimeSystem")); -#endif -#ifdef MIDI_MERGE_THRU -#ifdef MIDI_DEVICE_USB_HOST + #endif + if (configuration.soft_midi_thru == 1) + { + #ifdef MIDI_DEVICE_USB_HOST midi_usb.sendRealTime(inRealTime); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F(" THRU->MIDI_USB_HOST")); -#endif -#endif -#ifdef MIDI_DEVICE_USB + #endif + #endif + #ifdef MIDI_DEVICE_USB //usbMIDI.sendRealTime(inRealTIme); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F(" THRU->MIDI_USB[NOTSUPPORTED]")); -#endif -#endif -#ifdef DEBUG + #endif + #endif + } + #ifdef DEBUG Serial.println(); -#endif -#endif -} */ + #endif + } */ #endif // MIDI_DEVICE_DIN /***************************************** @@ -557,23 +578,24 @@ void handleNoteOn_MIDI_DEVICE_USB_HOST(byte inChannel, byte inNumber, byte inVel #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] NoteOn")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendNoteOn(inNumber, inVelocity, inChannel); + midi_serial.sendNoteOn(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendNoteOn(inNumber, inVelocity, inChannel); + usbMIDI.sendNoteOn(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleNoteOff_MIDI_DEVICE_USB_HOST(byte inChannel, byte inNumber, byte inVelocity) @@ -582,23 +604,24 @@ void handleNoteOff_MIDI_DEVICE_USB_HOST(byte inChannel, byte inNumber, byte inVe #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] NoteOff")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendNoteOff(inNumber, inVelocity, inChannel); + midi_serial.sendNoteOff(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendNoteOff(inNumber, inVelocity, inChannel); + usbMIDI.sendNoteOff(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleControlChange_MIDI_DEVICE_USB_HOST(byte inChannel, byte inData1, byte inData2) @@ -607,23 +630,24 @@ void handleControlChange_MIDI_DEVICE_USB_HOST(byte inChannel, byte inData1, byte #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] CC")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendControlChange(inData1, inData2, inChannel); + midi_serial.sendControlChange(inData1, inData2, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendControlChange(inData1, inData2, inChannel); + usbMIDI.sendControlChange(inData1, inData2, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleAfterTouch_MIDI_DEVICE_USB_HOST(byte inChannel, byte inPressure) @@ -632,23 +656,24 @@ void handleAfterTouch_MIDI_DEVICE_USB_HOST(byte inChannel, byte inPressure) #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] AT")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendAfterTouch(inPressure, inChannel); + midi_serial.sendAfterTouch(inPressure, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendAfterTouch(inPressure, inChannel); + usbMIDI.sendAfterTouch(inPressure, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handlePitchBend_MIDI_DEVICE_USB_HOST(byte inChannel, int inPitch) @@ -657,23 +682,24 @@ void handlePitchBend_MIDI_DEVICE_USB_HOST(byte inChannel, int inPitch) #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] PB")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendPitchBend(inPitch, inChannel); + midi_serial.sendPitchBend(inPitch, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendPitchBend(inPitch, inChannel); + usbMIDI.sendPitchBend(inPitch, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleProgramChange_MIDI_DEVICE_USB_HOST(byte inChannel, byte inProgram) @@ -682,74 +708,77 @@ void handleProgramChange_MIDI_DEVICE_USB_HOST(byte inChannel, byte inProgram) #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] PC")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendProgramChange(inProgram, inChannel); + midi_serial.sendProgramChange(inProgram, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendProgramChange(inProgram, inChannel); + usbMIDI.sendProgramChange(inProgram, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } -void handleSystemExclusive_MIDI_DEVICE_USB_HOST(byte *data, uint len) +void handleSystemExclusive_MIDI_DEVICE_USB_HOST(byte * data, uint len) { handleSystemExclusive(data, len); #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] SysEx")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendSysEx(len, data); + midi_serial.sendSysEx(len, data); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendSysEx(len, data); + usbMIDI.sendSysEx(len, data); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } /* void handleSystemExclusiveChunk_MIDI_DEVICE_USB_HOST(byte *data, uint len, bool last) -{ + { handleSystemExclusiveChunk(data, len, last); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] SysExChunk")); -#endif -#ifdef MIDI_MERGE_THRU -#ifdef MIDI_DEVICE_DIN + #endif + if (configuration.soft_midi_thru == 1) + { + #ifdef MIDI_DEVICE_DIN midi_serial.sendSysEx(len, data, last); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F(" THRU->MIDI_DIN")); -#endif -#endif -#ifdef MIDI_DEVICE_USB + #endif + #endif + #ifdef MIDI_DEVICE_USB usbMIDI.sendSysEx(len, data, last); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F(" THRU->MIDI_USB")); -#endif -#endif -#ifdef DEBUG + #endif + #endif + } + #ifdef DEBUG Serial.println(); -#endif -#endif -} */ + #endif + } */ void handleTimeCodeQuarterFrame_MIDI_DEVICE_USB_HOST(midi::DataByte data) { @@ -757,23 +786,24 @@ void handleTimeCodeQuarterFrame_MIDI_DEVICE_USB_HOST(midi::DataByte data) #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] TimeCodeQuarterFrame")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendTimeCodeQuarterFrame(data); + midi_serial.sendTimeCodeQuarterFrame(data); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendTimeCodeQuarterFrame(0xF1,data); + usbMIDI.sendTimeCodeQuarterFrame(0xF1, data); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleAfterTouchPoly_MIDI_DEVICE_USB_HOST(byte inChannel, byte inNumber, byte inVelocity) @@ -782,23 +812,24 @@ void handleAfterTouchPoly_MIDI_DEVICE_USB_HOST(byte inChannel, byte inNumber, by #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] AT-Poly")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendAfterTouch(inNumber, inVelocity, inChannel); + midi_serial.sendAfterTouch(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->DIN")); + Serial.print(F(" THRU->DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendAfterTouch(inNumber, inVelocity, inChannel); + usbMIDI.sendAfterTouch(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleSongSelect_MIDI_DEVICE_USB_HOST(byte inSong) @@ -807,23 +838,24 @@ void handleSongSelect_MIDI_DEVICE_USB_HOST(byte inSong) #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] SongSelect")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendSongSelect(inSong); + midi_serial.sendSongSelect(inSong); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendSongSelect(inSong); + usbMIDI.sendSongSelect(inSong); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleTuneRequest_MIDI_DEVICE_USB_HOST(void) @@ -832,23 +864,24 @@ void handleTuneRequest_MIDI_DEVICE_USB_HOST(void) #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] TuneRequest")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendTuneRequest(); + midi_serial.sendTuneRequest(); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendTuneRequest(); + usbMIDI.sendTuneRequest(); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleClock_MIDI_DEVICE_USB_HOST(void) @@ -857,23 +890,24 @@ void handleClock_MIDI_DEVICE_USB_HOST(void) #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] Clock")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendRealTime(midi::Clock); + midi_serial.sendRealTime(midi::Clock); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendRealTime(midi::Clock); + usbMIDI.sendRealTime(midi::Clock); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleStart_MIDI_DEVICE_USB_HOST(void) @@ -882,23 +916,24 @@ void handleStart_MIDI_DEVICE_USB_HOST(void) #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] Start")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendRealTime(midi::Start); + midi_serial.sendRealTime(midi::Start); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendRealTime(midi::Start); + usbMIDI.sendRealTime(midi::Start); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleContinue_MIDI_DEVICE_USB_HOST(void) @@ -907,23 +942,24 @@ void handleContinue_MIDI_DEVICE_USB_HOST(void) #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] Continue")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendRealTime(midi::Continue); + midi_serial.sendRealTime(midi::Continue); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendRealTime(midi::Continue); + usbMIDI.sendRealTime(midi::Continue); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleStop_MIDI_DEVICE_USB_HOST(void) @@ -932,23 +968,24 @@ void handleStop_MIDI_DEVICE_USB_HOST(void) #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] Stop")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendRealTime(midi::Stop); + midi_serial.sendRealTime(midi::Stop); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendRealTime(midi::Stop); + usbMIDI.sendRealTime(midi::Stop); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleActiveSensing_MIDI_DEVICE_USB_HOST(void) @@ -957,23 +994,24 @@ void handleActiveSensing_MIDI_DEVICE_USB_HOST(void) #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] ActiveSensing")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendRealTime(midi::ActiveSensing); + midi_serial.sendRealTime(midi::ActiveSensing); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendRealTime(midi::ActiveSensing); + usbMIDI.sendRealTime(midi::ActiveSensing); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleSystemReset_MIDI_DEVICE_USB_HOST(void) @@ -982,49 +1020,51 @@ void handleSystemReset_MIDI_DEVICE_USB_HOST(void) #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] SystemReset")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendRealTime(midi::SystemReset); + midi_serial.sendRealTime(midi::SystemReset); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB - usbMIDI.sendRealTime(midi::SystemReset); + usbMIDI.sendRealTime(midi::SystemReset); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB")); + Serial.print(F(" THRU->MIDI_USB")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } /* void handlRealTimeSysteme_MIDI_DEVICE_USB_HOST(midi::MidiType inRealTime) -{ + { handleRealTimeSystem(); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F("[MIDI_USB_HOST] RealTimeSystem")); -#endif -#ifdef MIDI_MERGE_THRU -#ifdef MIDI_DEVICE_DIN + #endif + if (configuration.soft_midi_thru == 1) + { + #ifdef MIDI_DEVICE_DIN midi_serial.sendRealTime(inRealTime); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F(" THRU->MIDI_DIN")); -#endif -#endif -#ifdef MIDI_DEVICE_USB + #endif + #endif + #ifdef MIDI_DEVICE_USB usbMIDI.sendRealTime(inRealTime); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F(" THRU->MIDI_USB")); -#endif -#endif -#ifdef DEBUG + #endif + #endif + } + #ifdef DEBUG Serial.println(); -#endif -#endif -} */ + #endif + } */ #endif // MIDI_DEVICE_USB_HOST /***************************************** @@ -1037,23 +1077,24 @@ void handleNoteOn_MIDI_DEVICE_USB(byte inChannel, byte inNumber, byte inVelocity #ifdef DEBUG Serial.print(F("[MIDI_USB] NoteOn")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendNoteOn(inNumber, inVelocity, inChannel); + midi_serial.sendNoteOn(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendNoteOn(inNumber, inVelocity, inChannel); + midi_usb.sendNoteOn(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleNoteOff_MIDI_DEVICE_USB(byte inChannel, byte inNumber, byte inVelocity) @@ -1062,23 +1103,24 @@ void handleNoteOff_MIDI_DEVICE_USB(byte inChannel, byte inNumber, byte inVelocit #ifdef DEBUG Serial.print(F("[MIDI_USB] NoteOff")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendNoteOff(inNumber, inVelocity, inChannel); + midi_serial.sendNoteOff(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendNoteOff(inNumber, inVelocity, inChannel); + midi_usb.sendNoteOff(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleControlChange_MIDI_DEVICE_USB(byte inChannel, byte inData1, byte inData2) @@ -1087,23 +1129,24 @@ void handleControlChange_MIDI_DEVICE_USB(byte inChannel, byte inData1, byte inDa #ifdef DEBUG Serial.print(F("[MIDI_USB] CC")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendControlChange(inData1, inData2, inChannel); + midi_serial.sendControlChange(inData1, inData2, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendControlChange(inData1, inData2, inChannel); + midi_usb.sendControlChange(inData1, inData2, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleAfterTouch_MIDI_DEVICE_USB(byte inChannel, byte inPressure) @@ -1112,23 +1155,24 @@ void handleAfterTouch_MIDI_DEVICE_USB(byte inChannel, byte inPressure) #ifdef DEBUG Serial.print(F("[MIDI_USB] AT")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendAfterTouch(inPressure, inChannel); + midi_serial.sendAfterTouch(inPressure, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendAfterTouch(inPressure, inChannel); + midi_usb.sendAfterTouch(inPressure, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handlePitchBend_MIDI_DEVICE_USB(byte inChannel, int inPitch) @@ -1137,23 +1181,24 @@ void handlePitchBend_MIDI_DEVICE_USB(byte inChannel, int inPitch) #ifdef DEBUG Serial.print(F("[MIDI_USB] PB")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendPitchBend(inPitch, inChannel); + midi_serial.sendPitchBend(inPitch, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendPitchBend(inPitch, inChannel); + midi_usb.sendPitchBend(inPitch, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleProgramChange_MIDI_DEVICE_USB(byte inChannel, byte inProgram) @@ -1162,74 +1207,77 @@ void handleProgramChange_MIDI_DEVICE_USB(byte inChannel, byte inProgram) #ifdef DEBUG Serial.print(F("[MIDI_USB] PC")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendProgramChange(inProgram, inChannel); + midi_serial.sendProgramChange(inProgram, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendProgramChange(inProgram, inChannel); + midi_usb.sendProgramChange(inProgram, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } -void handleSystemExclusive_MIDI_DEVICE_USB(byte *data, uint len) +void handleSystemExclusive_MIDI_DEVICE_USB(byte * data, uint len) { handleSystemExclusive(data, len); #ifdef DEBUG Serial.print(F("[MIDI_USB] SysEx")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendSysEx(len, data); + midi_serial.sendSysEx(len, data); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendSysEx(len, data); + midi_usb.sendSysEx(len, data); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } /* void handleSystemExclusiveChunk_MIDI_DEVICE_USB(byte *data, uint len, bool last) -{ + { handleSystemExclusiveChunk(data, len, last); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F("[MIDI_USB] SysExChunk")); -#endif -#ifdef MIDI_MERGE_THRU -#ifdef MIDI_DEVICE_DIN + #endif + if (configuration.soft_midi_thru == 1) + { + #ifdef MIDI_DEVICE_DIN midi_serial.sendSysEx(len, data, last); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F(" THRU->MIDI_DIN")); -#endif -#endif -#ifdef MIDI_DEVICE_USB_HOST + #endif + #endif + #ifdef MIDI_DEVICE_USB_HOST midi_usb.sendSysEx(len, data, last); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F(" THRU->MIDI_USB_HOST")); -#endif -#endif -#ifdef DEBUG + #endif + #endif + } + #ifdef DEBUG Serial.println(); -#endif -#endif -} */ + #endif + } */ void handleTimeCodeQuarterFrame_MIDI_DEVICE_USB(midi::DataByte data) { @@ -1237,23 +1285,24 @@ void handleTimeCodeQuarterFrame_MIDI_DEVICE_USB(midi::DataByte data) #ifdef DEBUG Serial.print(F("[MIDI_USB] TimeCodeQuarterFrame")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendTimeCodeQuarterFrame(data); + midi_serial.sendTimeCodeQuarterFrame(data); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendTimeCodeQuarterFrame(0xF1, data); + midi_usb.sendTimeCodeQuarterFrame(0xF1, data); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleAfterTouchPoly_MIDI_DEVICE_USB(byte inChannel, byte inNumber, byte inVelocity) @@ -1262,23 +1311,24 @@ void handleAfterTouchPoly_MIDI_DEVICE_USB(byte inChannel, byte inNumber, byte in #ifdef DEBUG Serial.print(F("[MIDI_USB] AT-Poly")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendAfterTouch(inNumber, inVelocity, inChannel); + midi_serial.sendAfterTouch(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->DIN")); + Serial.print(F(" THRU->DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendAfterTouch(inNumber, inVelocity, inChannel); + midi_usb.sendAfterTouch(inNumber, inVelocity, inChannel); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleSongSelect_MIDI_DEVICE_USB(byte inSong) @@ -1287,23 +1337,24 @@ void handleSongSelect_MIDI_DEVICE_USB(byte inSong) #ifdef DEBUG Serial.print(F("[MIDI_USB] SongSelect")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendSongSelect(inSong); + midi_serial.sendSongSelect(inSong); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendSongSelect(inSong); + midi_usb.sendSongSelect(inSong); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleTuneRequest_MIDI_DEVICE_USB(void) @@ -1312,23 +1363,24 @@ void handleTuneRequest_MIDI_DEVICE_USB(void) #ifdef DEBUG Serial.print(F("[MIDI_USB] TuneRequest")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendTuneRequest(); + midi_serial.sendTuneRequest(); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendTuneRequest(); + midi_usb.sendTuneRequest(); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleClock_MIDI_DEVICE_USB(void) @@ -1337,23 +1389,24 @@ void handleClock_MIDI_DEVICE_USB(void) #ifdef DEBUG Serial.print(F("[MIDI_USB] Clock")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendRealTime(midi::Clock); + midi_serial.sendRealTime(midi::Clock); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendRealTime(midi::Clock); + midi_usb.sendRealTime(midi::Clock); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleStart_MIDI_DEVICE_USB(void) @@ -1362,23 +1415,24 @@ void handleStart_MIDI_DEVICE_USB(void) #ifdef DEBUG Serial.print(F("[MIDI_USB] Start")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendRealTime(midi::Start); + midi_serial.sendRealTime(midi::Start); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendRealTime(midi::Start); + midi_usb.sendRealTime(midi::Start); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleContinue_MIDI_DEVICE_USB(void) @@ -1387,23 +1441,24 @@ void handleContinue_MIDI_DEVICE_USB(void) #ifdef DEBUG Serial.print(F("[MIDI_USB] Continue")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendRealTime(midi::Continue); + midi_serial.sendRealTime(midi::Continue); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendRealTime(midi::Continue); + midi_usb.sendRealTime(midi::Continue); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleStop_MIDI_DEVICE_USB(void) @@ -1412,23 +1467,24 @@ void handleStop_MIDI_DEVICE_USB(void) #ifdef DEBUG Serial.print(F("[MIDI_USB] Stop")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendRealTime(midi::Stop); + midi_serial.sendRealTime(midi::Stop); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendRealTime(midi::Stop); + midi_usb.sendRealTime(midi::Stop); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleActiveSensing_MIDI_DEVICE_USB(void) @@ -1437,23 +1493,24 @@ void handleActiveSensing_MIDI_DEVICE_USB(void) #ifdef DEBUG Serial.print(F("[MIDI_USB] ActiveSensing")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendRealTime(midi::ActiveSensing); + midi_serial.sendRealTime(midi::ActiveSensing); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendRealTime(midi::ActiveSensing); + midi_usb.sendRealTime(midi::ActiveSensing); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } void handleSystemReset_MIDI_DEVICE_USB(void) @@ -1462,49 +1519,49 @@ void handleSystemReset_MIDI_DEVICE_USB(void) #ifdef DEBUG Serial.print(F("[MIDI_USB] SystemReset")); #endif -#ifdef MIDI_MERGE_THRU + if (configuration.soft_midi_thru == 1) + { #ifdef MIDI_DEVICE_DIN - midi_serial.sendRealTime(midi::SystemReset); + midi_serial.sendRealTime(midi::SystemReset); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_DIN")); + Serial.print(F(" THRU->MIDI_DIN")); #endif #endif #ifdef MIDI_DEVICE_USB_HOST - midi_usb.sendRealTime(midi::SystemReset); + midi_usb.sendRealTime(midi::SystemReset); #ifdef DEBUG - Serial.print(F(" THRU->MIDI_USB_HOST")); + Serial.print(F(" THRU->MIDI_USB_HOST")); #endif #endif + } #ifdef DEBUG Serial.println(); #endif -#endif } /* void handleRealTimeSystem_MIDI_DEVICE_USB(byte inRealTime) -{ + { handleRealTimeSystem(); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F("[MIDI_USB] RealTimeSystem")); -#endif -#ifdef MIDI_MERGE_THRU -#ifdef MIDI_DEVICE_DIN + #endif + #ifdef MIDI_DEVICE_DIN midi_serial.sendRealTime((midi::MidiType)inRealTime); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F(" THRU->MIDI_DIN")); -#endif -#endif -#ifdef MIDI_DEVICE_USB_HOST + #endif + #endif + #ifdef MIDI_DEVICE_USB_HOST midi_usb.sendRealTime(inRealTime); -#ifdef DEBUG + #ifdef DEBUG Serial.print(F(" THRU->MIDI_USB_HOST")); -#endif -#endif -#ifdef DEBUG + #endif + #endif + } + #ifdef DEBUG Serial.println(); -#endif -#endif -} */ + #endif + } */ #endif // MIDI_DEVICE_USB /*****************************************