I’ve also had a look at the DSP Efect Per Speaker example, which was quite helpful.
I am a newbie at fmod/games audio so have another question.
I have a set of FIR filters to apply to the sounds. Is there a "Filter" or convolution function to combinne the sounds and my FIR filter in the time domain? Or is it necessary to do everything in the fourier domain?
Be great if someone can point me to the most efficient direction. I did a search through the API file and couldn’t find anything.
I don’t entirely understand your question but i’ll try to answer it as best i can.
[quote:1fsevca4]I have a set of FIR filters to apply to the sounds.[/quote:1fsevca4]
If you have written the code for the FIR filters you can create a a DSP callback and use that to apply the filter. This is all done in the time domain.
[quote:1fsevca4] Is there a "Filter" or convolution function to combinne the sounds and my FIR filter in the time domain? Or is it necessary to do everything in the fourier domain? [/quote:1fsevca4]
This part has me confused. You can apply the fourier transform to your filters, convolude them, then apply an inverse fourrier transform to get it back to time domain as one single filter. This would be something you would do outside of your main program code.
Hope this helps.
Hi i think the confusion stems from my background in auditory research.
Our computation platform is Matlab, and to combine a wave file with any FIR filters we do something like
Filter(Sound, FIR_Filter) or Conv ()
All under time domain of course.
Just wondering is there a similar function in FMOD?
So I will create a custom DSP and add it to the sound.
In the DSP creation code, do I have to actually specify the steps of convolution programmically, as in a for loop?
Or can i just specify an FIR filter, with the sampling rate, duration etc, and add it to a sound and FMOD will do the convolution for me?
if you’re talking about writing your own filters, just remember that fmod gives you a callback that makes you process 1024 PCM samples at a time.
It is in the time domain, and is multichannel interleaved floating point data (-1.0 to +1.0). There is no convolution anywhere. You should be able to know what to do with this data.
Please login first to submit.