                           WinDSP v0.1 (beta 2)
                         written by Leandro Santi
                               read me file
                               August, 1999

Legal stuff
===========

You are responsible for any kind of problem that this program may cause (if 
any).

WinDSP is freely distributable, as long as any of its components aren't 
modified.

By using this software, you are agreeing to the terms stated before.


Installation
============

Just unzip all files in a directory and create a shortcut to the executable.


Operational Notes
=================

First, make sure that: 
1 - your sound card is full-duplex capable (ex. SB16/32/64/128 etc).
2 - the card's drivers are full-duplex capable.
3 - you have a pentium or higher CPU.

WinDSP's only signal source is the card's analog input (such as CD in, 
mic in and so on). WinDSP doesn't provide any "volume controls", use 
Windows' mixer to do this: with it, you can select which audio source 
you want to process (for example, a CD input), and you should mute the 
"thru" output of that source too.

The default input -> output delay is really high (more than 1.86s @ 
11025hz) so that almost every audio card can run WinDSP without hearing 
gaps, even at the highest sampling rate. Delays of 100ms are typical on 
the various non-hardware-accelerated configs I tested (for example: to 
set up a 116ms delay with a 44100hz sampling rate, set 10 buffers of 512 
samples each).

Please be aware that WinDSP doesn't do any clipping detection nor agc, 
so if you select a high amplification of a band and the signal level 
is high you might hear some clicks: try lowering the input level with 
Windows' mixer in this case.

The program doesn't display the passband's cutoff frequencies (it will 
do), there are some other more important problems I'm trying to solve.

No monoaural processing right now, only stereo.


Controls
========

* I/O quantification: sets the number of bits per sample for input and 
output respectively. Please be aware that some cards (like my old SB16) 
don't support all the possible combinations, and the program doesn't 
fully check for this.

* Sample rate: the higher, the better sound quality in expense of a higher 
CPU load.

* more setup: this is an important issue. It lets you adjust WinDSP's wave 
parameters, such as buffer length. With some audio cards you might hear 
gaps; in that case try selecting more buffers or a higher buffer length.
The filter length box lets you adjust the length of the equalization 
filter: the longer, the better selectivity, but the higher CPU load.


Known problems
==============

Input -> Ouput delay is quite high in Windows (I'm working on this). The 
better the sound hardware you have, the shorter delay.

CPU load isn't as low as I wish. The equalization engine is fast, but 
Windows' wave/hardware drivers take a big portion of CPU time (anyone 
knows if directX can help?).
For example, an old DOS version I had written once allowed processing of 
a full 44.1khz stereo signal with 256+ filter length on a 100 mhz PMMX 
cpu/SB64 card, but the Windows version - running the same fast convolution 
equalization algorithm - can't reach this sampling rate limit, even with 
the 256 filter length.

A really large filter length may crash the program after pressing the 
"stop" button. I believe that this is due to a high cpu load + deallocation 
combo problem (on my C366A this happened with a 32768 length, a really large 
number!). As I'll be porting to directx soon, this problem should disappear. 
Anyway, this beta 2 is far more stable than the first one.

I have recently purchased a nice SB128 pci audio card (tnx SUBAS...), but 
Window's mixer doesn't allow to mute the direct CD out ("thru...") while 
recording from the CD (If you mute the direct CD out, you'll mute the CD to 
ADC path too). The result of this is that you hear two versions of the same 
thing: the direct one and the equalized one. Of course, this didn't happen 
on my older SB16 configuration, nor the other hardware configs I have tested.

I should improve on the redistribution of the passband cutoff frequencies.


History
=======

v0.1 beta 2: improved stability and exeption handling.
v0.1 beta  : initial release.


Contact
=======

homepage: http://members.xoom.com/WinDSP
email   : lsanti@fi.uba.ar
