Programming and uploading custom DSP routines to
the Emu10k1 is now within our reach. Below are some thoughts on the subject.
- The original Creative Labs SBLive Linux driver source v2.0 files
offer little info on any of the DSP-related functions or registers
(see 8010.h), but the linux guys have done quite a bit
more work on this end. Their latest stuff can be found here.
Be sure to check out the Utils
- The linux guys have also developed a microcode
- shouldn't be too hard to port to windows if needed.
- *New* Daniel
Bertrand (one of the linux DSP gurus) has done a superb job on
documenting the Emu10k1's architecture and DSP features. Don't miss
his AS10k1 site - here.
- The ALSA (Advanced Linux Sound Architecture)
project has some DSP-related
code too. Check out the rest of their independent Emu10k1 linux driver code here.
- Valentin Yakovenkov's original apslive ac97
utility source code contains some Emu10k1 register dump utilities, check it
out here. Unfortunately Valentin appears
to be too busy these days to work on further development. *Updated*
FxViewer picks up where Valentin left off!
- *New* DSP-uploading via the APS FxEngineServer
COM functions is now possible.
We now understand the workings of most the FxEngineServer
FxToy calls FxEngine fuctions, including the following,
for Fx program manipulation:
HRESULT Load(long sizeIn/*[in]*/,
unsigned_char* pgmText/*[in]*/, unsigned_long* ppgmID/*[out]*/) = 0; // [-1]
HRESULT Unload(unsigned_long pgmID/*[in]*/) = 0; // [-1]
HRESULT Start(unsigned_long pgmID/*[in]*/) = 0; // [-1]
HRESULT Stop(unsigned_long pgmID/*[in]*/) = 0; // [-1]
HRESULT Rampup(unsigned_long pgmID/*[in]*/) = 0; // [-1]
HRESULT Rampdown(unsigned_long pgmID/*[in]*/) = 0; //
See the FxToy page and the APS / APSLive
page for more FxEngine info.
*New* Max M. has
just released FxViewer, an absolutely brilliant
utility application which allows us to observe the contents of the various
Emu10k1 registers in realtime, as well as a providing an RIFX (Emu10k1
DSP program file) "translation" window. Get FxViewer
here, and check out the FxViewer page for more info. Hats off to Max M.
for all the hard work that went into this one. :-)
- Anyone who thinks they
might be able to help with any of this is welcome to contact us
EIP forum, or join
our mailing list.