Open Sound System
Developer Community



What is OSS

API Documentation

Internal Documentation

Licensing

Dowload the source code

Download binaries

Welcome to the Open Sound System developer community web site!

News:

4Front Technologies has released the source code for the Open Sound System under the GPLv2, BSD and CDDL 1.0 licennses.

What is the OSS Developer Community and why?

4Front Technologies has decided to move further development of Open Sound System to a community or consortium within next few years. The goal of this community is to make OSS the common sound subsystem/API for most Unix/Linux/POSIX operating systems.

There are almost a dozen of different sound subsystems used in these operating systems. Some of them are based on some older versions of the OSS API while the others are proprietary. Some of them are actively maintained while the others are running out of steam. Each of them are based on their own source base which makes even all the different OSS implementations slightly incompatible. In addition each system has implemented their own drivers for all devices they support and they are not protable between the systems.

The situation is most absurd for software developers. Today most Unix/Linux/POSIX systems have the same system calls, libraries and core commands. There may be slightly different implementations of them but it's pretty trivial to write applications that compile and work without even smallest changes under all the operating systems. Even GUI based applications can be ported easily since most of the systems support GTK+ (OTOH some of them still ship only the GTK+ 1.x libraries).

But sound is different. To get sound working the developers will have to implement different sound “plugins” for each system. In addition there are many library/daemon based interfaces that try to fix limitations of some of the sound subsystems. Each plugin will take couple of days to develop and few days, weeks or even months to test and debug (depending on the system). This means unbearable amount of work when compared to the rest of the application. All that time could have spent on developing something useful.

This is where Open Sound System comes in the picture. We have spent 25+ man years on developing a kernel level sound subsystem that is easily portable to any oprating system one can imagine. There are already drivers for practically all sound devices available in the market. The feature set of the API has reached the saturation point and there are not much (important) features that could be added. Even the API documentation is almost finished now. And it's finally open sourced (again). So all reasons that still would prevent OSS from becoming the common Unix/POSIX sound system are political.

We have realized long time ago that OSS will not be accepted by the open source communities as long as it's not open sourced. It's also likely that political fights will make this goal impossible if the OSS project is not controlled by some democratic organization.

The Open Sound Developer Community is will be the first step to this direction. We will move control of the Open Sound System software to a developer community or consortium in the future. However executing this plan may take few years. The first step is availability of the source code which makes it possible to our customers, third parties, potential contributors and everybody who is interested to take a look at the code and use or experiment with it.

Next steps such as starting to accept contributions and moving the decision making towards the community will take place later.

4Front Technologies will continue developing the software together with the community. In addition we will provide professional support, consulting and development services for Open Sound System and related services.

Goals of the Open Sound Community

The goal of the cumminity is to bring together persons and organizations interested in developing Open Sound System as the common sound subsystem for various operating systems. In particular we welcome all companies and communities creating operating systems, competing sound subsystems or sound hardware to join.

The community will be politically as neutral as possible. We promote things open source development model and Open Sound System as the common sound API. However we don't try to enforce anything. Companies selling “closed source” operating systems or applications are also welcome to join. We are also willing to work in co-operation with authors of the other sound APIs to make them to co-exist with OSS.

Contributing your code to OSS

If you have made some simple change (few line bug fix) to OSS you can mail the diff (diff -c or diff -u) to the oss-devel mailing list. We will check the change and apply it to the sources if it's OK.

If you are planning to do bigger contributions (new driver, new OS port or some new features) then you should join the community and to fill the contributor's agreement (see below). However it's highly recommended that you propose your changes on the oss-devel mailing list before even starting to do any hacking on OSS. Also check the instructions for making contributions.

Joining the community

For the time being there is no registration page available for new members. You need to fill in the contributor agreement and send it to 4Front Technologies. Fax it to (+1) 310 202 0496 (or scan and send it as an E-mail attachment). Then send E-mail to support@opensound.com and tell us the nick name you would like to use. The nick will be required to access our source repository and bug tracking system. We will then E-mail you the further instructions.

The idea of the contributor agreement is that you give 4Front Technologies non-exclusive rights to distribute your code as a part of OSS. In return we guarantee that if your contribution is released under an license it will also be distributed under all the others (including GPLv2, CDDL1.0 and BSD). For you this means that we cannot make your code closed source by distributing it only under some binary only license. Non-exclusive means that you can distribute the same code yourself under any license provided that it doesn't conflict with the terms of the contributor's agreement.

We have created an oss-devel mailing list for persons who are interested in developing Open Sound System itself and applications for it. Subscribe to the list if you are interested in joining the community or if you are interested about OSS development in some other way.

We are setting up a source repository (probably Mercurial) and a bug tracking system (Bugzilla) in the near future. Until that the contributions can be posted to the oss-devel mailing list.

Sponsoring Open Sound System

Open Sound System is now an open source project. This means that we have to fund the development in some other way than selling the software itself.

There are two ways to sponsor development of Open Sound System. The preferred way is to order an OSS license. In this way you will get free technical support.

Another way to donate is to send a PayPal payment (any amount) to hannu@opensound.com.

Third way is to sponsor a port of Open Sound System for a new operating system or (Linux) distribution. We will also do custom driver development for new sound devices (open source or proprietary). Please contact sales@opensound.com for more info.

Possible projects for contributors

There are numerous areas where contributors could give their helping hand. Below are just some examples of them:

  • Maintaining and improving the operating system interfaces/ports for Linux, FreeBSD and SCO Unixware/OpenServer (4Front is maintaining the Solaris interface under a contract).

  • Creating new operating system ports for NetBSD, OpenBSD, AIX, HP-UX, LynxOS, VxWorks, MacOS and so on (even Windows might be possible).

  • Creating OSS installation packages for various Linux and BSD versions/distributions and keeping them up to date with the latest kernel and distribution versions. This has been beyond our resources and for this reason installing OSS requires availability of the kernel development environment (kernel source, gcc, binutils, make, etc) in each customer system.

  • Maintainers are needed for various low level drivers. Maintaining some drivers such as HD audio (Azalia) and USB currently require more resources than we have. USB is currently supported only under Linux and Solaris but not under FreeBSD and SCO.

  • There are low level drivers missing for many devices such as Hammerfall/HDSP.

  • Adding power management support to OSS. OSS will need a common framework that works with any operating system we support. In addition several low level drivers will have to be modified to work with this framework.

  • Adding support for modem codecs available in many laptops. Related to this is creation of a soft modem application that is compatible with OSS.

  • The ALSA compatibility interface needs an maintainer who preferably has good knowledge of ALSA's internals (alsa-driver and/or alsa-lib). OSS has now a library based ALSA emulation and also an experimental kernel space one (known as Cuckoo).

  • Upgrading or creating the OSS plugins of various audio applications to be OSS 4.0 compatible. Many applications are designed for the 10 years old OSS 3.8 API and they use many features that are unreliable. For example parsing /dev/sndstat to find devices, use of the mixer API for recording/play volume control or recording source selection and use of certain ioctl calls or features like non-blocking I/O for wrong purposes. OSS has has proper solutions for these problems for years.

  • The new MIDI subsystem of OSS is currently under development and there are jobs for several developers who have good understanding of MIDI and computer music applications.