I’ve written a custom DSP in order to get samples to use with echo
cancellation. All the DSP does is copy inputs to outputs, and processes
the inputs to create the data to pass to the Speex echo cancellation

The puzzling thing is that although the DSP says the frequency is
44100, the DSP read callback is getting about 48300 samples per second:
1024 samples in each callback, with about 48 callbacks per second.

FTR, I’m using the C# interface; my DSP_DESCRIPTION is:

            outputCaptureDspDesc.name = new char[32];
            string dspName = "EchoCancelCapture";
            Array.Copy(dspName.ToCharArray(), 0, outputCaptureDspDesc.name, 0, dspName.Length);
            outputCaptureDspDesc.channels = 2;
            outputCaptureDspDesc.numparameters = 0;
            outputCaptureDspDesc.read = ProcessEchoSamples;

I register the DSP using FMOD_SYSTEM.addDSP as follows:

                result = voiceMgr.fmod.createDSP (ref outputCaptureDspDesc, ref outputCaptureDsp);
                result = voiceMgr.fmod.addDSP(outputCaptureDsp, ref outputCaptureDspConnection);

Any help in understanding this would be appreciated.

David Stryker
Multiverse Network

  • You must to post comments

if you add a dsp to the system object, it will always run at the speed of the output (see System::getSoftwareFormat).
The frequency attribute i think you are talking about is informational for certain dsp units like oscillators.

It will be exactly 48000 btw.

  • You must to post comments
Showing 1 result
Your Answer

Please first to submit.