[LAD] further in on midi2udp/tcp

Christopher Arndt chris at chrisarndt.de
Tue Sep 11 15:50:12 CEST 2018


Am 11.09.18 um 14:49 schrieb Jonathan E. Brickman:
> I ran into minor difficulty getting Mido into python2,

You should not use Python 2 fro new projects. Support will run out in
less than two years.

> and difficulty considerably beyond my knowledge getting Mido into python3,
> into this up-to-date Manjaro,
Like I said, mido uses python-rtmidi as the default backend. This works
with Python 3.4+ (and Python 2.7). The Cython-generated C-sources
distributed with python-rtmidi 1.1.0 where incompatible with Python 3.7,
so if you were trying to build that version from source with Python 3.7,
it would have failed. Version 1.1.1, which I released last week fixes
that and installs and runs with Python 27, and 3.4 - 3.7.

What problems were you having with Python 3 anyway? Let me know and I
can probaly help.

> tcp2midi link based on the sample code using blocking waits on both MIDI

You should use a callback function for MIDI reception. The mido
documentation is unfortunately not very good about showing this. IMH
opinion, unless you need the choice of different backends, I don't see
the need for the extra wrapper anyway and I suggest you look into using
python-rtmidi directly? The repo has lots of examples on using it:

https://github.com/SpotlightKid/python-rtmidi/tree/master/examples

After the prototyping stage, I would consider implementing the MIDI and
network handling parts in C/C++ anyway, since Python, as a a
garbage-collected runtime, isn't really suited for real-time tasks. You
can still write the glue code in Python.


Chris


More information about the Linux-audio-dev mailing list