[LAU] Sysex with Jack MIDI

Christopher Arndt chris at chrisarndt.de
Tue Nov 3 15:37:18 CET 2020


Am 03.11.20 um 00:25 schrieb Alexandre DENIS:
> When I try an application with native jack MIDI, such as Reaper (with
> jack backend) or MuSE, I can record sysex successfully, but when I play
> it, it never reaches the hardware.
> 
> With applications using ALSA sequencer [...] I cannot record nor play sysex when connecting jack MIDI ports
> instead (jack MIDI wrapper ports from a2jmidid).
> 

I made some tests and it seems that there is indeed a limit of 112 bytes
for outgoing sysex data.

Here's a very simple script using python-rtmidi I used to test (pass the
number of bytes to send as the first argument and an optional MIDI port
number as the second, if not, it will prompt for the one to use):

#!/usr/bin/env python

import sys
import time
import rtmidi
from rtmidi.midiutil import open_midioutput

port = sys.argv[2] if len(sys.argv) > 2 else None

midiout, name = open_midioutput(port, api=rtmidi.API_UNIX_JACK)
print("Opened port '%s'." % name)

data = bytearray(int(sys.argv[1]))
data[0] = 0xF0
data[-1] = 0xF7
print("Sending %d bytes" % len(data))
midiout.send_message(data)

time.sleep(0.5)
midiout.close_port()
del midiout


I have never encountered this limit before and I am not sure whether
this has always been so, or if it is a regression. I suggest reporting
this at https://github.com/jackaudio/jack2/issues


Chris


More information about the Linux-audio-user mailing list