I have been using some of the DSP effects lately, and I have a question about interpolating the dsp effect parameters.
I would like the DSP Effects to be able to interpolate their parameters between 2 values. For example, if I have a high pass filter, I’d like to be able to lerp the "cutoff" parameter from 5000hz to 15000hz over n seconds. I can do this on my own, updating the value so many times per second, but it causes noticeable pops as the value changes. For example, interpolating from 5000 to 15000hz in 1 second, if I update the cutoff 30 times per second, then the cutoff value is changing about 333hz per update. This causes popping at each update as the value is changed.
My thought is that if the DSP effect was natively doing the interpolation on the parameter, then you wouldn’t hear any popping since the parameter would be smoothly changing with time.
Ultimately what I am trying to do is expose a graph of each parameter for each dsp effect to my sound designer. He would select a bunch of points on the graph, and then at runtime, I want to drive the effect parameter from the graph. In order for me to do this, it seems like the most basic functionality I would need is to have the dsp effect lerp from one parameter to another.
Is there any way to do something like this right now? or any possibility that something like this could be added in the future?
- samc asked 10 years ago
Instead of manually controlling the transition from one parameter value to another, have you tried setting the seek time?
For example, this would allow you to move from parameter value x to parameter value y, with the fmod engine automatically interpolating between the values (based on the seek time value). This should produce a smooth transistion between the values, without the popping artifacts.
[quote="Templar":2efpcq81]Instead of manually controlling the transition from one parameter value to another, have you tried setting the seek time?
For example, this would allow you to move from parameter value x to parameter value y, with the fmod engine automatically interpolating between the values (based on the seek time value). This should produce a smooth transistion between the values, without the popping artifacts.[/quote:2efpcq81]
I haven’t tried that yet, but it sounds like it might do what I’m trying.. I’m actually not familiar with the "seek time" that you are talking about.. Could you give me an example of this? Or is it used in any fmod examples?
- samc answered 10 years ago
I might have misinterpreting your question, are you using the data-driven API or the low-level API?
If you are not using the data-driven api, I suggest investigating it. As the data-driven API/ FMOD Designer combo (or ‘Event system’) already allows you to trigger parameter transitions based on your Sound Designer’s DSP-envelopes / parameters.
He’s using the low level api.
We wont be adding faders etc, until the fabled ‘sound shader’ api appears, but we can try and declick certain effects by internally ramping their changes . We just did this with a lowpass effect, you may want to try FMOD_DSP_LOWPASS_SIMPLE it is the best fastest lowpass and apparently doesnt have any click issues if doing rapid parameter changes.
Please login first to submit.