0
0

Hi,
I have 3 channel groups. On the main system I have 2 DSP’s, a custom DSP that writes the audio to WAV and a reverb DSP. I am trying to write to WAV one channel group that has the reverb DSP combined with one that is plain while excluding the third group. I’ve successfully done this by adding the DSP to a master channel group but then the reverb is not written to the WAV since it is system wide. I’ve reduced the reverb for the plain channels by setting FMOD_REVERB_CHANNELPROPERTIES but I need to exclude one group completely from the WAV DSP. Is there a way to exclude the channel group from being written from within the custom DSP or is there a better way to achieve this?

Thanks!

  • You must to post comments
0
0

ChannelGroups form a hierarchy, so you can add channelgroups to other groups. Just add the two channelgroups that you do want to record to a new group, then put your recording DSP on that new group.

  • You must to post comments
0
0

[quote="peter":191lslh8]ChannelGroups form a hierarchy, so you can add channelgroups to other groups. Just add the two channelgroups that you do want to record to a new group, then put your recording DSP on that new group.[/quote:191lslh8]

When I set it up this way the recording works with the correct groups but it is not recording the system reverb. I can hear it being played but it records without it, here is the flow –

// Reverb ***
FMOD_REVERB_PROPERTIES prop_concert = FMOD_PRESET_CONCERTHALL;
prop_concert.Room = mRev;
result = FMODsystem->setReverbProperties(&prop_concert);

// Groups ***
result = FMODsystem->createChannelGroup("Group1", &group1);
ERRCHECK(result);
result = FMODsystem->createChannelGroup("Group2", &group2);
ERRCHECK(result);
result = FMODsystem->createChannelGroup("Group3", &group3);
ERRCHECK(result);

// Record Group ***
result = FMODsystem->getMasterChannelGroup(&masterGroup);
ERRCHECK(result);
result = masterGroup->addGroup(group1);
ERRCHECK(result);
result = masterGroup->addGroup(group2);
ERRCHECK(result);

// RECORD DSP **
strcpy(dspdesc.name, "My first DSP unit");
dspdesc.channels = 0; // 0 = whatever comes in, else specify.
dspdesc.read = myDSPCallback;
dspdesc.userdata = (void *)outFile;

result = FMODsystem->createDSP(&dspdesc, &mydsp); 
result = masterGroup->addDSP(mydsp, NULL);
  • You must to post comments
0
0

That is correct because the reverb connections are parrallel to the channelgroup connections and run directly into the master. You could just create a SFX reverb on the new channelgroup instead of using the global system reverb.

  • You must to post comments
Showing 3 results
Your Answer

Please first to submit.