OSS/Linux Sound Driver
Manufacturer: 4Front Technologies
Price: $20 US
Reviewer: Jeff Tranter
Open Sound System (OSS) is a kernel-level sound card driver offered for a number of Unix-compatible operating systems by 4Front Technologies. OSS/Linux is the version for Linux systems. It's not surprising that Linux is supported, as the code was based on, and is compatible with, the sound driver included in the Linux kernel. The code is written by the same author, Hannu Savolainen, who continues to maintain the free version (OSS/Free).
I took advantage of 4Front Technologies' free trial offer to download and run the product for five days. If you decide to purchase it you receive a software license key that allows the software to run permanently.
I also downloaded the latest release of OSS/Linux (3.8-beta1-961205). I installed the software on a 166 MHz Pentium system with 32 megabytes of RAM running Red Hat Linux 4.0 and the 2.0.28 kernel. The sound card was a Creative Labs SoundBlaster 16 (Plug-and-Play version).
The package comes as a compressed tar file containing installation instructions and an install program. To install the software you have to run the install program as root. This invokes a curses-based user interface that helps you install and configure the driver for the sound card. I found it straightforward to use; my sound card and settings were all automatically detected. The install program noticed that I had the standard Linux kernel sound driver module installed and informed me that I needed to disable it. Deleting the kernel-loadable module for sound did the trick.
Once installed, the sound driver is loaded using the supplied soundon script. The driver is implemented as several loadable kernel modules. A soundoff script unloads the driver, if desired. Once loaded you can then run any of the existing Linux sound applications.
I tried a number of sound applications to play and record sound samples, play MIDI and MOD files and operate the mixer. In general, everything operated identically to the standard sound driver included with the Linux kernel. It provides control of the DSP device, FM synthesizer, mixer and MIDI bus interface.
I did find one bug. Apparently the MIDI driver didn't clean up resources it used. If it was unloaded, loading again would report that the I/O port was in use. I reported this to Tech Support by e-mail and received a response back within a few hours.
I downloaded the beta release of OSS/Linux in order to try a new feature, SoftOSS. To understand it, you need some background on how computers synthesize sound.
The first generation of computer sound cards used a technique called FM synthesis to generate computer music. This method is low in cost and requires little CPU power, but the music generated sounds like it was created by a computer and not a musical instrument.
Sampling techniques use a digital-to-analog converter to generate sound. This method can be very effective, as the sound of actual musical instruments can be digitized and used as samples. The disadvantage is that the digital-to-analog converters are expensive, so sound cards typically provide only one or two. Typical low end sound cards today provide both sampling and FM synthesis capability.
Wavetable synthesis cards combine the best of both techniques. They offer a number of channels (32 being typical). Each channel has its own digital-to-analog converter and dedicated memory on the sound card for storing sound samples. Hardware on the sound card does much of the work of mixing and playing the samples. The only disadvantage of wavetable cards is that the additional hardware makes them considerably more expensive. One such card, the Gravis UltraSound, is supported by the standard Linux kernel sound driver.
SoftOSS provides software emulation of wavetable synthesis using only a low cost (non-wavetable) sound card. It does so by using the spare memory and processing power of the host computer. By implementing at the kernel level the same application programming interface as the Gravis Ultrasound card, it allows existing applications written for this card to work with low end sound cards. The only catch is that you need adequate memory and CPU power, but most systems today can meet this requirement (a 40MHz 486 with 16MB of RAM was the minimum needed for the pre-release software I reviewed).
I configured the SoftOSS driver using the setting for Pentium 100+ machines and tried using some Linux applications that previously required a Gravis Ultrasound wavetable sound card.
The gmod program is a player for music files in MOD format. It operated quite well. This was not particularly impressive, because there are a number of MOD players for non-wavetable cards (e.g., tracker) that work just as well with the standard kernel sound driver.
Playing MIDI files was more interesting. MIDI is a very popular music file format among musicians, but MIDI file players I've come across before used the FM synthesizer on my sound card. Using SoftOSS, the playmidi program, and sound sample “patch” files downloaded from the Internet, there was a dramatic improvement in sound quality as compared to using FM synthesis. It actually sounded like real musical instruments.
Note that at the time of writing, SoftOSS was still in a pre-release beta state, and may be an extra cost option when purchasing OSS/Linux. For a beta release it looked quite stable, the only problem being some minor glitches in the sound produced.
- Readers' Choice Awards--Nominate Your Apps & Gadgets Now!
- Memory Ordering in Modern Microprocessors, Part I
- Source Code Scanners for Better Code
- diff -u: What's New in Kernel Development
- RSS Feeds
- Tech Tip: Really Simple HTTP Server with Python
- Non-Linux FOSS: AutoHotkey
- Returning Values from Bash Functions
- Security Hardening with Ansible