0
0

Ok, today’s DSP question: let’s say that I want to build an application that emulates a multi-channel hardware mixer with 2 or more stereo channel strips. Each channel strip will have a sound associated with it, and I should be able to control effects like EQ, pan, volume, reverb, etc. for each strip. My initial thought was that I would use FSOUND_DSP_Create to create a DSP callback at FSOUND_DSP_DEFAULTPRIORITY_USER to process the effects, use FSOUND_Stream_PlayEx to play a sound on each channel, and then do processing in the DSP callback based on the calling channel (passed in via the callback’s “param” parameter). However, the buffer that is passed into the callback routine does not just contain sample data for that channel, but rather a mix of all currently playing channels, so anything that I do to the output buffer will affect all of the channels. “A-ha”, says I, “I’ll just use Brett’s handy DSP parameter for FSOUND_Stream_PlayEx, insert a DSP after the clear unit, then put my DSP after that”. But of course, that just created a slightly more complicated version of the same problem. So my question is, for each invocation of FSOUND_Stream_PlayEx, how do I go about getting called back with just the sample data from that particular stream? Am I even on the right track?

Mike

  • You must to post comments
0
0

Oooo, “FSOUND_Stream_CreateDSP”, I’ll have to try that, but I’m betting I’ll be hosed since I do want to adjust FX in real time. BTW, you do know that this API isn’t in the documentation, right? I count 17 Stream_ functions in the header file, 16 in the manual.

And I would love to use the FSOUND_FX APIs, but my problem is that I need to vary the playback rate, and per our previous discussion you can’t do both at the same time with DirectX 8. :^(

Thanks for the come-back.

Mike

  • You must to post comments
Showing 1 result
Your Answer

Please first to submit.