Hello, I have recently been playing around with OSSv4 on Debian and Trisquel, and I think it would be beneficial to include it as the default sound backend in gNewSense 3.0. I would be interested in hacking on this if it is something that has the support of the gNewSense development community. OSS4's advantages over ALSA include:
* Portability - OSSv4 runs on BSD and OpenSolaris systems as well as GNU/Linux, making applications which use it easier to port than those which use ALSA. * Lower latency[1] * Better sound quality[1] - I have noticed this myself, although unfortunately have not performed any double-blind tests because I know of no way that this could be done when kernel modules have to be loaded/unloaded to change sound backends, so placebo cannot be ruled out here. * Compatibility with UNIX file abstraction - All sound devices are represented as files under /dev in OSS, meaning that any file operations (such as sound playback over a network with NFS[1]) can be easily implemented with OSSv4. Some potential disadvantages of OSSv4 are: * It is not included in the Linux source. At present, using it requires building it as a kernel module separately. * The binary distribution of OSSv4 includes some non-free drivers. While these are not present in the GPL'd source distribution, use of OSS may be misconstrued by users as supporting a project which distributes non-free software. * I do not know of any user-friendly mixer widget that supports OSS. The OSSv4 source distribution itself comes with a program called ossxmix, which is exceptionally ugly and features unintuitive controls. Given these advantages and disadvantages, I propose the following solution to including OSSv4 as the default sound backend in gNewSense 3.0 "parkes" (with ALSA available at the user's option, of course), which I am willing to hack on with the development community's go-ahead: 1. Either merge the OSSv4 kernel modules into the Linux-libre source (preferred), or otherwise provide a separate pre-built package containing the OSSv4 modules for every version of the kernel Linux available in the distribution. 2. Provide packages containing the user-level software needed to interface with the OSSv4 kernel modules. (Such packages already exist in Debian, albeit somewhat modified by the Debian project, but this step is included here for completeness.) 3. Ensure that application software, especially that included in a default installation of gNewSense, contains and is built with OSSv4 support enabled. This is an issue for programs such as Gnash, which I have not yet got working with OSSv4, as well as for Firefox-based browsers, which I have been told on IRC make direct ALSA calls. Whichever Firefox derivative parkes will include may be the most significant obstacle to the adoption of OSS. 4. Find, create or modify an existing mixer widget to control OSS sound cards. This will require significant community participation, as I do not possess every sound card supported by OSSv4. 5. Write user documentation regarding OSSv4, with particular emphasis on the fact that we use a free version of the software and not the non-free binary distribution offered by 4Front Technologies. 6. Submit any significant work upstream. Ideally, the end result would be a distribution of gNewSense seamlessly tied in with OSSv4, as well as hopefully encouraging other distros to do the same. Regards, Steven McDonald [1] - http://insanecoding.blogspot.com/2009/06/state-of-sound-in-linux-not-so-sorry.html
signature.asc
Description: PGP signature
_______________________________________________ gNewSense-dev mailing list gNewSense-dev@nongnu.org http://lists.nongnu.org/mailman/listinfo/gnewsense-dev