[sdiy] USAMO
mskala at ansuz.sooke.bc.ca
mskala at ansuz.sooke.bc.ca
Sat Mar 28 08:06:06 CET 2015
The Linux ALSA MIDI driver has a mode in which one sends events with time
stamps and then they get transmitted at the appropriate time. This helps
a lot with latency issues at the software level. The hardware may still
impose its own limitations.
I don't like this mode because it's cumbersome when all I want to do is
send non-time-critical SYSEXes and occasional notes, with no tight timing
requirements. The design violates the Unix philosophy by not working
with standard file I/O. I wish I could simply open the MIDI device as a
serial port, send characters to it, and use select(), instead of having to
use Linux-specific, ALSA-specific, MIDI-specific interface calls and
busy-wait for input. Also, the timed interface is completely separate
from the (closer to) "raw" ALSA MIDI interface, and doesn't even use the
same numbering scheme for the same devices as used by that interface,
even though they talk to the same hardware. Software that uses both has
to build its own conversion table. So all in all I can't recommend the
ALSA driver as an example of a good way to do MIDI.
But... it *does* support time stamping.
--
Matthew Skala
mskala at ansuz.sooke.bc.ca People before principles.
http://ansuz.sooke.bc.ca/
More information about the Synth-diy
mailing list