Is there any way to create effects in FMOD Designer, and then load them in code?
I need to create some filters… say lowpass to apply in some game situations. I can easily hardcode them, or even create a xml file with the effect parameters and load them at startup, but I was thinking if FMOD Designer API already has some way to do that. I might have missed it.
That way we could use FMOD Designer to create, listen and finetune parameter effects, and then get the respective FMOD::DSP objects in code with just some calls.
The only way I could find was to use FMOD Designer to test effects, and then write down the right parameters.
Or maybe there is already some FMOD effect definition format that I’ve missed?
- ruifig asked 9 years ago
Currently you would have to make a vst or fmod plugin, then add it using the designer interface when you ‘add effect’ on an event layer.
Note that fmod already has 3 different lowpass filters. They are cross platform and optimized as well, you may want to look into the existing filters first.
I think he means, is there a way of saving out the parameters you use with FMOD dsps for use in code.
For example, when a grenade goes off, you may want to add a lowpass to all game sounds. Currently, you have to make the lowpass DSP with a test sound in FMOD, write down all the values, convert them into real values that the DSP takes, then add the DSP manually to the code.
What would be really nice, is a new editor, like the reverb editor (or extend that) to allow this functionality.
[quote="Daniel":2c8lkpvz]Tony, could you explain more what do you mean by "convert them into real values…"
I’m very much interested in the concept of calling mix snapshots, including DSP settings, from script or programmatically.
I imagine Tony is talking about the ability to save user definition for any DSP, just like the you can for reverb. For example, you could go into Designer and create a preset for LowPass filter called "MyLowPassSettings".
Then in the code (note, VERY generic code) instead of calling an effect such as:
result = system->createDSPByType(FMOD_DSP_TYPE_LOWPASS, &dsplowpass);
result = dsplowpass->setParameter(FMOD_DSP_ECHO_DELAY, 50.0f);
I think you’d like to use something like:
result = dsplowpass->loadPreset("MyLowPassSettings");
where "myLowPassSettings" is the name of a preset that contains all the parameter informatio (you’d probably want to do this call with either a string or numeric index…)
Tony are you using the low-level API or data driven API? Would you want to get these preset definitions from the .FEV or some other file?
- templar answered 9 years ago
We use the event API mostly and having them in the FEV would work for us.
Suggestion to use the syntax below since its not really possible to use the parameters from one DSP on another type, the preset would contain the type of DSP too.
result = system->CreateDSPFromPreset("MyLowPassDSP", &dsp);
Please login first to submit.