Sound mixer improvements
- Student: ChristosMargiolis (christos@)
- Mentor: HansPetterSelasky (hselasky@)
Project description
FreeBSD's default mixer utilities are not the best; mixer(8) is very basic
and outdated, end users have to tweak sysctl(8) values to do simple things and
programmers have to write DIY implementations for their programs
(e.g audio/mixertui). This project aims to improve mixer handling for OSS on
FreeBSD and make life for both programmers and users easier.
Deliverables
- A
mixer(3)library.- Read all devices and knobs.
- Extend knob capabilities:
- 32-bit floating point left-right volume knobs.
- Muting.
- Recording input selector.
- Select default sound card (not really a mixer feature, but really useful to have).
- Provide as much information as possible about the mixer.
- Use the more modern OSSv4's ioctls.
- Rewrite
mixer(8).- Use
mixer(3)and its new features. - Get rid of the old codebase completely.
- Add more command line options.
- Control-oriented interface like in
sysctl(8).
- Implement some missing but useful for
mixer(3)OSS ioctls in the kernel. - Implement sound device playback/recording status
sysctl. - Update
/etc/rc.d/mixerto work with the new version ofmixer(8). - Make
/dev/sndstat“useless” by containing its information in the output ofmixer(8).
What didn't get done
- Panning capabilities in mixer(3), but it should be easy to write a DIY handler using the
mix_ctl_tinterface.
Test plan
Since a new version of mixer(8) is one of the delievarables, it'll also serve
as a testing ground for the library. Me and the mentor will also test the library
with various sound devices we own.