It is the same problem you have when you use
alsaseq+jack. The typical
hack to fix this is to have a separate thread receiving and timestamping
events, but this is plain SHIT because you have to anyway rely on the
lowlatencyness of the kernel to not jitter the alsa/osc IPC.
if the kernel has non-low-latencyness (e.g. 100msec blocks while
switching VT's like 2.4), what kind of design do you think will ever
work? if the kernel doesn't get out of the way sufficiently, nothing you
can do will ever do what you want.
I'm _NOT_ glad that jack concentrates only on
audio, because I cant do
that, share tempo maps, and many of the things described here.
as do we all, we just haven't figured out how to do them ... yet.
Well, seeing how jack works i'm not sure if it
does zerocopy because at
some point it has to add up the connectons together, so I dont think
adding sends per connection is impossible. Yes, ican probably make
an inbetween proces that does a send, but this is annoying to use and
probably reduces performance a lot more too.
this was extensively discussed early in JACKs design phase, and was
rejected.
Yes, see what I mean, you have your point of view on
the subject, so do
API/lib/app developers.
You could just go and argue about a lot of topics like:
-Should jack support OSC?
-Should apps be monolithic or a modular set of them?
-Should audio/midi plugins separate UI from core in two processes or
should it be integrated?
-Should transport work frame based or BarBeatTick/etc?
-Should we make a more advanced plugin standard and adapt it to an app,
or wait for GMPI?
-Should we use plugins at all?
-Should we advocate for low latency, or better timing/syncronization so
low latency is not needed as much?
-etc, etc
Everyone has their point of view. It's not like you will tell someone "I
want to add this feature to your app/api" and will say "Ok". You will
simply get an answers like:
and so what happens when you try to ask similar questions on any other
platform? if its not easy on linux to make decisions, sometimes thats
because of the way linux evolves, sometimes its because its just plain
hard to make a decision, no matter what the platform.