0
0

Is it possible to have the resampler unit route through multiple 3d spatialized DSPs, or is the spatialization a per-channel thing?

I’m currently fudging it with multiple sources playing at the same time, but it would be cheaper on resources and easier to synch if I could use the same resampler/head.

Just to clarify, I’m trying to do something similar to simulating first-order early reflections, with a dsp per reflection, so I want to hear the direct sound (spatialized) as well as the reflections (spatialized). My current approach is to spawn a whole bunch of channels all playing the same sound at once with different DSPs on each one, but bringing in new channels synched accurately is troublesome, not to mention this doesn’t work well with streaming sounds.

  • You must to post comments
0
0

I’ve played with this a little, using the info from this post: http://52.88.2.202/forum/viewtopic.php?t=10591

I’ve adapted the dsp_custom example to get a proof of concept up and running, like so: (removed err checks too for brevity)

[code:1pnxg4ug]
FMOD::Channel *channel, *dspchannel;
FMOD::DSP *donothing, *place;
...
dspdesc.channels = 1;
...
system->createDSP(&dspdesc, &donothing);
system->createDSP(&dspdesc, &placedsp);
...
channel->addDSP(donothing, 0); // this is to move one level away from wavetable in case that was causing my probs
placedsp->addInput(donothing, 0);
system->playDSP(FMOD_CHANNEL_FREE, placedsp, true, &dspchannel);
dspchannel->setMode(FMOD_SOFTWARE | FMOD_3D);
dspchannel->set3DAttributes(&pos, &vel);
[/code:1pnxg4ug]

so the network looks [i:1pnxg4ug]something[/i:1pnxg4ug] like
[code:1pnxg4ug]
+———[channel]———–[donothing]<–[wavetable]
| |
v |
[ mixer ]<–[dspchannel]<–[placedsp]<–+
[/code:1pnxg4ug]
please forgive the ascii.

EDIT: here’s a screenshot from the profiler with the dspchannel paused (click to embiggen)
[url=http://d.imagehost.org/view/0923/kibibu_dspnet_capture.png:1pnxg4ug][img:1pnxg4ug]http://d.imagehost.org/t/0923/kibibu_dspnet_capture.jpg[/img:1pnxg4ug][/url:1pnxg4ug]

It all seems to be working as far as placing the sources in 3d space, however as soon as I unpause dspchannel the drum loop stutters – perhaps the wavetable samples are being consumed twice?

edit: This appears to be confirmed by the profiler too. The CPU on the donothing and wavetable doubles when I unpause the dspchannel

It occurs with the built in distortion effect too, so its not my donothing custom DSP.

Its confusing because the screenshot in the help shows a bunch of wavetables redirecting their output to the built-in SFX reverb. Is this a special case?

  • You must to post comments
Showing 1 result
Your Answer

Please first to submit.