[Development report #28] Audio Stack Improvements

From: Christos Margiolis <christos_at_freebsd.org>
Date: Tue, 04 Feb 2025 15:11:06 UTC
Working on previous week's patches. I reduced spamming too many new
patches and instead focusing on finalizing and testing the current ones.

MFC recently committed patches to stable/14.

sound: Implement AFMT_FLOAT support:
https://reviews.freebsd.org/D47638

	- Fixed big-endian conversions.
	- Wrote unit tests.
	- Did several sound tests. The fpu_kern(9) overhead mentioned in
	  the review doesn't seem to be that much of an issue so far.
	- Notified people in bug reports to test the patch.

sound: Simplify locking during device creation:
https://reviews.freebsd.org/D48482

sound: Unit test the pcm sample read and write macros:
https://cgit.freebsd.org/src/commit/?id=27ef5d48c729defb83a8822143dc71ab17f9d68b

sound: Safely remove channel from list in one pass:
https://cgit.freebsd.org/src/commit/?id=27b932e32faba1137ff307d05b787d837ccadda8

sound: Make CHN_REMOVE_SAFE() the default:
https://cgit.freebsd.org/src/commit/?id=ffcefe5310e084415a2f292a00f4637d4059c40f

sound tests: Fix gcc build:
https://cgit.freebsd.org/src/commit/?id=f6631da0b581b28c2bfeea1199b52013bb46aa41

sound tests: Fix 32bit calculation detection in pcm_read_write:
https://cgit.freebsd.org/src/commit/?id=e02b579b537998495b06d02be6aa07f03db3a42a

sound: Retire FEEDEQ_CLAMP():
https://reviews.freebsd.org/D48764

sound: Retire Z_CLAMP():
https://reviews.freebsd.org/D48765

mixer(3): Do not skip devices with no volume control:
https://reviews.freebsd.org/D48730

	- Fixes PR 279787:
	  https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279787

Laptop project.

	- [WIP] snd_hda: Attempt to automate pin patching:
	  https://reviews.freebsd.org/D48809
	- Attended LDWG call.

Reviewed:
https://reviews.freebsd.org/D48503
https://reviews.freebsd.org/D48507

Addressing bug reports:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283793
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283948
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254465

Bug triaging.

Joined recent src bug busting call and discussed some recent bug reports
with Mark.

Attended GSOC brainstorming call. fuz@ showed interest in co-mentoring
in the math-related part of my project (porting virtual_oss to base) and
we are currently in contact. The main obstacle of porting it is to get
rid of the third-party libraries (fftw and libsamplerate), which most
likely means rolling our own math and resampling routines. Luckily
virual_oss doesn't make heavy use of these libraries.

Spent time going through the MIDI code and planning my approach for
either scrapping it and rewriting it, or heavily refactoring it. Apart
from obvious bugs and obsolete code, much of it also seems unused, and
not very well designed in general.

This work is sponsored by the FreeBSD Foundation.

Christos