One of the aims of ALSA is to provide full OSS compatibility for OSS applications. ALSA has an OSS emulation which supports all of the OSS devices listed below.
There are two different OSS emulation methods in ALSA (and several not in ALSA itself; see the "Alternatives" section below):
aossscript from the
The latter has the advantage of being able to use any device from ALSA's PCM plugin layer during the emulation. This enables software-based mixing of streams for OSS apps. See the DmixPlugin page for more details of how to do software mixing.
Note that neither method works for all OSS apps.
Particular issues include:
/dev/sequenceronly half works (playback works but recording from MIDI keyboards is broken -- see Alsa-devel 2004/02/02 2002/8/26 and 2003/12/7).
Kernel module device mapping options control which ALSA PCM and MIDI devices OSS devices like /dev/dsp get mapped to.
Some ALSA PCM proc commands can be used to control behaviors important for OSS emulation. Check these out if your problems may be related to:
Takashi Iwai's documentation on the OSS MIDI emulation may be found at OssSequencerEmulation.
Much of this page and it's sub-topic pages is derived from http://alsa-project.org/\~iwai/OSS-Emulation.html from the official ALSA docs. It may be more frequently updated or contain more extensive information than this wiki.
DmixPlugin includes some tips on using dmix with OSS.
OSS and dmix by Richard is an a step by step guide on how to use xmms while playing Unreal Tournament. It probably will also help with Enemy Territory, Quake3, and other things that use OSS, fopen(), and/or mmap.
ALSA is not the first sound system (and probably not the last) to have a need to capture and convert output from programs written for OSS. If ALSA's OSS Emulation is not doing it for you, you can look into:
Retrieved from "http://alsa.opensrc.org/OSS_emulation"