[PATCH] for EsounD 0.2.21



I'm using X Server on Windows. GNOME desktop works fine. But very
quiet. So, I wrote Windows platform support code for EsounD.
And fixed some mistake at PCM mixing code. This fix reduce noises.
Reason of noises are left white space on clipping, too much
swapping left-right-channel stereo source on rate conversion.

My EsounD patch features. (Based Dec/30/2000)
1. Eliminates noises. Multiple stream mixing and play samples have any
   noise! (I think for all platform. I tested on Windows, WindowsNT, Linux.)
2. Windows MultiMedia System support. (Windows)
3. with cygwin run-time dll. Compile with CYGWIN32 environment.
   without cygwin run-time dll. Compile with MINGW32 environment. (Windows)

Build instruction.
1. With cygwin run-time.
   exec Cygwin bash shell
1.1 build audiofile. 
    untar audiofile archive.
    ./configure
    make
    make install
1.2 build esound
    cvs checkout esound
    cd esound
    patch < <patch file>
    ./autogen.sh
1.3 execute esd
    ./esd -public -tcp
2. Without cygwin run-time.
    exec Cygwin bash shell.
    ln -s /usr/lib/mingw32/libmingw32.a /usr/lib/mingw32/libc.a
    ln -s /usr/lib/mingw32/libmingw32.a /usr/lib/mingw32/libm.a
    ln -s /usr/lib/mingw32/libmingw32.a /usr/lib/mingw32/libg.a
2.1 build audiofile
    untar audiofile archive.
    comment out audiofile/Makefile.am CFLAGS line
    modify some audiofile/*.c fit for MINGW32 env. it's easy.
    libtoolize --automake -c -f --ltdl
    aclocal
    autoheader
    autoconf
    automake --gnu --add-missing
    CFLAGS='-mno-cygwin -mconsole' ./confgiure i686-pc-mingw32 --prefix='/usr/local/mingw32' --libdir='/usr/lib/mingw32' --includedir='/usr/include/mingw32'
    make
    make install
2.2 build esound
    cvs checkout esound
    cd esound
    patch < <patch file>
    libtoolize --automake -c -f --ltdl
    aclocal
    autoheader
    autoconf
    automake --gnu --add-missing
    CFLAGS='-mno-cygwin -mconsole' ./confgiure i686-pc-mingw32 --prefix='/usr/local/mingw32' --libdir='/usr/lib/mingw32' --includedir='/usr/include/mingw32' --audiofile-prefix='/usr/local/mingw32'
    make
    make install
2.3 execute esd
    run DOS Prompt or Command Prompt.
    cd <CYGWIN root>\usr\local\mingw32\bin
    esd -public

Current TODO:
NOISE reduction (mix.c)
 1. check buffer admin code. [HIGH PRIORITY]
 2. more faster rate conversion. [MID PRIORITY]
 3. High-quality rate conversion. [LOW PRIORITY]
    Current plan: oversampling -> FIR -> LowPass -> downsampling
Windows MultiMedia System(audio_winmm.c)
 1. device enumeration in esd_audio_device. and add device selectable
    code. [MID PRIORITY]
 2. half duplex sound device test and implement half duplex
    codes. [HIGH PRIORITY]
 3. recording time upto infinit. current maximam is 1157 days. [LOW PRIORITY]
 4. Support DirectSound. [LOWEST PRIORITY]
MINGW32(audio.c, esd-server.h, esd.c, esdcat.c, esdfile.c esdfilt.c,
esdlib.c, esdloop.c, esdmgr.c, esdmon.c, esdplay.c, esdsample.c,
filter.c, genrand.c, mix.c, players.c, proto.c, samples.c winsup.h)
 1. separate OS depended functions for multiarch. [HIGH PRIORITY]
 2. add WindowsNT service registerable code. [MID PRIOPITY]
 3. MSVC support. [MID PRIORITY]
 4. Write code genrand.c [HIGH PRIORITY]
 5. Write SINGAL emulate functions. [HIGH PRIORITY]
 6. Write our version ioctl() and fcntl(). [MID PRIORITY]
 7. UNIX Domain Socket emulation. [LOWEST PRIORITY]

MINGW32 version binary and source tarball at
http://www.kiss.taihaku.sendai.jp/~fuji/product/20001202/ .
also patch available at same place.

Patch

Attachment: diff
Description: Binary data

Attachment: audio_winmm.c
Description: Binary data

Attachment: winsup.h
Description: Binary data



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]