On Mon, 23 Feb 2004, Kor Nielsen wrote:
Hi,
I have been quite frustrated with the difficulty of getting multiple OSS
applications using my sound hardware simultaneously. The LD_PRELOAD
hacks that I have tried leave much to be desired in terms of usability,
especially when dealing with arts and mozilla plugins.
oss2jack uses Jeremy Elson's useful fusd library
(
http://www.circlemud.org/~jelson/software/fusd/) to create a userspace
character device, which is also a jackd client.
Looks pretty interesting. I have used LD_PRELOAD to implement libjackasyn,
but I could never get over some difficulties where it just failed to
preload. Have to check that out too ..
Guenter
It supports mono and
stereo streams, with virtually any sample rate thanks to libsamplerate
(
http://www.mega-nerd.com/SRC/). Only the commonly-used OSS ioctls are
currently supported.
I have tested oss2jack with the following applications, and they behave
fairly well:
- mplayer
- artsd (and thus all the kde applications)
- xmms
- Macromedia Flash
TODO:
- support mmap for quake and other games
(requires support in fusd)
- detect jackd period for audio sync (currently assumes 64 samples).
Should not be too noticeable unless you get above a 256 sample
period)
- lower CPU usage with artsd by blocking until the minimum fragment
size is available (rather than the jackd period)
- support for the OSS mixer.
Available at:
http://fort.xdas.com/~kor/oss2jack/
WARNING: I have not yet tested oss2jack on the 2.4 series kernel.
Currently I am using a self-created 2.6 patch for fusd available at
the site above. It has been stable for the past 3 weeks on my machine,
but no guarantees about stability or safety... :)
fusd currently requires that devfs be enabled in the kernel.
Any comments are appreciated.
Kor