|
|
@ -44,6 +44,8 @@ |
|
|
|
#define FORMAT_SPIFFS_IF_FAILED true |
|
|
|
#define FORMAT_SPIFFS_IF_FAILED true |
|
|
|
|
|
|
|
|
|
|
|
void OSCToMidiCC(OSCMessage &msg, int offset); |
|
|
|
void OSCToMidiCC(OSCMessage &msg, int offset); |
|
|
|
|
|
|
|
void OSCMixerMuteToMidiCC(OSCMessage &msg, int offset); |
|
|
|
|
|
|
|
void OSCMixerSoloToMidiCC(OSCMessage &msg, int offset); |
|
|
|
void MidiCCToOSC(uint8_t channel, uint8_t number, uint8_t value); |
|
|
|
void MidiCCToOSC(uint8_t channel, uint8_t number, uint8_t value); |
|
|
|
/*void change_midi_state(uint8_t midichannel, uint8_t cc, uint8_t value);
|
|
|
|
/*void change_midi_state(uint8_t midichannel, uint8_t cc, uint8_t value);
|
|
|
|
void show_midi_state(void); |
|
|
|
void show_midi_state(void); |
|
|
@ -231,6 +233,8 @@ void loop() |
|
|
|
{ |
|
|
|
{ |
|
|
|
DEBUG_OSC_MESSAGE(msg); |
|
|
|
DEBUG_OSC_MESSAGE(msg); |
|
|
|
msg.route("/midi/cc", OSCToMidiCC); |
|
|
|
msg.route("/midi/cc", OSCToMidiCC); |
|
|
|
|
|
|
|
msg.route("/midi/mixer/mute", OSCMixerMuteToMidiCC); |
|
|
|
|
|
|
|
msg.route("/midi/mixer/solo", OSCMixerSoloToMidiCC); |
|
|
|
msg.route("/ping", ping); |
|
|
|
msg.route("/ping", ping); |
|
|
|
//msg.route("/midi/sysex", OSCToMidiSYSEX);
|
|
|
|
//msg.route("/midi/sysex", OSCToMidiSYSEX);
|
|
|
|
//msg.route("/midi/note", OSCToMidiNote);
|
|
|
|
//msg.route("/midi/note", OSCToMidiNote);
|
|
|
@ -283,7 +287,7 @@ void OSCToMidiCC(OSCMessage & msg, int offset) |
|
|
|
cc = getCC(address); |
|
|
|
cc = getCC(address); |
|
|
|
value = round(msg.getFloat(0)); |
|
|
|
value = round(msg.getFloat(0)); |
|
|
|
value = value > 127 ? 127 : value; |
|
|
|
value = value > 127 ? 127 : value; |
|
|
|
DEBUG_MSG("MSG: % s\tChannel: % u\t\tCC: % u\tValue: % u\n", address, midichannel, cc, value); |
|
|
|
DEBUG_MSG("MSG: %s\tChannel: %u\t\tCC: %u\tValue: %u\n", address, midichannel, cc, value); |
|
|
|
MIDI1.sendControlChange(cc, value, midichannel); |
|
|
|
MIDI1.sendControlChange(cc, value, midichannel); |
|
|
|
change_midi_state(midichannel, cc, value); |
|
|
|
change_midi_state(midichannel, cc, value); |
|
|
|
} |
|
|
|
} |
|
|
@ -293,13 +297,13 @@ void OSCToMidiCC(OSCMessage & msg, int offset) |
|
|
|
cc = getVar(address, 1); |
|
|
|
cc = getVar(address, 1); |
|
|
|
value = round(msg.getFloat(0)); |
|
|
|
value = round(msg.getFloat(0)); |
|
|
|
value = constrain(value, 0, 127); |
|
|
|
value = constrain(value, 0, 127); |
|
|
|
DEBUG_MSG("MSG: % s\tChannel: % u\t\tCC: % u\tValue: % u\n", address, midichannel, cc, value); |
|
|
|
DEBUG_MSG("MSG: %s\tChannel: %u\t\tCC: %u\tValue: %u\n", address, midichannel, cc, value); |
|
|
|
MIDI1.sendControlChange(cc, value, midichannel); |
|
|
|
MIDI1.sendControlChange(cc, value, midichannel); |
|
|
|
change_midi_state(midichannel, cc, value); |
|
|
|
change_midi_state(midichannel, cc, value); |
|
|
|
cc = getVar(address, 2); |
|
|
|
cc = getVar(address, 2); |
|
|
|
value = round(msg.getFloat(1)); |
|
|
|
value = round(msg.getFloat(1)); |
|
|
|
value = constrain(value, 0, 127); |
|
|
|
value = constrain(value, 0, 127); |
|
|
|
DEBUG_MSG("MSG: % s\tChannel: % u\t\tCC: % u\tValue: % u\n", address, midichannel, cc, value); |
|
|
|
DEBUG_MSG("MSG: %s\tChannel: %u\t\tCC: %u\tValue: %u\n", address, midichannel, cc, value); |
|
|
|
MIDI1.sendControlChange(cc, value, midichannel); |
|
|
|
MIDI1.sendControlChange(cc, value, midichannel); |
|
|
|
change_midi_state(midichannel, cc, value); |
|
|
|
change_midi_state(midichannel, cc, value); |
|
|
|
} |
|
|
|
} |
|
|
@ -309,6 +313,33 @@ void OSCToMidiCC(OSCMessage & msg, int offset) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void OSCMixerMuteToMidiCC(OSCMessage &msg, int offset) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
char address[100] = { 0 }; |
|
|
|
|
|
|
|
uint8_t value; |
|
|
|
|
|
|
|
uint8_t midichannel; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
msg.getAddress(address, offset, sizeof(address)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (msg.size() == 1 && msg.isFloat(0)) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// Single or multi control with sending one value
|
|
|
|
|
|
|
|
midichannel = getVar(address, 0); |
|
|
|
|
|
|
|
value = constrain(msg.getFloat(0), 0, 1); |
|
|
|
|
|
|
|
DEBUG_MSG("MixerMute MSG: %s\t Channel: %u\tMute \tValue: %u\n", address, midichannel, value); |
|
|
|
|
|
|
|
if (value == 1) |
|
|
|
|
|
|
|
MIDI1.sendControlChange(7, 0, midichannel); |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
MIDI1.sendControlChange(7, midistate[(midichannel - 1) * 128 + 6], midichannel); |
|
|
|
|
|
|
|
//change_midi_state(midichannel, cc, value);
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void OSCMixerSoloToMidiCC(OSCMessage &msg, int offset) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void MidiCCToOSC(uint8_t channel, uint8_t number, uint8_t val) |
|
|
|
void MidiCCToOSC(uint8_t channel, uint8_t number, uint8_t val) |
|
|
|
{ |
|
|
|
{ |
|
|
|
char buffer[1024]; |
|
|
|
char buffer[1024]; |
|
|
|