I think that this problem could be related with the size of the
audio buffer. Following audio(4), setting hiwat (and lowat
accordingly) could do the trick, but testing with audioctl it seems
that they are read only, like buffer_size:
~ $ audioctl -a
name=USB audio
version=
config=usb:00000007
encodings=mulaw:8*,alaw:8*,slinear:8*,ulinear:8*,slinear_le:16*,ulinear_le:16*,slinear_be:16*,ulinear_be:16*,slinear_le:24*,ulinear_le:24*,slinear_be:24*,ulinear_be:24*,slinear_le:32*,ulinear_le:32*,slinear_be:32*,ulinear_be:32*
properties=full_duplex,mmap,independent
full_duplex=1
fullduplex=1
blocksize=2048
hiwat=32
lowat=24
[...]
~ $ audioctl -w hiwat=15
hiwat: -> 32
Am I missing something?