SB AWE32/64 Sound Driver for Linux / FreeBSD
Last Update: Sep. 12, 2000
- [2004/08/31] awesfx-0.5.0d released - misc fixes.
- [2004/06/01] awesfx-0.5.0c released - fixed option parsing.
- [2004/02/27] awesfx-0.5.0b released - minor fixes for sf2text.
- [2004/02/24] awesfx-0.5.0a released - fixed compile warnings.
- [2004/01/27] awesfx-0.5.0 released - including the native ALSA support.
- [2004/01/27] clean up dead links.
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
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.
- The warning messages during compile (initialization from incompatible..) can be ignored.
- If your card or memory was not detected, try to set the appropriate
parameters in awe_config.h.
- If you want to use awedrv surely, please use ver.0.4.2.
It was already included in the recent version of FreeBSD kernel.
Latest Version: 0.4.4
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.
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,
- drvmidi - the midi sequencer program,
- tkmidi - Tcl/Tk based user interface,
- miditext and txtplay - from/to midi and text files conversion.
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
This bug can be avoided by autoskip option.
So I recommend to set this option as default in
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
(The latter option may be different on your system. See the result of
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.
This bug can be avoided by preloading the plug-in file
before starting Netscape.
Please specify an environment variable
LD_PRELOAD=$HOME/.netscape/plugins/npmidi.so; 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
GMOD module player
gmod is the famous module player for Gravis UltraSound card.
The latest version ver.3.1 supports AWE driver officially.
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.
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.
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.
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).
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
program with addition of Emu8000's hardward chorus and reverb effects.
- NOTE1: awedrv-0.4.2 users need to apply a patch included in the AWEWavePlayer
This bug was fixed in ver.0.4.3.
- NOTE2: The digital output of AWE64Gold might not work well on OSS/Free.
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.
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.
- use isapnptools and load sound driver afterwards as a module.
- install PnP driver on your kernel.
- initialize PnP on DOS and boot Linux via loadlin.exe.
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
See also the isapnp FAQ or the awedrv FAQ for more details.
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.
You can download FREE SoundFont files for GM/GS samples
from the following sites.
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.
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
opensound.com or somewhere else mirroning it.
BTW, I contributed the similar routines as OSS sequencer emulation to
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 firstname.lastname@example.org