SND_UAUDIO(4)          FreeBSD Kernel Interfaces Manual          SND_UAUDIO(4)

NAME

     snd_uaudio - USB audio and MIDI device driver

SYNOPSIS

     device sound
     device usb
     device snd_uaudio

     In rc.conf(5):
     kld_list="snd_uaudio"

     In sysctl.conf(5):
     hw.usb.uaudio.buffer_ms
     hw.usb.uaudio.default_bits
     hw.usb.uaudio.default_channels
     hw.usb.uaudio.default_rate
     hw.usb.uaudio.handle_hid
     hw.usb.uaudio.debug

DESCRIPTION

     A USB audio device consists of a number of components: input terminals
     (e.g. USB digital input), output terminals (e.g. speakers), and a number
     of units in between (e.g. volume control).

     If the device supports multiple configurations, and there have been no
     user-supplied values specified through the sysctl(8) interface, the
     driver will select the best matching configuration supported by the
     device during attach.  "Best" means the configuration with the most
     channels and highest quality in sample rate and sample size.

     Refer to the `USB Audio Class Specification' for more information.

HARDWARE

     The snd_uaudio driver provides support for USB audio class devices and
     USB MIDI class devices.

SYSCTL VARIABLES

     The following settings can be entered at the loader(8) prompt or in
     loader.conf(5) and can also be changed at runtime with the sysctl(8)
     command.  For a change to take effect during runtime, the device has to
     be re-attached.

     hw.usb.uaudio.buffer_ms
             Period of audio data processed at once, in milliseconds, from 1
             to 8 (default is 4).  Lower values mean less latency, but this
             can result in audible gaps due to frequent CPU wakeups.

     hw.usb.uaudio.default_bits
             Preferred sample size in bits, from 0 to 32 (default is 0).  A
             value of 0 sets the sample size to the maximum supported sample
             size.

             Set this to select a smaller sample size if the device supports
             multiple sample sizes.

     hw.usb.uaudio.default_channels
             Preferred number of sample channels, from 0 to 64 (default is 0).
             USB 1.1 devices are limited to 4 channels due to bandwidth
             constraints, unless a higher value is explicitly requested.  A
             value of 0 sets the sample channels to the maximum supported
             channel number.

             Set this to select a smaller channel number if the device
             supports multiple channel configurations.

     hw.usb.uaudio.default_rate
             Preferred sample rate in Hz (default is 0).  If set to 0, the
             device's highest supported sample rate will be used.

             Note that if VCHANs are enabled, the sample rate will be
             overridden by dev.pcm.%d.[play|rec].vchanrate (see sound(4)),
             which can also be used to adjust the sample rate during runtime.

             If hw.usb.uaudio.default_rate is non-zero,
             dev.pcm.%d.[play|rec].vchanrate will use it as its maximum
             allowed value.

     hw.usb.uaudio.handle_hid
             Let snd_uaudio handle HID volume keys, if any (default is 1).

             0   Disabled.

             1   Enabled.

     If usb(4) has been compiled with USB_DEBUG on, the following setting is
     also available:

     hw.usb.uaudio.debug
             Debug output level (default is 0).

SEE ALSO

     sound(4), usb(4), loader.conf(5), loader(8), sysctl(8)

     USB Audio Class Specifications,
     http://www.usb.org/developers/docs/devclass_docs/.

HISTORY

     The snd_uaudio driver first appeared in FreeBSD 4.7.

AUTHORS

     This manual page was adopted from NetBSD 1.6 and modified for FreeBSD by
     Hiten Pandya <hmp@FreeBSD.org>.

BUGS

     The PCM framework in FreeBSD currently does not support the full set of
     USB audio mixer controls.  Some mixer controls are only available as
     dev.pcm.%d.mixer sysctls.

FreeBSD 15.1-STABLE-HBSD         July 17, 2025                   SND_UAUDIO(4)