Paul Davis writes:
And it surely
wouldn't be bad for clients not to rely a a particular size
callback. I don't know how CoreAudio handles this. I'm sure EASI did
not have constant size callbacks and VST does not either IIRC. (ASIO
probably does, but ASIO also forces double buffering (I think)...).
until recently, JACK provided support for variable numbers of frames
in the process() callback. it was removed because no developer was in
support of it, and because JACK itself had no use for it.
i am quite open to re-examining the issue. however, i don't want
inefficient software designs to be forced on us by the stupid use of
USB to handle audio. i've had enough of bad hardware designs messing
up software, and it won't happen here. if it can be done sensibly, we
can do it.
I'm a newbie to LAD, but I have some years of experience of developing
and using a system similar to JACK for routing blocks of samples to
DSP modules of a digital satellite control receiver and transmitter
system running on Solaris (we are talking about some megasamples per
second here).
IMHO, the only sensible way for a system like JACK to operate is by
using a constant blocksize. Anyway, if you have several HW interfaces
each using their own blocksize or interrupt frequency then this is the
only sane option.
If this means an extra buffering layer, then so be it. That's the
price you pay for sloppy HW design.
Just my 0.02 EUR.
BTW, can JACK handle several HW interface using different blocksizes
at a time (assuming sample frequencies are coherent) ?
--
Fons Adriaensen
ALCATEL SPACE