jdachtera / node-rtpmidi

A node js implementation of Apples Network Midi Protocol.
91 stars 17 forks source link

Multiple SysEx Messages: Only first one gets sent #17

Open pkoevesdi opened 6 years ago

pkoevesdi commented 6 years ago

I try to send multiple SysEx Messages and discovered, that only the first one gets sent. I cooked everything down and made up a test case out of the script send-receive.js. I just changed lines 15 and 16 to a)

session.sendMessage([0x90, 8, 0xf7]);
session.sendMessage([0x90, 9, 0xf7]);

b)

session.sendMessage([240, 0, 32, 50, 21, 76, 0, 3, 72, 97, 108, 108, 111, 32, 87, 111, 114, 108, 100, 46, 32, 32, 247]);
session.sendMessage([240, 0, 32, 50, 21, 76, 1, 3, 72, 97, 108, 108, 111, 32, 87, 111, 114, 108, 100, 46, 32, 32, 247]);

I wiresharked the connection: case a): Both note on messages get sent and received by the device. case b): only the first SysEx gets sent (and received by the device). No matter, what I send in particular, only the first one gets through wireshark.

Is there any solution or workaround?

laurensvane commented 3 years ago

I had the same problem in sending multiple display data to the x-touch extender (if i recognised the sysex commando correctly). Setting the session bundle varialble to false fixed this for me. The x-touch extender doesn't seem to handle bundled sysexcommando's very well.

rtpMidiSession.connect({ address: 192.168.20.11, port: 5004 }); rtpMidiSession.bundle = false;

pkoevesdi commented 3 years ago

I'm not into this project any more, but as I understand my issue posting, it's not about receiving our handling the commands, the problem already lies in sending them, as they are not visible in wireshark on the sending route. But I finished this project with workarounds, can't tell any more details about this issue.