Adafruit nrf52480 Feather: Can only send 4 byte MIDI SysEx messages #316
Replies: 2 comments 5 replies
-
This could be an issue with chunking of the SysEx into BLE packets, maybe @lathoub can chime in as he worked on that transport. Reset corresponds to the 0xff messages, so it's possible that:
If we can manage to fix sending a hardcoded SysEx buffer, then we can move on to using unions to encode the data. |
Beta Was this translation helpful? Give feedback.
-
You are sending 10 bytes using the BLE Transport of this lib. The underlying code simply send out the buffer 'as is' (there is no interpreting in sending the buffer) Are you also using this lib for receiving the BLE bytes? (or is Snoize's the receiving app?). |
Beta Was this translation helpful? Give feedback.
-
Hi!
I have been working on a project where I am required to send several floating point numbers via MIDI over BLE. I decided to use real-time sysex messages as no other message within in the MIDI v1.0 spec would contain the 7 plus floating point numbers I need to receive from the feather.
However, I am finding that when sending them as raw bytes, I am only receiving a four byte message consisting of the sysex start byte (0xF0), two bytes of the data, then the sysex end byte (0xF7). The rest of the data is then interpreted as whatever either the MIDI.h or BLEMidi.h libraries interpret the rest of the bytes of data to be.
I have tried to use both versions of the MIDI.sendSysEx() function but whether I provide the start and end bytes or not, the message data is still reduced to two bytes with the start/end bytes on either side. Digging through the source code of both FourtySevenEffects MIDI and the Adafruit BLE MIDI libraries has me wondering if there is something I am not setting up properly in MIDI.h or a problem with how the BLEMidi.h send functions detect sysex messages and tries to terminate them properly. Either way, my eyeballs are bleeding and I am frustrated.
For simplicity, I reduced my code and placed it in the blemidi example for testing. I removed the scale playback and inserted this:
Note that I tried sending my unionized memory buffer and the
test[10]
buffer to no avail.Here is the output from Snoize's MIDI Monitor:
Thanks in advance for the help! Even if you can point me in the right direction or tell me how to just bit bang the stuff over, I will super grateful!
Beta Was this translation helpful? Give feedback.
All reactions