In Progress

Enhancing FreeBSD’s audio stack to improve the support for modern audio hardware and software applications.

Contact: Christos Margiolis <christos@FreeBSD.org>

While known for its high quality, the FreeBSD audio stack has been undermaintained. A new project aims to enhance the stack comprehensively, addressing frameworks, utilities, and kernel driver bugs to improve overall functionality.

Several significant improvements have been made in recent developments. Asynchronous audio device detach is now supported in FreeBSD 14.1-RELEASE and 14-STABLE, providing more flexibility in audio device management. The outdated “snd_clone” framework has been replaced with DEVFS_CDEVPRIV(9), which also ships with FreeBSD 14.1-RELEASE and 14-STABLE, modernizing the device management framework.

Multiple crash and bug fixes have been made to the sound system, along with better support for man:snd_hda[4] on laptops, ensuring more stable and reliable audio performance. Enhancements to the OSS API have improved the implementation of SNDCTL_AUDIOINFO and SNDCTL_ENGINEINFO IOCTLs, leading to better compatibility and functionality.

New implementations include initiating man:audio[3], an OSS audio and MIDI library, and taking over the maintenance of man:virtual_oss[8], both of which contribute to expanding the capabilities of the FreeBSD audio stack.

Looking ahead, the project plans to develop a new man:audio[8] utility and a Bluetooth management utility, further improving the user experience. Enhancements to man:mixer[3] and man:mixer[8] are also on the agenda. Additionally, the project will improve documentation and test suites to ensure thorough testing and user guidance. An experimental attempt to automate man:snd_hda[4] pin-patching is also in the works, which, if successful, could significantly streamline audio configuration.

These efforts aim to comprehensively improve FreeBSD’s audio capabilities, ensure better support and functionality for users, and solidify FreeBSD’s reputation for high-quality audio performance.

More Information: Audio Stack Improvements (GitHub)