4 Front Announces Updated OSS 3.9.3n Version Released with Support for Linux 2.4.0

 

Culver City, Calif., July 14, 2000 -- 4 Front Technologies announces updated OSS 3.9.3n version released with support for Linux 2.4.0. Support for Open Sound System for Linux x86 -test3 announced.

New Features Include:

  • Fix for AC97 mixers - igain channel fixed
  • Added automatic boot setup in soundconf - *New Feature*
  • Support for ESS Maestro3i/Allegro announced (Release Version)
  • Support for Intel ICH2 announced
  • Fixed up M Audio Delta 66/Delta 44 support
  • Fixed up Mediatrix 3DXG recording problems
  • Support for Terratec EWS88MT (Envy24 based) soundcards
  • Support for Ectiva ES8938 (Gateway Solo Laptops)
  • Improved Digi96 sound card drivers - enabled 8bit playback support
  • Improved Sonorus Studio sound card drivers - support for ADAT mode

Virtual Mixer Notes
You can now use 8 virtual audio devices when you configure SoftOSS device. This allows you to play 8 simultaneous audio streams (ie. run 8 simultaneous audio apps) and the SoftOSS MIDI synth and hear audio output completely mixed in real-time with SoftOSS. Previously, if an application was playing audio, then you could not play another audio file concurrently.

SoftOSS by 4Front Technologies is a kernel module which permits doing the same using any inexpensive16 bit soundcard together with a sufficiently fast CPU (see the System requirements section). SoftOSS is 100% compatible with the existing wave table API of OSS which has earlier been used by the Gravis Ultra Sound (GUS) driver. This means that all Linux applications work without modification with SoftOSS.


Technical Background

SoftOSS is a virtual wave table engine that is tightly integrated with MIDI and audio functionality of OSS. SoftOSS engine uses CPU cycles to mix prerecorded audio samples in control of MIDI information coming from any application using /dev/sequencer or /dev/music (formerly known as /dev/sequencer2) device files. The resulting 16 bit stereo audio data stream is then played using an ordinary (16 bit) soundcard (support for 8 bit soundcards will be introduced later).

Since the mixing is done inside kernel it doesn't suffer from other processing activity in the system. For this reason it is possible to perform CPU intensive tasks at the same time when using SoftOSS. Sound quality is as good as in a lightly loaded system (other tasks just run slower depending on number of currently active SoftOSS voices/notes). SoftOSS is fully compatible with the sound sample loading API originally developed for the GUS driver of OSS. This means all applications which support loading samples to GUS will work with SoftOSS without any changes.

Final 3.8 version of OSS will include a library called OSSlib which permits "on demand" loading (aka patch caching) of wave table samples from any programs using the /dev/music (/dev/sequencer) API of OSS. Together with changes made to sys/soundcard.h this library permits adding patch caching to existing applications using /dev/sequencer and /dev/music with very minimal changes.

First release of this OSSlib library will permit loading samples from . PAT format (GUS) instrument files and from standard audio files (.au, .wav). Later versions will support other patch file formats such as SoundFont (.sf2). You will need the GUS compatible patch set to run SoftOSS.

A freeware version of this library will be released to permit developing OSS compatible applications with OSS/Free. In addition the freeware library will permit using applications written for OSS to work also with OSS/Free without recompiling.

Specification of new /dev/music API will be released after development of OSSlib is complete.

Applications of SoftOSS Technology
SoftOSS is mainly designed for playing MIDI music but it's well suited for some other applications too, including: Sound effects in games (not necessarily background music). Since the "mixing" is done at real time priority inside kernel, it's possible to get timing precision and reliability that is not possible with any kind of process based mixing. With SoftOSS sound effects will play perfectly even in slightly underconfigured machines. In addtion sound effects programming using SoftOSS and OSSlib is "fire and forget". After an effect is started the application itself doesn't need to worry about it. Of cause the same is possible with a wave table card too. The best thing is that SoftOSS is perfectly compatible with hardware wave table devices so compatibility with SoftOSS ensures compatibility with wave table cards too.

Sound effects in simulators and similar applications. SoftOSS technology permits loading practically unlimited amount (currently there is an artifical limit of 8M) into the memory (it's limited just by amount of RAM installed in the system). Starting sounds is easy and it's even possible to change it's volume and panning (3D support planned in future). As with games SoftOSS can later be replaced by a hardware wave table card without any changes to the application. However with limited number (4 to 8) of simultaneous voices there is no benefit in using an expensive hardware wave table card.

Playback of prerecorded messages, alerts, time signals and similar sounds. Future versions of SoftOSS will even permit triggering this kind of special sounds from many different applications at the same time.

System Requirements
Due to high processing power requirements of "software mixing" SoftOSS is targeted to fast machines only. With current (rather nonoptimized) version it's possible to play 32 simultaneous voices using 32 kHz sampling frequency using a P120 machine (figures for PPro200 are not available yet). However even this is better than the sampling frequency that is possible at 32 voices using a popular wave table card (19.2 kHz). With a 100 MHz PowerPC processor (RS6000/AIX) it's possible to get almost 32 simultaneous voices at 44.1 kHz. For this reason at least a P120 processor is recommended. However one can use SoftOSS with any 486 class (or above) machine by decreasing the sampling frequency. OSS 3.8 permits selecting a SoftOSS version which matches your CPU while configuring the device. CPU power requirements of SoftOSS depends on concurrently playing notes (voices). You can use 44.1 kHz sampling frequency with any 486 class CPU as long as number of voices remains low. For example playing a .MOD file using gmod should be possible with any machine.

Even in low end 486 class machines SoftOSS gives better MIDI playback quality than the standard FM synth. Using SoftOSS with too slow CPU is not dangerous. Playback just becomes distorted (it jumps like a broken vinyl record) and system becomes rather unresponsive. However the situation returns back to normal after playback is stopped/interrupted or number of concurrently playing notes decreases below the system dependent limit.

At least 16M of RAM is required (32M recommended)
SoftOSS stores the instrument samples on systems (physical) RAM. This means that there must be enough "spare" RAM on the system. Current version of SoftOSS permits loading up to 8M of samples which means that using it on machines with less than 16M RAM may not produce the desired performance. It is possible to use SoftOSS on systems with less than 16M of RAM but care must be taken that too many samples are not loaded. The final 3.8 version of SoftOSS will permit configuring the maximum memory size which makes it safer to use in underconfigured machines.

Limitations of SoftOSS
There are a few limitations in using SoftOSS. However in most cases they are not significant: SoftOSS allocates the first audio device (/dev/dsp0) for itself always when /dev/sequencer or /dev/music are open. This means that it is not possible to play audio at the same time with MIDI on machines with just one soundcard. /dev/dsp0 is still accessible when /dev/music and /dev/sequencer are not open.

SoftOSS uses CPU time which may make it useless in some applications. It's for example not recommended to use it for playing background MUSIC in games. Depending on the degree of polyphony (number of simultaneous notes) it may slow down the game seriously. Note that this is not true with playing sound effects of games which is a well suited task for SoftOSS.

Most "GUS compatible" applications would be very confused if they detect two "GUS compatible" devices on the same system. However this is not a problem since GUS (particularily GUS PnP+8M RAM) does everything that SoftOSS. You don't need to use SoftOSS if you have GUS.

Getting SoftOSS
SoftOSS is included in the standard OSS software (currently there is no extra fee).

Getting the Sound Patches
To use SoftOSS you will need to use a "GUS compatible" Linux application such as mplay or gmod. You can get them from the OSS Applications page.
With mplay, you need to copy the public-domain MIDIA instrument files.

Source: 4Front Technologies
Web: www.4front-tech.com