You need to make sure that the bus has been created when you try to add your DSP. Buses are normally dynamically created and destroyed on demand so you will need to lock the bus first before getting the channel group from it.
bus->lockChannelGroup(); system->flushCommands(); FMODErrorCheck(bus->getChannelGroup(&subgroup));
I hope this helps.
FMOD Studio does not work with VSTs, instead you will need to create a proprietary DLL file and place it into the Plugins folder of either your installation folder or your projects folder.
For an example of how to create an FMOD plugin, please see the dsp_custom project in our FMOD API.
You can also read up on custom DSPs in our documentation.
I hope this has been useful.
Thanks for your quick answer.
I’ve implemented a dsp and it’s working fine on the master group.
The only thing is that I want it to operate on a channelgroup on the master group.
In FMOD studio I created a channel group to be able to adjust the volume of a group of sounds.
I only want my custom DSP to influence the channelgroup for those sounds.
So I entered the following code:
memset(&dspdesc, 0, sizeof(dspdesc));
strcpy_s(dspdesc.name, "My first DSP unit"); dspdesc.version = 0x00010000; dspdesc.numinputbuffers = 1; dspdesc.numoutputbuffers = 1; dspdesc.read = dsp_equalizer; dspdesc.userdata = (void *)0x12345678; lowLevelSystem->createDSP(&dspdesc, &mydsp); mydsp->setBypass(false); mydsp->setActive(true); FMODErrorCheck(system->getBus("bus:/subgroup", &Bus)); Bus->getChannelGroup(&subgroup); FMODErrorCheck(subgroup->addDSP(0, mydsp));`
FMODErrorCheck(system->getBus(“bus:/subgroup”, &Bus)); Retrieves the Low Level ChannelGroup used by the bus, according to the manual.
Unfortunately the DSP is not doing anything on this subgroup.
How do I get this DSP to work on a subgroup ?
Please login first to submit.