Dragonfly USB DAC under 9.1-RELEASE
Hans Petter Selasky
hps at bitfrost.no
Mon Apr 22 06:18:41 UTC 2013
On 04/21/13 20:37, Craig Leres wrote:
> First let me say that I did a quick install of FreeBSD 10.0-CURRENT
> (r249439) onto a spare system yesterday and was able to play various
> source material with no glitches. Then I back ported the 10.0-CURRENT
> /sys/dev/sound tree (r249715) to my 9.1-RELEASE system and this solved
> my remaining audio issues. There were bug fixes but it looks like the
> bulk of the changes add support for USB Audio v2.0.
> On 04/21/13 08:57, Hans Petter Selasky wrote:
>> There are multiple options for debugging this issue.
>> 1) Look at the usbdump utility for dumping the data communication for
>> your device:
>> usbdump -i usbusX -f Y -s 65536
> I did find usbdump earlier but don't know enough about usb audio to be
> able to identify any problems.
>> I suspect your device uses rate adaption, and that it does not work
> The Dragonfly supports 44.1, 48, 88.2 and 96 and one goal of mine is to
> not be doing any additional conversion so I'm hoping it's not doing that!
>> What does:
>> usbconfig -d X.Y dump_curr_config_desc
> Attached. I also installed usbutils and have attached output from "lsusb
>> See also:
>> sysctl hw.usb.uaudio.debug=15
> hw.usb.uaudio.debug was very helpful the original sample rate mismatch
> One thing that's annoying is the way dev/sound/usb/uaudio.c is
> structured, the sample rate is programmed in the Dragonfly only when the
> device is inserted; there's no way to change rates once it's plugged in.
This can be changed. The problem is allocating and freeing audio
buffers, which is a sleeping operation and I think cannot be done
directly from the PCM API.
If it is all about changing the sample rate, I think we at insert time
can decide the maximum, and allow lower values to be set without any
I know there was a thread about this at the FreeBSD forums too, and it
shouldn't be too hard to change this, at least for the case you are
seeing. Are you a programmer capable of writing C-code ?
More information about the freebsd-multimedia