=== Audio Stack Improvements

Contact: Christos Margiolis <christos@FreeBSD.org>

I have been working on the audio stack since 2024Q1. Below is a list of the previous status reports:

* link:https://www.freebsd.org/status/report-2024-01-2024-03/#_audio_stack_improvements[2024Q1]
* link:https://www.freebsd.org/status/report-2024-04-2024-06/#_audio_stack_improvements[2024Q2]
* link:https://www.freebsd.org/status/report-2024-07-2024-09/#_audio_stack_improvements[2024Q3]
* link:https://www.freebsd.org/status/report-2024-10-2024-12/#_audio_stack_improvements[2024Q4]

Important work since link:https://www.freebsd.org/status/report-2024-10-2024-12/#_audio_stack_improvements[last report]:

* Large refactor in man:sound[4]'s format conversion framework: link:https://cgit.freebsd.org/src/commit/?id=433e270f341cf660b2fe125c2e0f733073829188[433e270f341c].
  Further simplifications and refactors in the rest of the processing chain.
* Implemented link:https://cgit.freebsd.org/src/commit/?id=e1bbaa71d62c8681a576f9f5bedf475c7541bd35[AFMT_FLOAT] support.
* More out-of-the-box laptop support, especially Framework models.
* Virtual channels are now allocated on-demand: link:https://cgit.freebsd.org/src/commit/?id=02d4eeabfd73e6a827f5d42601e99aad92060b04[02d4eeabfd73]
* Re-implementing `/dev/dsp` as a virtual/router device: link:https://reviews.freebsd.org/D49216[D49216].
  Apart from the standalone benefits of this change, it will also help us improve automatic sound redirection in man:snd_hda[4].
* More man:sound[4] cleanups, fixes and improvements.
* New virtual_oss release: https://github.com/freebsd/virtual_oss/releases/tag/v1.3.2
* Got my audio-related BSDCan 2025 talk proposal accepted.
* Put porting SOF to FreeBSD on the backburner for now.
  See link:https://lists.freebsd.org/archives/freebsd-multimedia/2025-March/002889.html[here] for an explanation.
* In contact with potential GSOC students interested in link:https://wiki.freebsd.org/SummerOfCodeIdeas#Port_virtual_oss_to_base[porting virtual_oss to base].

Future work includes:

* Finish currently open tasks.
* More bug fixes, support, optimizations and general improvements, in all areas of the sound stack.
* Get back to link:https://reviews.freebsd.org/D46227[audio(8)]
* Implement a generic MIDI layer, similar to pcm/, and improve/modernize the MIDI codebase in general.

You can also follow the development process in link:https://lists.freebsd.org/subscription/freebsd-multimedia[freebsd-multimedia@], where I post regular reports.

Sponsor: The FreeBSD Foundation
