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