UAUDIO(4)

πŸ“¦
version 11.0 Β· 2 versions
, in nixpkgs unstable

πŸ’– UAUDIO(4) πŸ’– β€” the USB audio device driver (Kernel Interfaces Manual, bestie edition) ✨

okay so picture this: you plug in a USB headset and it just works β€” that's this driver, no cap 🎧✨

✨ SYNOPSIS ✨

uaudio* at uhub?
audio*  at audiobus?

🌸 DESCRIPTION 🌸

The uaudio driver provides support for USB audio class devices. literally its whole job πŸ’…

A USB audio device is made up of a bunch 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). The following types of units are handled by the uaudio driver and are accessible via the mixer (see audio(4)) interface β€” get into it:

  • mixer β€” a mixer has a number of inputs and one output. Each input has a control that determines its volume in the output. The name of the control is mixN-S, where N is a number that identifies which mixer it is and S which input. iconic behavior tbh πŸŽ›οΈ
  • selector β€” a selector unit selects one of multiple audio sources such as mic-in and line-in. The name of the control is selN-S1S2S3..., where N is a number that identifies which selector unit it is and the sequence of Sn indicates candidate units for the audio source. choosing your fave source like it's a playlist 🎢
  • feature β€” a feature unit changes the sound in some way, like bass, treble, mute, or volume. The name of the control is determined in a heuristic way. If the unit changes the sound to a speaker output terminal, the names of the controls may be outputs.speaker.bass, outputs.speaker.treble, outputs.speaker.mute, outputs.speaker, or likewise. it's giving "vibes-based naming" and honestly? we stan 🌈
  • processing β€” a processing unit does one of a number of audio processing functions (e.g., channel up-down mixing, Dolby ProLogic, or chorus effects). The name of the on–off control is proN.M-enable, where N is a number that identifies which processing unit it is and M which kind. Depending on the type of processing unit there may be other controls as well. main character energy for real πŸ’«
  • extension β€” an extension unit performs some unspecified audio processing. The name of the on–off control is extN-enable, where N is a number that identifies which processing unit it is. mysterious. elusive. we love her πŸ¦‹

For more information the USB Audio class specification is indispensable reading. like genuinely, go read it, it's the blueprint bestie πŸ“–βœ¨


πŸ’… SEE ALSO πŸ’…

USB Approved Class Specification Documents, http://www.usb.org/developers/docs/devclass_docs/.


πŸŽ€ HISTORY πŸŽ€

The uaudio driver appeared in NetBSD 1.5. Support for USB Audio Class 2.0 devices appeared in NetBSD 11.0. a glow-up for the history books fr fr πŸ‘‘


😭 BUGS 😭

There is no support for multiple-endpoints audio stream, adaptive recording, async playback, and TYPE-II/III formats. not me crying over missing features πŸ’€

There is the possibility that a device has multiple mixer items which have the same name. so if you see duplicates… that's not a glitch, that's just the vibe πŸ™ˆ


Deployed on Debian, dated May 21, 2024 β€” UAUDIO(4) and that's the tea, bestie πŸ«ΆπŸ’– stay slaying those USB devices ✨

πŸ“¦ where this page comes from