[LAU] MIDI fan-out daemon

From: Ken Restivo <ken@email-addr-hidden>
Date: Thu Oct 11 2007 - 23:35:31 EEST

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

For almost a year, I've been looking for a MIDI fan-out box: a simple and rock-solid reliable daemon that will run in RT, and take in a stream of MIDI, and fan it out to 16 virtual output ports, one for each channel.

I tried midirgui and qmidiroute. They are nice, and flexible, but I don't want flexible, I don't want a GUI, I want very lightweight daemon that will fan out my MIDI controller's output onto 16 virtual ports.

I also tried to write this in a higher-level language: ChucK and SC won't run on my 64-bit system, and PD doesn't seem to have any facility to let me route streams out different virtual ports. Python uses the RTMIDI library, which is pretty limited and doesn't seem to let me open multiple virtual ports. Plus all of the above are more heavyweight than I want.

So I'm going to write this in C. I've looked at some simple ALSA code, as well as the code of midirgui and qmidiroute. The ALSA API is kind of weird-looking, but I think I have everything I need in order to figure out how to get it to do what I want.

My question is this: what's the magic incantation to get the permissions from the kernel to make the daemon run in RT mode? I suppose I could just "sudo chrt" on it after I run it, but most apps seem to find a way to get RT priorities on their own, where is that code?

Finally, looking forward to the future: I haven't yet experimented with the wonders of jackd 0.107's -X flag, but, would it be possible/easier for me to write this using JACK MIDI instead of ALSA? I'm on jackd 0.103 now. Would -X give me outputs on the ALSA side for any ports I open on the JACK MIDI side? If it does, then I could use JACK MIDI to wrap ALSA and do the RT part for me too, which might be attractive.

Thanks.

- -ken
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFHDokTe8HF+6xeOIcRAuaHAJ90mvPojQ3kt07oJLE754PVlohBkgCggJk0
Yk0RjNTnSsdLyP6WXIQfnGY=
=US51
-----END PGP SIGNATURE-----
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-user
Received on Fri Oct 12 00:15:04 2007

This archive was generated by hypermail 2.1.8 : Fri Oct 12 2007 - 00:15:05 EEST