-
Notifications
You must be signed in to change notification settings - Fork 272
Sending large and sending chunked MIDI messages fails #563
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
The plain MIDI data must be parsed to create USB MIDI events from it. The parser must start at a new MIDI event and must end, when a MIDI event is completed. The second condition is checked in this test. This means, you cannot send chunks of a MIDI SysEx message via this parser. It will not work. There are two possible solutions:
What do you prefer? |
Hi @rsta2, thanks for your feedback. I tried #1 but I am probably doing something wrong, because I always get Here is the code in question:
Can you spot what I am doing wrong? On a semi-unrelated note, do you have an idea why this fails as of lately?
Reference: |
USB MIDI events are always 4 bytes long, so the handed over length must be a
multiple of it. This is not the case here. You have to convert the plain MIDI
events to USB MIDI events, which have the format, which is described in this
document (section 4, pg. 16):
https://usb.org/document-library/usb-midi-devices-10
|
Of course, if you say, it does, it does. But unfortunately I have currently
not the time to check this in detail.
What I can say is, that this assertion fails, because SendEventPackets() gets
USB MIDI events data with a wrong length. The length must be a multiple of 4.
The firmware download error is discussed in #562.
|
So I think I would prefer if the whole chunking logic could be encapsulated in Circle, so that it would be possible to send large SysEx in the same way as small SysEx. Do you think you could do that? |
Yes, I will prepare something.
|
Add parameter nChunkSize to SendPlainMIDI() Issue #563
There is a new parameter |
Uh oh!
There was an error while loading. Please reload this page.
I am trying to send a 4096 byte SysEx (DX7 bank dump).
However, it seems like I can't send MIDI messages that large.
Hence, I am trying to split them up into multiple parts ("chunks"), but then these don't get sent due to
24d6984
What is the rationale behind this?
The text was updated successfully, but these errors were encountered: