OSS 5.0?
I decided to start playing with idea of OSS v5. However it may take some time before the real development can be started. Developing a new version of OSS is not an one man project. We will need bit larger developer community than today. In addition some funding is required.
The OSSv4 API itself is pretty much complete. It already does everything it has to do. However the MIDI section may require some amount of planning.
Current implementation of OSSv4 requires some rewriting. The way how OSS works now has changed during development being done since OSSv3. However there is still lot of code that is derived from OSSv3. In addition there are some features that are missing from current OSS.
The following list is an example of issues that may need to be addressed:
- Support for power management. OSSv4 doesn’t do power management because there has always been more urgent things to do. In addition the way how power management works depends on the operating system which causes additional problems in OSS. However power management (suspend/resume) is mainly used on laptops so the only chipset that requires support for it is hdaudio.
- Better integration with Linux. Development of OSSv4 was done with Solaris in mind. There may (or may not) be areas where OSS could work better with Linux and FreeBSD. For example support for the ALSA API needs to be improved.
- The internal interface between the low level (audio) drivers and the (audio) core is bit out of date. This interface has been developed originally for the early ISA sound cards about 15 years ago. Thre is lot of functionality that is no longer necessary and should be removed.
- The current audio core has been designed before current vmix subsystem. It needs some restructuring.
- Audio format and sample rate conversions are currently done in wrong place. This makes the buffering in the audio core very very complicated. A more natural place is in vmix that does such conversions anyway. The audio core can be made very simple and robust if audio conversions can be removed from it.
- Some professional audio devices support up to 64 inputs and outputs. It is necessary to prepare for future devices which may support even more channels. For example need for non-interleaved channel ordering needs to be evaluated.
Some of the low level drivers require more work:
- HDaudio driver needs to be reorganized so that it creates more meaningful mixer controls.
- Also the USB audio driver requires rewriting. The problem is that the kernel level interface (DDI) for USB drivers is different in each operating systems. OSS currently supports USB only under Solaris and Linux and even it seems to be mission impossible. In addition it is unclear how USB alternative settings should be used with USB audio devices.
- SB X-Fi driver of OSS is very limited.
- OSS needs drivers for embedded (SoC) devices. ALSA has ASoC for this kind of devices. However (IMHO) their ASoC implementation causes more problems than it solves.