0
0

I am having problems using the reverb presets settings on a DSP.

Right now I want to use this present on a dsp:
[code:3ct366lx]#define FMOD_PRESET_CONCERTHALL { 0, 7, 1.00f, -1000, -500, 0, 3.92f, 0.70f, 1.0f, -1230, 0.020f, -2, 0.029f, 0.25f, 0.000f, 5000.0f, 250.0f, 100.0f, 100.0f, 0x3f }
[/code:3ct366lx]

using these values as the input for a dsp wrapper param I have the current constructor:
[code:3ct366lx]cSoundDSPSettings_Reverb( int alInstance,//Not used
int alEnvironment,//Not used
float afEnvDiffusion,//Not used
float afRoom,
float afRoomHF,
float afRoomLF,
float afDecayTime,
float afDecayHFRatio,
float afDecayLFRatio,//Not used
float afReflections,
float afReflectionsDelay,
float afReverb,
float afReverbDelay,
float afModulationTime,//Not used
float afModulationDepth,//Not used
float afHFReference,
float afLFReference,
float afDiffusion,
float afDensity,
unsigned int Flags//Not used
) : iSoundDSPSettings(eSoundDSPType_Reverb),
mfDryLevel(-10000.0f), mfRoom(afRoom), mfRoomHF(afRoomHF), mfDecayTime(afDecayTime),
mfDecayHFRatio(afDecayHFRatio), mfReflectionsLevel(afReflections), mfReflectionsDelay(afReflectionsDelay),
mfReverbLevel(afReverb), mfReverbDelay(afReverbDelay), mfDiffusion(afDiffusion), mfDensity(afDensity),
mfHFReference(afHFReference), mfRoomLF(afRoomLF), mfLFReference(afLFReference) {}[/code:3ct366lx]

this sets the values as such:
[code:3ct366lx]mpDSP->setParameter(FMOD_DSP_SFXREVERB_DRYLEVEL,-10000.000000
mpDSP->setParameter(FMOD_DSP_SFXREVERB_ROOM, -1000.000000
mpDSP->setParameter(FMOD_DSP_SFXREVERB_ROOMHF, -500.000000
mpDSP->setParameter(FMOD_DSP_SFXREVERB_DECAYTIME, 3.920000
mpDSP->setParameter(FMOD_DSP_SFXREVERB_DECAYHFRATIO,0.700000
mpDSP->setParameter(FMOD_DSP_SFXREVERB_REFLECTIONSLEVEL,-1230.000000
mpDSP->setParameter(FMOD_DSP_SFXREVERB_REFLECTIONSDELAY, 0.020000
mpDSP->setParameter(FMOD_DSP_SFXREVERB_REVERBLEVEL, -2.000000
mpDSP->setParameter(FMOD_DSP_SFXREVERB_REVERBDELAY, 0.029000
mpDSP->setParameter(FMOD_DSP_SFXREVERB_DIFFUSION, 100.000000
mpDSP->setParameter(FMOD_DSP_SFXREVERB_DENSITY, 100.000000
mpDSP->setParameter(FMOD_DSP_SFXREVERB_HFREFERENCE, 5000.000000
mpDSP->setParameter(FMOD_DSP_SFXREVERB_ROOMLF, 0.000000
mpDSP->setParameter(FMOD_DSP_SFXREVERB_LFREFERENCE 250.000000[/code:3ct366lx]

When added to a channel, this makes the sound pretty much silent. What am I doing wrong?
I tried to add a lowpass dsp and that worked just fine, so my way of adding dsps shouldn’t be the problem.

  • You must to post comments
0
0

Reverb is usually applied as a send, which means rather being in series it is put in a parallel signal path. FMOD has global Reverb DSP which all sounds can send to, instead of using addDSP. You can control the global reverb using EventSystem::setReverbProperties. You can also set up 3D reverb spheres which will blend between different reverb presets based on the listener position in the world.

  • You must to post comments
0
0

So I should not be using DSP at all for reverb? Because I still have the the problem of translating the presets (eg FMOD_PRESET_CONCERTHALL) to properties for the DSP. Any pointers on what I might be doing wrong would be really helpful!

In the end what I want is simply to only add reverb to a certain set of sounds, namely World or GUI (as explained [url=http://www.fmod.org/forum/viewtopic.php?f=7&t=14934:c0h9qwrg]here[/url:c0h9qwrg]). The way I am thinking about doing this now is to set global reverb (in the system object), and then use overrideReverbProperties(..) on the ChannelGroups of the World and GUI categories in the event system. Is this a good way to do it or is there some better?

A final related issue: I will not only be playing Events, but also lowlevel sound channels directly and I want these to fit into the above too. I was thinking of simply putting them in the Channel groups of the World and GUI categories in the event system. Is this okay to go about? Or should I create seperate ChannelGroups for sound channels that I create outside of the event system?

  • You must to post comments
0
0

[quote:1hlz01x5]So I should not be using DSP at all for reverb? [/quote:1hlz01x5]
It’s unusual to put the reverb as a DSP in the signal path. I would reccomend using the global reverb unless there is something specific to your project which requires something else.

[quote:1hlz01x5]I still have the the problem of translating the presets (eg FMOD_PRESET_CONCERTHALL) to properties for the DSP. Any pointers on what I might be doing wrong would be really helpful![/quote:1hlz01x5]
With regard to the DSP making it almost silent, the parameters which control the loudness are ‘room’ and ‘drylevel’, try increasing them to zero.

[quote:1hlz01x5]I will not only be playing Events, but also lowlevel sound channels directly and I want these to fit into the above too.[/quote:1hlz01x5]
For the lowlevel sounds you can control the send level of any channel in the system using Channel::setReverbProperties. The EventSystem uses this function behind the scenes to control the send levels, the sound designer can specify the reverb send level per event inside the tool using ‘Reverb Wet Level’ property. The reverb presets such as ‘concert hall’ can be also created, tweaked and auditioned inside the tool. These presets can be retrieved via EventSystem::getReverbPreset.

  • You must to post comments
Showing 3 results
Your Answer

Please first to submit.