README for libaudiooss, the transparent OSS emulation on top of NAS.
(c) 2000-2002, Erik Inge Bols <knan at mo.himolde.no>

Licensed under the GNU General Public License, v2 or later.

DEPENDS ON:

X11
Network Audio System (NAS) (http://radscan.com/nas.html)
 ... ideally v1.4.2d or later, for a thread-safe libaudio, which will
  prevent lockups with xmms and other multithreaded programs...
<pthread.h> (for mutex macros)
Runtime linker that supports some form of LD_PRELOAD
 (Linux, SunOS 5.8 alias Solaris 2.8, others?)


INSTALLATION:

pico -w Imakefile
xmkmf -a
make
make install


Solaris: remove -DLINUX_IOCTL from DEFINES in Imakefile, and copy soundcard.h
 to some globally visible place for ./configure scripts to find - for example
 /depot/include/sys/soundcard.h or similar.

USE:

<run nasd server somewhere>
export AUDIOSERVER=whereever (tcp/localhost:8000, for example)
export LD_PRELOAD=/usr/X11R6/lib/libaudiooss.so.1.0 (must be full path)
<run soundmaking program>


WHAT WORKS?
Most non-mmap, output-only OSS programs. OSS mixers.

TESTED:
sox and its frontends
sidplay and its frontends.
trplayer
realplayer (heavily improved in 0.9.10)
nasd
vice
libmikmod and its frontends
mpg123 and its frontends
xmms
mpegtv
gmix
timidity++
programs using SDL
  (plaympeg from Loki's SMPEG, at least)
(since 0.9.6)
everybuddy
(since 0.9.7)
Shockwave Flash plugin for netscape (the commercial one)
freeamp
alsaplayer
(since 0.9.9)
amp
wine + winamp (wine ~/windows/winamp/winamp.exe joy.mp3)
linux ICA client
(since 0.9.11)
bufplay
stella/stella-sound (Atari 2600 emulator)
xmame/xmess (bitches a bit, but works anyway)
(since 0.9.12)
gmix
aumix
(since 0.9.14)
mplayer
cat file > /dev/{audio,dsp} /* Only on linux */
(since 0.9.15)
Java SDK

WHAT DOESN'T WORK?
Programs that try to record sound, use full-duplex, use MMAP mode.
Win4Lin (reportedly)
Quake III (uses mmap)
VmWare (well, works, but skips all over the place)

WATCHING VIDEOS (MPEG, DIVX, etc)
Note that watching video w/this can be somewhat irritating.
Sound tends to lag behind a second or three.

(Exception: realplayer, other players that use SNDCTL_DSP_GETODELAY for
syncing and can deal with the fact that the delay starts out >0 )
