Need help ! Feedback limiting (Flanger,Filter...)
-
- KVRian
- Topic Starter
- 574 posts since 6 Jan, 2003 from Somewhere between ))o Left and Right o((
Hello! I'm working on a flanger, and i'd like to limit the feedback path somehow. If the feedback is below 0.8 the sound is ok, there are no significant overshoots on the output signal. But the fun begins when the feedback is between 0-8 and 0.98...
Id like to get some deep flange/phaser effects.
I tryed limiting, with more than 3 different type of algorithms, but the result is to digital saturated.
I tryed to limit the output, and I tryed on the feedback path too. I tryed double sampling, limiting and filtering to reduce aliasing la la la... I still have to work on that. The results are not satisfying at all, and I think there are bugs on the code.
I would REALLY apreciate if you guys, could explain me how to make safe limiting, for a nice sound and also keep the CPU usage down as possible.
Cheers .... Attila.
Id like to get some deep flange/phaser effects.
I tryed limiting, with more than 3 different type of algorithms, but the result is to digital saturated.
I tryed to limit the output, and I tryed on the feedback path too. I tryed double sampling, limiting and filtering to reduce aliasing la la la... I still have to work on that. The results are not satisfying at all, and I think there are bugs on the code.
I would REALLY apreciate if you guys, could explain me how to make safe limiting, for a nice sound and also keep the CPU usage down as possible.
Cheers .... Attila.
-
- KVRist
- 361 posts since 6 Feb, 2003 from UK
Hi there
A quick way that I did is to find out the general volume of the input before going into the flanger (using a volume follower), and the general volume of the flanger output . What you do then is normalize the output so the volume going out is the same as the volume going in , i.e.
Vin - volume of the input
Vout - volume of the output
X - value of the output
Normx - x* Vin / Vout
Of course you want to my sure that your not dividing by zero at any point as well . You might want to play around with different type of volume followers i.e. RMS etc
Hope this has been of some help
Cheers
Jon : ConcreteFX
A quick way that I did is to find out the general volume of the input before going into the flanger (using a volume follower), and the general volume of the flanger output . What you do then is normalize the output so the volume going out is the same as the volume going in , i.e.
Vin - volume of the input
Vout - volume of the output
X - value of the output
Normx - x* Vin / Vout
Of course you want to my sure that your not dividing by zero at any point as well . You might want to play around with different type of volume followers i.e. RMS etc
Hope this has been of some help
Cheers
Jon : ConcreteFX
-
- KVRAF
- 4641 posts since 20 Feb, 2004 from Gothenburg, Sweden
Highpass filter at the same frequency as the feedback in the actual feedback loop?
Stefan H Singer
Musician, coder and co-founder of We made you look Web agency
Musician, coder and co-founder of We made you look Web agency
-
- KVRian
- Topic Starter
- 574 posts since 6 Jan, 2003 from Somewhere between ))o Left and Right o((
What I did try was a lowpass filter. But i think it had the opposite effect. Is it really important to use oversampling ?stefancrs wrote:Highpass filter at the same frequency as the feedback in the actual feedback loop?
-
- KVRAF
- 4641 posts since 20 Feb, 2004 from Gothenburg, Sweden
Lowpass would have the opposite effect yes. What you want to reduce here is something similar to instability in filter designs.
Stefan H Singer
Musician, coder and co-founder of We made you look Web agency
Musician, coder and co-founder of We made you look Web agency
-
- KVRian
- Topic Starter
- 574 posts since 6 Jan, 2003 from Somewhere between ))o Left and Right o((
I was wondering ...what methods are used in those analog emulation synths, because they sound so fat and also clean (not distorted).stefancrs wrote:Lowpass would have the opposite effect yes. What you want to reduce here is something similar to instability in filter designs.
-
- KVRian
- Topic Starter
- 574 posts since 6 Jan, 2003 from Somewhere between ))o Left and Right o((
What you mean is to set the cutoff frequency of the highpass filter to the same freq as the comb filter ?stefancrs wrote:Highpass filter at the same frequency as the feedback in the actual feedback loop?
If I recall right :
comb filter freq = 2/delay ?
Thanks.
A.F.
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
Digital saturation ?
It's logical to have saturation if the input sound is at 0.8, the global gain is, say, 1 and the feedback loop is 0.3, then the sum in worst case is 1.1, which is truncated to 1 or overflown to -0.9
So the problem is what concretefx said : normalizing the output - or the input... -.
Get the max amplitude in 1sec, divide by it and that's all. The amplitude is varying, remember it must be processed at EVERY moment if you want a dynamic change. For a static thing, use the formula I began to explain in the first part.
I said 1sec so as the spectrum is not much changed in the process.
It's logical to have saturation if the input sound is at 0.8, the global gain is, say, 1 and the feedback loop is 0.3, then the sum in worst case is 1.1, which is truncated to 1 or overflown to -0.9
So the problem is what concretefx said : normalizing the output - or the input... -.
Get the max amplitude in 1sec, divide by it and that's all. The amplitude is varying, remember it must be processed at EVERY moment if you want a dynamic change. For a static thing, use the formula I began to explain in the first part.
I said 1sec so as the spectrum is not much changed in the process.
-
- KVRian
- Topic Starter
- 574 posts since 6 Jan, 2003 from Somewhere between ))o Left and Right o((
But than there is a problem again. If there are large amplitude differences in sound, the output will be normalised to that peak, and the level of the sound will suffer.Miles1981 wrote:Digital saturation ?
It's logical to have saturation if the input sound is at 0.8, the global gain is, say, 1 and the feedback loop is 0.3, then the sum in worst case is 1.1, which is truncated to 1 or overflown to -0.9
So the problem is what concretefx said : normalizing the output - or the input... -.
Get the max amplitude in 1sec, divide by it and that's all. The amplitude is varying, remember it must be processed at EVERY moment if you want a dynamic change. For a static thing, use the formula I began to explain in the first part.
I said 1sec so as the spectrum is not much changed in the process.
I mean : I have the average level of my sound at -12 dB, and than a 0 dB occures (from feedback for eg.), than the output will be -12 dB. So I guess it's not enough to normalise, right ?
-
- KVRist
- 361 posts since 6 Feb, 2003 from UK
Hi there
I seem what you mean , the feedback would dominate the sound. So you could try , volume normalizing just the wet signal to the volume of the input ,i.e. if the input volume was -18db then this wet signal would be normalized to -18db. You then would mix in the dry signal (unnormalized). I haven't tried this out in code, but you never know it might even work
Cheers
Jon : ConcreteFX
I seem what you mean , the feedback would dominate the sound. So you could try , volume normalizing just the wet signal to the volume of the input ,i.e. if the input volume was -18db then this wet signal would be normalized to -18db. You then would mix in the dry signal (unnormalized). I haven't tried this out in code, but you never know it might even work
Cheers
Jon : ConcreteFX
-
- KVRian
- Topic Starter
- 574 posts since 6 Jan, 2003 from Somewhere between ))o Left and Right o((
Interesting ! I will try that too.Concretefx wrote:Hi there
I seem what you mean , the feedback would dominate the sound. So you could try , volume normalizing just the wet signal to the volume of the input ,i.e. if the input volume was -18db then this wet signal would be normalized to -18db. You then would mix in the dry signal (unnormalized). I haven't tried this out in code, but you never know it might even work
Cheers
Jon : ConcreteFX
Thanks.
-
- KVRian
- 1379 posts since 26 Apr, 2004 from UK
Exactly, sorry, I didn't think about that - and it was this eays to remember thattranceinstitute wrote:But than there is a problem again. If there are large amplitude differences in sound, the output will be normalised to that peak, and the level of the sound will suffer.
I mean : I have the average level of my sound at -12 dB, and than a 0 dB occures (from feedback for eg.), than the output will be -12 dB. So I guess it's not enough to normalise, right ?