Thanks for your suggestions, anyway, the internal buffers are circular buffers.
For every incoming MIDI message, we need to know where it starts and where it ends.
Setting a flag for SYSEXs is not possible, for instance :
– We receive 10 Notes ON events from USB -> all are stored in BLE TX buffer (30 bytes)
– We start sending these 30 bytes to BLE TX
– Once BLE TX is full (after 20 bytes), we have to wait before sending the 10 remaining bytes, until it becomes ready again.
– What happens SYSEXs are received now, and not included in the buffer ?
-> If we start sending these incoming SYSEXs without buffering them, the resulting BLE TX will be corrupted.

BLE is slower than USB, that’s why it requires buffering. BLE packets are 20 bytes, once a packet is full, we have to wait until it becomes ready again.
Not so easy then.

I’ll check into the source code if I can increase buffers.