0
0

I’ve been playing around with DSP chains, and have noted that if I create a chain roughly as follows:

soundcard<-customdsp2<-channelGroupMix<-customdsp1<-wavetable

That the outbuffer from customdsp1 (for example, reducing volume) is passed to the inbuffer of customdsp2. Not the actual memory pointer, but dsp2 receives the volume attenuated sample data. This is what I expected.

However if I replace customdsp1 with an FMOD dsplowpass, then the soundcard receives the lowpass processed signal, but customdsp2 receives an inbuffer of the wavetable. I’ve been unable to configure a custom DSP to receive the post-processed output from a lowpass DSP. Curiously while dsp2 now receives the original wavetable data, it doesn’t seem to actually affect the soundcard mix (you would think you would hear the original wavetable mixed on soundcard, but it remains lowpass).

I think I’m missing something fundamental about DSPs, about how they chain together. For a while there I figured they all took the inbuffer from the wavetable, and mixed together the outputs (no cascading). But I can see it cascading with the custom DSPs..

So is there a way for my custom DSP to receive the outbuffer of the FMOD DSPs (for example, the lowpass DSP)?

Note that using System::getWaveData yields the same result. That is, it will never fetch the lowpass attenuated wave data (that is heard on soundcard), but can fetch the customDSP adjusted data.

  • You must to post comments
0
0

You must have it connected wrong. data always flows from one unit to another through its connections.

Use fmod designer or fmod profiler to view the dsp tree in action. Add FMOD_INIT_ENABLE_PROFILE to allow profiler/designer to connect to your application.

  • You must to post comments
Showing 1 result
Your Answer

Please first to submit.