I'm interested in doing this myself, and I've already looked into it. BASS has an effect class called BASS_DX8_PARAMEQ that does parametric equalization (the best and most specific kind of all).
The problem that arises is that you HAVE to apply BASS effects to a channel/stream. However, they apparently have a dummy stream where you can provide it with an array of sound data, use the PARAMEQ effect on the stream, and then get the data back out of the stream to output however you want to (although you might as well just use BASS's sound output in this case).
The reason I know this is because I just asked it myself:
Also, is it possible to use Bass effects on a short/byte array instead of on a channel?
and the reply I received:
That is also possible. A "dummy" stream can be used to apply effects to sample data in memory, something like this...
fxstream=BASS_StreamCreate(freq, chans, flags|BASS_STREAM_DECODE, STREAMPROC_DUMMY, 0); // create dummy stream with same format as sample data
BASS_ChannelSetFX(fxstream, ...); // set FX on dummy stream
BASS_ChannelGetData(fxstream, data, datalen); // feed sample data through dummy stream to apply FX
Here is the post if you want it:http://www.un4seen.com/forum/?topic=12593.msg87462#msg87462