Developers

The latest version of Open Sound System v4.0 Developer's Guide contains the details of OSS programming.

A white paper describing the design philosophy of OSS 4.0 and changes from the previous versions can be found here. My personal views about Unix/Linux audio are available in my blog.

We have created a mailing list for OSS application and driver developers. See the side bar on left.

Open Sound System (binary) installation packages are available from our download page. Source code of OSS is available from our source download site under the GPLv2 and CDDL 1.0 licenses.

Getting technical support and reporting bugs

If you are a licensed customer you can file a service request using our technical support form. Other users can use our community support forum to get help.

An Open Sound developer's mailing list is also available to developers who want technical discussions with 4Front.

However if you have downloaded the source code and find a bug in it you should report it to the oss-devel mailing list (see above). We are currently evaluating various bug tracking systems and an one for OSS will be opened in the future.

Contents

  1. What is OSS?
  2. Developer Community
    1. What is the OSS Developer Community and why?
    2. Goals of the Open Sound Community
    3. Contributing your code to OSS
    4. Joining the community
    5. Sponsoring Open Sound System
    6. Possible projects for contributors
  3. Support for Developers
  4. Licensing

Useful Links

What is OSS?

Open Sound System (OSS) is the first attempt in unifying the digital audio architecture for UNIX. OSS is a set of device drivers that provide a uniform API across all the major UNIX architectures. It supports Sound Blaster or Windows Sound System compatible sound cards which can be plugged into any UNIX workstation supporting the ISA or PCI bus architecture. OSS also supports workstations with on-board digital audio hardware.

Traditionally, each UNIX vendor has provided their own API for processing digital audio. This meant that applications written to a particular UNIX audio API had to be re-written or ported, with possible loss of functionality, to another version of UNIX. Applications written to the OSS API, need to be designed once and then simply re-compiled on any supported UNIX architecture. OSS is source code compatible across all the platforms.

Most UNIX workstations, thus far, have only provided support for digital audio sampling and playback (business audio). OSS brings the world of MIDI and electronic music to the workstation environment. With the advent of streaming audio, speech recognition/generation, computer telephony, Java and other multimedia technologies, applications on UNIX can now provide the same audio capabilities as those found on Windows NT, OS/2, Windows 95 and the Macintosh operating systems. OSS also provides synchronized audio capabilities required for desktop video and animation playback.

Developer Community

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:

Support for Developers

Do you have problems with Open Sound System (OSSv4) based application development?

No problem!

4Front Technologies provides wide range of consulting and custom software development services:

For more info, please contact Hannu Savolainen.

DSP development services

In addition our OSS/3D team provides development services for high quality DSP solutions, including:

Licensing

The source code for Open Sound System is currently avaliable under four different licenses:

The GPL source package contains all the operating system ports. The CDDL package contains only the Solaris version and the BSD package only the FreeBSD version (for the time being).

Note that under all the above licensing schemes the copyright owner is 4Front Technologies.