Playback and capture streams can never be exactly synchronized -- even
if both use the same sample rate, packet sizes are not guaranteed to
be the same. This means that it's possible to use smaller buffers
with Jack by using only one direction (-P or -C instead of -d), if
only one direction is needed.
Due to synchronization issues with the host controller, stopping and
restarting a stream will take several milliseconds. This means that
it is often preferrable to use Jack's --softmode option to reduce the
length of the gap when an underrun happens.
The snd-usb-audio driver in CVS, or in ALSA 1.0.10rc1 (to be released
Real Soon Now(TM)) has several improvements:
- Maximum additional latency of captured data reduced to 1 ms (this
was a bug in the earlier version).
- Consistent handling of USB packets that go over the buffer boundary.
Sample rates that aren't a multiple of 1000 now work just as well as
sample rates that are. This affects programs (like Jack) that don't
use a buffer size that is a multiple of rate/1000, too.
- The nr_packs parameter can now be changed after the module has been
loaded, e.g.:
echo 1 > /sys/module/snd_usb_audio/parameters/nr_packs
This change will take effect when a stream is started the next time.
Regards,
Clemens