On Fri, Feb 15, 2013 at 3:19 PM, M Donalies <ingeniousnebbish@cox.net> wrote:

[insert rant: If html email is for children, shouldn't serious documentation
refrain from flash, javascript,

although flash is on its way out (thanks largely to apple, but also html5 + <canvas>), javascript is at the core of a lot serious website functionality. it actually makes a number of web-centric user experiences much more pleasant.
 
and other gimmicks? Why is it that I can find
entire books on programming the linux kernel, but so little about either Alsa
or Jack?]

follow the money ... who do you propose would write such documentation? why?

the JACK API is fully documented. tutorials on basic use of the audio API exist. the big difference here is that there are several example blobs of source, ranging from the explicitly "example" clients within the JACK source code package itself, to the utility clients, and onward up to full scale MIDI sequencers such as ardour. 

But they also use Jack for audio. This is my frustration. If I want to support
both audio and midi, then I have to learn 2 completely different and conflicting
api's.

which is, of course, another reason why JACK MIDI exists.
 
Perhaps this should go in the "what sucks about linux audio" thread.
What I could do 15+ years ago under Window still mystifies me in how to do it
under linux. (And, no, I'm not a shill for MS. I use linux for everything
other than audio, and I really, really want it for audio as well.)

look, the ALSA sequencer emerged at a time (1998 or so) when it was sort-of correctly believed that you couldn't do "realtime-y" stuff from user space on linux.

although the functionality it offers is incredibly useful for quite a few purposes, the basic design assumption that this sort of thing must be done by handing data to the kernel and allowing it to be scheduled there is just wrong (or at best, unnecessary).

nobody has ever stepped up to write a library based on JACK MIDI that would do "MIDI sequencing" in the sense of your "deliver this event at time T where T is arbitrary". nothing is stopping anyone from doing that.

but ... i would point out that if you look carefully at the insides of the linux based sequencers you mentioned, you will find that they do not actually use this functionality of the ALSA sequencer either. they ask for "immediate" delivery and use their own sequencing mechanisms to get the timing right (mostly).

the only effort i have seen in the open source world to implement a general purpose MIDI sequencing library that did "future" sequencing was something called (something like) TME3. it was a complete failure in terms of getting other apps to use it.
 

[insert rambling conspiracy or other rant of your choice here]

If Jack is used for audio, then shouldn't there be a kind-of general-purpose
Jack midi sequencer? (... and the crowd muttered, "Idiot. You have no idea
what you're talking about.")

"shouldn't there be a kind of general purpose JACK audio sequencer" makes about as much sense ...

what could make quite a bit of sense would be a utility JACK client that played an SMF file via JACK MIDI. this would be *relatively* simple to do (once you figure out what godawful lump of code you plan to use to parse SMF) and would be quite instructional for future questions such as yours.

however, this tool does not exist at this time.

--p