Buenas, he probado mandar los mensajes Sysex para ponerlo en modo editor y luego mandar el envio de canal directamente sin usar la liberia MS3 y ha funcionado.
Mira esto es lo que he hecho:
void sendMidi() {
const byte HANDSHAKE[15] = {0xF0, 0x7E, 0x00, 0x06, 0x02, 0x41, 0x33, 0x03, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xF7};
const byte KATANA_EDIT[15] = {0xF0, 0x41, 0x00, 0x00, 0x00, 0x00, 0x33, 0x12, 0x7F, 0x00, 0x00, 0x01, 0x01, 0x7F, 0xF7};
const byte CANAL2[16] = {0xF0, 0x41, 0x00, 0x00, 0x00, 0x00, 0x33, 0x12, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x7D, 0xF7};
int datalength = 15;
int datalength1 = 16;
byte result;
result = Midi.SendSysEx((byte *)HANDSHAKE, datalength);
delay(20);
Serial.print("Result: ");
Serial.println(result);
result = Midi.SendSysEx((byte *)HANDSHAKE, datalength);
delay(20);
Serial.print("Result: ");
Serial.println(result);
result = Midi.SendSysEx((byte *)KATANA_EDIT, datalength);
delay(20);
Serial.print("Result: ");
Serial.println(result);
result = Midi.SendSysEx((byte *)CANAL2, datalength1);
delay(20);
Serial.print("Result: ");
Serial.println(result);
}
Lo que no entiendo es por qué no funciona entonces la libería MS3?