SB AWE32/64 Sound Driver for Linux / FreeBSD

Last Update: Sep. 12, 2000

[AWE Driver/ Utilities/ MIDI/ MOD/ Sequencers/ Others/ Documents/ PnP Tools/ SoundFonts/ Links/ Experimental Patches]

What's New?

SB AWE32/64 Driver (awedrv)

The sound driver extension to OSS/Free on Linux and FreeBSD systems. You need to apply a patch in the package and rebuild kernel (and modules). See the document inside for details of installation, and also FAQ list on this page, especially if you're using PnP soundcard.

The version 0.4.4 supports native PnP support for Linux-2.3.x kernels. No more isapnp hack is necessary.

The recent version (ver.0.4.3) has the enhanced control of patch loading. This will reduce the patch loading time dramatically, in special, if you use 12MB fonts on 8MB DRAM by dynamic loading. The new option -N is added both sfxload and drvmidi.

Note to Linux users: The version ver.0.4.3 is already included in Linux 2.2.x kernel. The sequencer module in 2.2.2 kernel has a serious bug which causes Oops SEGV after unloading awe_wave.o. I recommend to upgrade to later version.

Note to FreeBSD users: The version 0.4.3 works on 2.2.8-STABLE, and may work on 3.x release, too. Please use the source for FreeBSD below.

Latest Version: 0.4.4

Utilities for AWE driver (awesfx)

AWESFX is the package of various utility programs for controlling AWE32 driver. It includes the soundfont loader (sfxload), chorus/reverb effect loader (setfx), control parameter set up (aweset), and SF-Text conversion programs, and so on.

Latest Version: 0.5.1

AWE Control Panel

A Gnome based GUI program for controlling AWE by John van der Kamp. SoundFont files can be loaded via this program together with control of bass, treble and default chorus/reverb depths.

MIDI Sequencers

AWEMidi Player (drvmidi)

AWEMidi player is the midi sequencer program using WaveTable via AWE driver. It maximizes performance of awedrv, such as volume controls, dynamic patch loading, and various sound-effect controls. AWEMidi contains a couple of programs,

NOTE: some midi files are not played properly on FreeBSD systems due to system timer problem (at least on ver.0.4.2, not sure on the latest version). This bug can be avoided by autoskip option. So I recommend to set this option as default in ~/.drvmidirc.

Latest Version: 0.4.3c


playmidi is the very popular MIDI sequencer program in the world of Linux. The latest version ver.2.4 supports for AWE driver officially. You can play also via external MIDI device by the MIDI emulation in AWEDRV-0.4.3. Use -e and -D1 options. (The latter option may be different on your system. See the result of cat /dev/sndstat.) The latest source file can be obtained from the official web page.

The following files are old (patched) versions with AWE support. They should work even on the latest AWE driver.

NetScape MIDI plug-in

This is a plug-in software for Netscape navigator to enable embedded MIDI controls. It includes a control panel on the web page for start/pause/stop the MIDI music.

NOTE: the plug-in with a control window may cause a bus error when opening the page listing directories (i.e. file://localhost/directory). This bug can be avoided by preloading the plug-in file before starting Netscape. Please specify an environment variable LD_PRELOAD like

LD_PRELOAD=$HOME/.netscape/plugins/; export LD_PRELOAD
The method above is not necessary for the plug-in without control panel.


KMid is an X11 / KDE based MIDI player for Linux and FreeBSD. Even karaoke files can be displayed. It supports AWE driver officially.


GSeq is a new MIDI sequencer program based on Gtk++ / Gnome. It is still very actively developed. The AWE driver is supported officially.

MOD Players

GMOD module player

gmod is the famous module player for Gravis UltraSound card. The latest version ver.3.1 supports AWE driver officially.

NOTE: In gmod, awedrv works as a GUS compatible driver, and clears all the samples. Hence, if you want to play MIDI after using gmod, you need to load the soundfont file again.

Although the old version (ver.3.0.1) can accept AWE driver by applying the following tiny patch below, but it causes many problems. I recommend to use the latest version.

XMP module player

xmp is a powerful module player newly developed by Claudio Matsuoka. It supports many module formats like XM/S3M/MOD/STM/669/FAR, and is available on many platforms.

Other Sequencers


CANTOR is a music player/editor developed by P.J.Leonard. It uses the direct control and access to AWE driver. Programs and documents can be downloaded from the following ftp site.

Virtual Keyboard

A virtual keyboard on X-window which plays instruments without the "real" keyboard. Just a simple toy :-) Tcl/Tk library is required.

New version supports AWE driver, MIDI device and ALSA sequencer.

Downloadable from this site:

Super Groove Master

This is a very unique sequencer program. You can compose complicated drum patterns or melodies using simple "program-cells", and play it on AWE32/64 sounds.

Music Package

They are programs to handle several (text) file formats and convert between MIDI. AWE driver is supported officially. Written by Ulrich Bruchholz. Citation from author's web page:
Contains programs & sound samples for creating and playing music, as well "live" (optionally with record) as in several tracks. All products can be given out as standard MIDI files.
This package was arranged for Linux. I have adopted the .MUM format from DOS, that is a text format with note names as usual in the music, and simply editable. See also "mum_edit.txt". An other text format is ".MRC" using the MIDI events in hexadecimal characters. In both formats, the line switch is exactly one tick. The source codes are written in Pascal, that requires for compilation &c. the "fpc" or "fpk" package (contained in newer distributions, uses ld & as).

Other Programs


AWEWavePlayer plays samples through MIDI channels on your AWE32/64 card. The advantage is that you can use your digital output (S/PDIF jumper) for playing mp3's and wave samples. Also, you may play any kind of wave samples by passing through sox program with addition of Emu8000's hardward chorus and reverb effects.


SFVbm is a (Linux X) GUI front end for creating and manipulating virtual bank (foo.bnk) files. It requires the FLTK library as GUI framework.


(From author's page:) Smurf is a project to create a GPL SoundFont editor for Linux. A Sound Font is a file format that allows the creation of instruments for wavetable sound cards. These instruments are often used in midi songs and other compositions.

DOOM Music Server

You can play DOOM with BGM. See the head of the patch file (musserver-awe0.3.diff.gz) about how to applay this patch on musserver. The musserver program is found in sunsite ftp sites.

Documents & FAQ lists

PnP Solutions

If you're using SB32 PnP or AWE64 PnP card on Linux system, you'll need to initialize the card by some way. There're three possibilities to initialize PnP cards. The PnP initialization on FreeBSD has different approaches. See the document in awedrv package.

ISA PnP Tools

The standard PnP configuration tool by Peter Fox. The installation is very simple.
As written in FAQ and HOWTOs, the AWE32/64 cards require additional two i/o ports (typically 0xa20 and 0xe20) to be initialized which are never detected by pnpdump. You'll need to add these two entries in WaveTable list. The detailed description is found in AWE64 HOWTO. See also the isapnp FAQ or the awedrv FAQ for more details.

PnP Driver

The PnP driver by Tom Lees for Linux 2.0 and 2.1 systems. This driver solves the initialization problem of AWE32 PnP cards. The latest AWE driver (ver.0.4.3) includes the native support of PnP driver.

Free SoundFont Sites

You can download FREE SoundFont files for GM/GS samples from the following sites.

Other Userful Links

Experimental Patches

Here're some experimental patches to OSS/Free on Linux. These patches are distributed freely under GPL. However, please note that they are unofficial, and use them at your own risk!

AWE32/64 3D Enhancement

This patch enables you to switch on/off the 3D enhancement function on SB AWE32/64 cards. It uses private 2 switch of SB mixer. A simple application program is included.

NOTE: The patch to kernel-2.2.1 is now included.

Technical Info: The 3D enhancement can be toggled by writing bit 0 to the mixer command 0x90.

Here's a tiny program which can work identically without kernel patch. Instead, you need to run the program as root user (or by setuid root). This program is courtesy of Luke B. Bishop.

The FreeBSD-2.2.8 version is here (contributed by Ariff Adbullah):

Multiple Client Patch to OSS-Sequencer

This patch allows you to access to /dev/sequencer from multiple applications at the same time. For example, you can play two AWE MIDI players (I have no idea whether it's a good idea :-), and change the chorus mode from external program (aweset) *simultaneously*. The patch includes new sequencer.c and awe_wave.c sources, and patches to both 2.0.x+OSS/Free-3.8 and 2.1.130 systems. So far, only AWE driver accepts the multiple access. The other devices must be opened as the first (and exclusive) devices.

NOTE: /dev/sequencer2 (aka /dev/music) is not implemented yet.

NOTE: This patch is available only on OSS/Free-3.8s. The standard 2.0.x kernel does not include this version (but 2.1.x does). You need to get the latest OSS/Free source from or somewhere else mirroning it.

BTW, I contributed the similar routines as OSS sequencer emulation to ALSA system. That's what interests me now. Although the setting is a little bit complicated, it has powerful sequencing system. If you are interested, try it once!

Takashi Iwai Home Page