[...]
interestingly, the design of ASIO only allows 2
interrupts per
hardware buffer. ALSA is much more flexible in handling this kind of
thing.
A huge mistake of ASIO IMHO. On the Audiowerk8 for example,
running 3 interrupts per buffer allows using the input DMA interrupt
only; this interrupt will always occur after the output DMA interrupt
because of buffering. When using only two interrupts per buffer
one would have to wait for the input interrupt also, but be finished
before the output interrupt, hurting performance. The complexity of
the driver also goes up. Due to interrupt latency, very small xruns
are impossible to detect with only two interrupts.
So for this kind of hardware (buffer in host memory, small DMA
FIFOs), I'd always use three interrupts per buffer, and thus
ASIO sucks :)
--ms