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.
|Dynamic DNS—an Object Lesson in Problem Solving||May 21, 2013|
|Using Salt Stack and Vagrant for Drupal Development||May 20, 2013|
|Making Linux and Android Get Along (It's Not as Hard as It Sounds)||May 16, 2013|
|Drupal Is a Framework: Why Everyone Needs to Understand This||May 15, 2013|
|Home, My Backup Data Center||May 13, 2013|
|Non-Linux FOSS: Seashore||May 10, 2013|
- RSS Feeds
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Using Salt Stack and Vagrant for Drupal Development
- Dynamic DNS—an Object Lesson in Problem Solving
- New Products
- Validate an E-Mail Address with PHP, the Right Way
- Drupal Is a Framework: Why Everyone Needs to Understand This
- A Topic for Discussion - Open Source Feature-Richness?
- Download the Free Red Hat White Paper "Using an Open Source Framework to Catch the Bad Guy"
- Tech Tip: Really Simple HTTP Server with Python
- Roll your own dynamic dns
3 hours 51 min ago
- Please correct the URL for Salt Stack's web site
7 hours 2 min ago
- Android is Linux -- why no better inter-operation
9 hours 17 min ago
- Connecting Android device to desktop Linux via USB
9 hours 46 min ago
- Find new cell phone and tablet pc
10 hours 44 min ago
12 hours 13 min ago
- Automatically updating Guest Additions
13 hours 21 min ago
- I like your topic on android
14 hours 8 min ago
- This is the easiest tutorial
20 hours 44 min ago
- Ahh, the Koolaid.
1 day 2 hours ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?