[LAU] Why JACK MIDI rocks (was Re: perhaps why some of us have more trouble w/ pulseaudio than others (ICE1712/M-audio delta problem w/ pulseaudio))

Gabriel M. Beddingfield gabrbedd at gmail.com
Thu May 13 13:40:24 UTC 2010



On Wed, 12 May 2010, Paul Davis wrote:

>> I have to spend a bunch of time grepping through source code (because the
>> docs suck) trying to undermine the ways its trying to help me.
>>
>
> that's a freudian slip if ever i saw one :)

Ha!  No, that's what I meant.  :-)

For example, when implementing a MIDI CC the flow of my code 
will be something like this:

   [3 bytes MIDI] -----(ALSA)----> snd_seq_event_t
   snd_seq_event_t ----(GABE)----> [3 bytes MIDI] + timestamp

I would say that this is undermining the ways it's trying to 
help me.

I could drop the seq API and use the raw MIDI API, but then 
I lose the time-stamp.  (Unless I've misunderstood something 
somewhere....)

In contrast, the JACK MIDI API is something like this:

   [3 bytes MIDI] ----(JACK)----> [3 bytes MIDI] + timestamp

Which is beautiful. :-)

To further rant on the ALSA seq API.... snd_seq_event_t is a 
complex, C-style, polymorphic type.  So, instead of the CC 
param & value being a simple buf[1] & buf[2], it's 
event->data.control.param and event->data.control.value. 
If you have a different type of MIDI event... it has a 
different API... which means you have to spend a lot of time 
with the not-so-hot documentation.

-gabriel


More information about the Linux-audio-user mailing list