0
0

I noticed in the 1.4.11 – Development release update:

  • Added "Reverb" view. Sound designer can now design and preview named reverb presets that the programmer can use at runtime

If I add the reverb preset using the designer, how can I apply the reverb in code?

  • You must to post comments
0
0

To retrieve a reverb once an fev is loaded, the EventSystem interface is:

FMOD_RESULT EventSystem::getReverb( const char * name, EventReverb ** eventreverb);
using the Name field you defined for the reverb preset (NB: not the ‘Reverb Preset’ property).

To set it as the system reverb, call the EventReverb object’s setActive() member function with a ‘true’ parameter. To turn it off use ‘false’.

For more info please refer to the documentation, section FMOD Designer API reference-> C++ interfaces-> EventSystem and EventReverb.

  • You must to post comments
0
0

Thanks, that was exactly what I was looking for

  • You must to post comments
0
0

Before I realised you would be working on this, to apply specific reverb I effectively created an SFX_REVERB DSP with settings similar to the full EAX settings (from the docs, SFX Reverb seems to be a subset but I’m not sure how exactly they comply) so that I could have a DSP for a room, a DSP for a cave etc. I then applied the DSP directly to the sound category /categories I required e.g. so that I could apply tunnel reverb to my car and sound effects categories but not to my music etc. The main reason for using the SFX_REVERB was so that I could use software sounds so that it would work with any system.

My method is a bit fiddly, as I’m effectively copying appropriate parameters into the parameters in an SFX_REVERB DSP. Would it be possible instead to create an SFX_REVERB DSP from EventReverb parameters or is that simply incompatible?

Or are the new EventReverbs the intended way of avoiding having to use the DSPs to apply reverb to groups of sounds (only possible once they can be applied to sound categories)?

  • You must to post comments
0
0

Hi crouton,

Yes, you’re right – the properties you get from EventReverb properties are the same as the parameters of SFX reverb DSP and can be used interchangeably.

You’re also right – we really should supply an interface which lets you set an SFX reverb DSP unit’s properties in one go with FMOD_REVERB_PROPERTIES instead of forcing you do it property by property.

And finally, yes, we are making a more flexible reverb infrastructure. I expect there will be some extension to the event system to make control of it easier. At the moment, the event system’s reverb API just controls the system’s reverb in terms of SFX reverb parameters and active/inactive status, independent of channels.

  • You must to post comments
0
0

Thanks Peter, the ability to set SFX reverb DSP properties from FMOD_REVERB_PROPERTIES would be a useful interim measure, and it would at least encourage users to set up EventReverbs using Designer, and they could easily change over when the improved system appears.

  • You must to post comments
0
0

[quote="PeterThorpe":24rc1rf2]Hi crouton,
Yes, you’re right – the properties you get from EventReverb properties are the same as the parameters of SFX reverb DSP and can be used interchangeably. [/quote:24rc1rf2]
They seemed to work as a temporary solution, but I wasn’t sure if it was correct since the parameters for SFX_REVERB are

FMOD_DSP_SFXREVERB_DRYLEVEL,
FMOD_DSP_SFXREVERB_ROOM,
FMOD_DSP_SFXREVERB_ROOMHF,
FMOD_DSP_SFXREVERB_ROOMROLLOFFFACTOR,
FMOD_DSP_SFXREVERB_DECAYTIME,
FMOD_DSP_SFXREVERB_DECAYHFRATIO,
FMOD_DSP_SFXREVERB_REFLECTIONSLEVEL,
FMOD_DSP_SFXREVERB_REFLECTIONSDELAY,
FMOD_DSP_SFXREVERB_REVERBLEVEL,
FMOD_DSP_SFXREVERB_REVERBDELAY,
FMOD_DSP_SFXREVERB_DIFFUSION,
FMOD_DSP_SFXREVERB_DENSITY,
FMOD_DSP_SFXREVERB_HFREFERENCE

and the FMOD_REVERB_PROPERTIES (used by EventReverb) are

int Instance;
int Environment;
float EnvSize;
float EnvDiffusion;
[b:24rc1rf2] int Room;
int RoomHF;[/b:24rc1rf2]
int RoomLF;
[b:24rc1rf2] float DecayTime;
float DecayHFRatio;[/b:24rc1rf2]
float DecayLFRatio;
int Reflections;
[b:24rc1rf2] float ReflectionsDelay;[/b:24rc1rf2]
float ReflectionsPan[3];
int Reverb;
[b:24rc1rf2] float ReverbDelay;[/b:24rc1rf2]
float ReverbPan[3];
float EchoTime;
float EchoDepth;
float ModulationTime;
float ModulationDepth;
float AirAbsorptionHF;
[b:24rc1rf2] float HFReference;[/b:24rc1rf2]
float LFReference;
[b:24rc1rf2] float RoomRolloffFactor;
float Diffusion;
float Density;[/b:24rc1rf2]
unsigned int Flags;

i.e. there are common ones marked in bold (which might be compatible) that I copied parameters across from. If these are really genuinely compatible, what effect would the missing parameters have? Likewise, is there a reason why the SFX_REVERB DSP can’t have identical parameters to FMOD_REVERB_PROPERTIES?

  • You must to post comments
0
0

Sorry, me again, a potential related issue :)

Given that some people are likely to split groups of sounds into different Designer fdp files, the EventReverb preview will only be available in one file. Would it be possible to import it temporarily into a different fdp file, or something e.g. if I have misc audio, all sound effects and the EventReverb definitions in master.fdp, but I have each car in it’s own fdp file for ease of editing (or all cars in a separate fdp), then they don’t have access to the EventReverbs for previewing as they’re in another file. This could be a problem.

Of course the programmer/hacker in me would just copy and paste the EventReverb definition from the master to the car file, and then remove it when I was finished, but a more elegant solution would be needed for non-programmers. Allowing EventReverb settings to be imported but not saved out might be the best solution rather than having separate (and maybe clashing) definitions in each file. Either that or allow the definitions to be dragged across from one file to another, and the user just needs to remember to delete them before they build the data.

  • You must to post comments
0
0

[quote="crouton":2i7qzkun][quote="PeterThorpe":2i7qzkun]Hi crouton,
Yes, you’re right – the properties you get from EventReverb properties are the same as the parameters of SFX reverb DSP and can be used interchangeably. [/quote:2i7qzkun]
They seemed to work as a temporary solution, but I wasn’t sure if it was correct since the parameters for SFX_REVERB are

FMOD_DSP_SFXREVERB_DRYLEVEL,
FMOD_DSP_SFXREVERB_ROOM,
FMOD_DSP_SFXREVERB_ROOMHF,
FMOD_DSP_SFXREVERB_ROOMROLLOFFFACTOR,
FMOD_DSP_SFXREVERB_DECAYTIME,
FMOD_DSP_SFXREVERB_DECAYHFRATIO,
FMOD_DSP_SFXREVERB_REFLECTIONSLEVEL,
FMOD_DSP_SFXREVERB_REFLECTIONSDELAY,
FMOD_DSP_SFXREVERB_REVERBLEVEL,
FMOD_DSP_SFXREVERB_REVERBDELAY,
FMOD_DSP_SFXREVERB_DIFFUSION,
FMOD_DSP_SFXREVERB_DENSITY,
FMOD_DSP_SFXREVERB_HFREFERENCE

and the FMOD_REVERB_PROPERTIES (used by EventReverb) are

int Instance;
int Environment;
float EnvSize;
float EnvDiffusion;
[b:2i7qzkun] int Room;
int RoomHF;[/b:2i7qzkun]
int RoomLF;
[b:2i7qzkun] float DecayTime;
float DecayHFRatio;[/b:2i7qzkun]
float DecayLFRatio;
int Reflections;
[b:2i7qzkun] float ReflectionsDelay;[/b:2i7qzkun]
float ReflectionsPan[3];
int Reverb;
[b:2i7qzkun] float ReverbDelay;[/b:2i7qzkun]
float ReverbPan[3];
float EchoTime;
float EchoDepth;
float ModulationTime;
float ModulationDepth;
float AirAbsorptionHF;
[b:2i7qzkun] float HFReference;[/b:2i7qzkun]
float LFReference;
[b:2i7qzkun] float RoomRolloffFactor;
float Diffusion;
float Density;[/b:2i7qzkun]
unsigned int Flags;

i.e. there are common ones marked in bold (which might be compatible) that I copied parameters across from. If these are really genuinely compatible, what effect would the missing parameters have? Likewise, is there a reason why the SFX_REVERB DSP can’t have identical parameters to FMOD_REVERB_PROPERTIES?[/quote:2i7qzkun]

A lot of those aren’t used normally and their default state makes any difference inaudible (ie modulation params give a flanging effect but they’re not enabled by default), so just ignore them, and any that are, are used from non-i3dl2 presets like drugged or psychotic (introduced by eax3/eax4, ie the flanging stuff that I mentioned), so dont use them.
If you use get and set on those properties, nothing bad would happen.

As we’re heading further away from hardware support, we may in the future scrap all those extra parameters so that it is I3DL2 only to keep it simple.

  • You must to post comments
0
0

[quote="crouton":27a6jeqo]Sorry, me again, a potential related issue :)

Given that some people are likely to split groups of sounds into different Designer fdp files, the EventReverb preview will only be available in one file. Would it be possible to import it temporarily into a different fdp file, or something e.g. if I have misc audio, all sound effects and the EventReverb definitions in master.fdp, but I have each car in it’s own fdp file for ease of editing (or all cars in a separate fdp), then they don’t have access to the EventReverbs for previewing as they’re in another file. This could be a problem.

Of course the programmer/hacker in me would just copy and paste the EventReverb definition from the master to the car file, and then remove it when I was finished, but a more elegant solution would be needed for non-programmers. Allowing EventReverb settings to be imported but not saved out might be the best solution rather than having separate (and maybe clashing) definitions in each file. Either that or allow the definitions to be dragged across from one file to another, and the user just needs to remember to delete them before they build the data.[/quote:27a6jeqo]

Can’t answer that immediately with a solution, because both things you mention are non trivial and just have to go onto the end of our request list. Possibly our planned workspace/workgroups solution would resolve that issue but that’s still a while off.

  • You must to post comments
Showing 9 results
Your Answer

Please first to submit.