Playing with audio DSP

I’m new to this forum, because so far I have been able to find everything I needed to know in the documentation. But now I am trying to do something a little tricky that may not be part of the designed functionality of panda3d.

I’m using the DSP (digital signal processing) features of FMOD like reverb, flange and echo. its no problem to say loop a file and put an echo on it.

from pandac.PandaModules import *
import direct.directbase.DirectStart
lead = loader.loadSfx("lead.wav")
lead.setLoop(True)
lead.play()
fp = FilterProperties()
fp.addEcho(0.6, 0.5, 856, 0.5)
base.sfxManagerList[0].configureFilters(fp)
run()

straight out of the manual. What I need to do is simple, I’m going to modify that third parameter (delay in milliseconds) of the echo filter at every frame redraw.

since the FilterProperties class only has methods for adding filters to the DSP chain and one for clearing them all, I figured I would have to add the filter, then clear it, repetitively. this did not work. in fact, calling

fp.clear()

while the sound is looping does nothing.

I thought maybe I would have to call

base.sfxManagerList[0].configureFilters(fp)

again but when I tried it It crashed everything hard, the whole interpreter went down.

I really need a way to get inside those filters but i dont know how.
If you have any ideas pleaaase let me know.

if your on skype, and want to help me debug this tonight, give me a call (nhnifong)

The big problem is that we are moving a way from FMOD in favor of openAl. And openAl does not do those advanced sound processing things at all or fast enough.

If you are making a game with the sounds i recommend recomputing those complex FX in your favorite sound program. And then playing it in game.