07-14-2016, 10:02 AM | #1 |
Human being with feelings
Join Date: Dec 2012
Posts: 7,527
|
ReaComp doesn't actually limit!
Set all time constants and knee to 0. Ratio to infinity. Go ahead and tick the "Limit Output" box even. Leave Oversampling off. This should be a hard clipper at the threshold, and no matter how loud the input gets, the output should never get louder than the threshold. It works up to a (admittedly kind of absurdly high) point, but then suddenly seems to break loose and the output escalates quickly. I have not yet identified the exact point at which it looses it's grip, but I have seen it happen a number of times.
My test procedure: Please mute your speakers one way or another before you try this! JS White Noise set to -12db > ReaDelay set to default but with a positive feedback value > ReaComp set as described above. If it matters, it's Reaper 5.2 32bit on XPSP3 AMD dual core 3.11GHz and 3G RAM. To be fair, there aren't many things labeled "compressor" or even "limiter" that can actually handle this. Most break down in one way or another. Several of the included JS "limiters" seem to overshoot and end up heading toward silence.(!!!) I suspect that might have something to do with the way they approximate the fp to db calculation. It's "close enough" at realistic levels, but when crazy kids like me try to do stupid things with them... The knee parameter doesn't really change this behavior, except that the maximum output before it freaks out will be a bit higher than threshold because of the way that curve works. I use ReaComp for darn near everything that involves manipulating dynamics, and I don't have many complaints, but this is kind of a big one.
__________________
Lorenzo's Tractor is Everywhere --- Ash's Tube --- Join the Partnership for a Drum Free Amerika |
07-14-2016, 02:59 PM | #2 |
Administrator
Join Date: Jan 2005
Location: NYC
Posts: 16,117
|
Reacomp is a compressor, not a limiter. The limit output option only hard clips to +0dB, not the threshold.
|
07-14-2016, 03:14 PM | #3 |
Banned
Join Date: Nov 2015
Posts: 406
|
A compressor, in the limit, is a limiter.
If a compressor as 0 attack time, 0 db Knee, and infinite ratio then it is a hard limiter and should ask as so, else something is wrong. It's ok to special case this: If (AT == 0 && Knee == 0 && Ratio == Real.Infinity) Sample = Min(Threshold, Sample) else .... Type of thing. I imagine ReaComp doesn't actually an infinite ratio though? That might be the problem? Assume that the compression curve looks something like * ______/ / / / Where the /* part is actually a sort of line with nearly infinite slope and infinitesimally small width(something that might not show up when viewing the curve). This could produce the effect he is talking about and is not desirable and probably due to some type of glitch(division by 0 at 0db when attack is 0 and ratio is "infinite)). If os, it is truly a bug. It could potentially happen in the real world producing invalid results. E.g., creating large amplifications for certain samples groups that are at 0dB or near 0dB(e.g., 0.0001dB), creating distortion. It may just occur at a certain point or epsilon region in parameter space for reaComp, but it still should be investigated.A basic compressor should have pretty basic characteristics. Doing funky complex compression's might be expected to behave weird but a common compressor isn't. |
07-14-2016, 04:08 PM | #4 | |
Human being with feelings
Join Date: Dec 2012
Posts: 7,527
|
Quote:
Also, as mentioned above, if the time constants are at 0, it should be a sample for sample transfer curve - a waveshaper. If the slider says inf:1, then the output should never exceed the threshold no matter what. Adding any RMS, attack, or release pretty much has to throw things off, and that's fine. Oversampling will also make the limit hard to predict, and that's okay. The knee parameter "rounds the corners" and because of the way it's implemented actually raises the threshold at which the full ratio is reached (that's another nitpick of mine) but works well enough as long as it will actually work. I understand that this is an extreme case, but I do extreme things. ReaComp is so powerful, and so flexible that I really want to use it for all kinds of horrible things. The fact that it limits fine for even very large inputs, but seems to have a threshold where it can't keep up any longer makes me think this is a real bug rather than a deliberate feature. ( If you happen to look into the code for this, I'd like to mention also that a number of us would really like to be able to dial in pre-comp times greater than 250ms. The longer the better. If it would actually get to half as big as the biggest RMS time, that would be great. Also, since we're here: I'd imagine fixing the knee thing is more work than it's worth, but is there an easy way to at least display the actual threshold after the knee is applied? )
__________________
Lorenzo's Tractor is Everywhere --- Ash's Tube --- Join the Partnership for a Drum Free Amerika |
|
07-14-2016, 04:24 PM | #5 |
Human being with feelings
Join Date: Nov 2013
Posts: 2,881
|
̶Y̶o̶u̶ ̶c̶a̶n̶ ̶t̶y̶p̶e̶ ̶i̶n̶ ̶m̶o̶r̶e̶ ̶t̶h̶a̶n̶ ̶t̶h̶e̶ ̶f̶a̶d̶e̶r̶ ̶a̶l̶l̶o̶w̶s̶ ̶t̶h̶o̶u̶g̶h̶.
Last edited by SmajjL; 07-14-2016 at 07:26 PM. |
07-14-2016, 05:21 PM | #6 |
Human being with feelings
Join Date: Dec 2012
Posts: 7,527
|
Does that actually work with pre-comp?
__________________
Lorenzo's Tractor is Everywhere --- Ash's Tube --- Join the Partnership for a Drum Free Amerika |
07-14-2016, 05:40 PM | #7 |
Human being with feelings
Join Date: Nov 2013
Posts: 2,881
|
Ever since I 'ah-ha!ed' & tryed it on JS: Audio To MIDI Drum Trigger, I assume so with most Cockos stuff, can't wait until you try it, since you need it and expect a certain result.
I just tried it and something happens, to my ears, think I need your expert opinion on this one. |
07-14-2016, 05:53 PM | #8 | |
Human being with feelings
Join Date: Dec 2012
Posts: 7,527
|
Quote:
TBH - for what I use it for most times it's not super critical, and usually 250 is plenty, but longer is better, no? I'll give 'er a shot sometime. Thanks for the hint.
__________________
Lorenzo's Tractor is Everywhere --- Ash's Tube --- Join the Partnership for a Drum Free Amerika |
|
07-14-2016, 06:13 PM | #9 |
Human being with feelings
Join Date: Nov 2013
Posts: 2,881
|
JS: Exciter (Treble Enhancer) is limited to 2000 Hz, no it's not.
Edit: You-Are-Principle-Welcome. Last edited by SmajjL; 07-14-2016 at 07:27 PM. |
07-14-2016, 06:35 PM | #10 |
Human being with feelings
Join Date: Nov 2013
Posts: 2,881
|
Nope, when closing reacomp and reopen, it's 250 again.. nice try.. + somethingsomething
JS: Exciter (Treble Enhancer) will stay at 50 Hz though, good. Resume normal activity, and improve stuff. Last edited by SmajjL; 07-14-2016 at 07:14 PM. Reason: *blub* :) |
07-14-2016, 08:23 PM | #11 | |
Administrator
Join Date: Jan 2005
Location: NYC
Posts: 16,117
|
Quote:
I was unable to get output over +0dB, however, if the "limit output" was checked (assuming AA is off, if AA is on, then the limiting happens at the higher rate so you might still get some smallish overs)... Last edited by Justin; 07-14-2016 at 08:32 PM. |
|
07-14-2016, 10:54 PM | #12 |
Human being with feelings
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 22,756
|
falling about laughing at the idea that anyone would push something 150 over in the real world. You tech-heads.....
Edit: Should have said I am not laughing AT you - just the idea of something that extreme, although I suppose there IS a case for protecting the system in case of a catastrophic "over".... but I was under the impression Reaper already did that.
__________________
Ici on parles Franglais |
07-14-2016, 11:33 PM | #13 | |
Human being with feelings
Join Date: Dec 2012
Posts: 7,527
|
Quote:
But yeah, sometimes I want to be able to ruin everything. I want it to get way too loud without getting way too loud. It is a bit disappointing that my go-to plugin can't handle it. I probably wouldn't use anything else if I could trust it to handle every damn thing I might throw at it. There's that thing on Epic's blog about feedback routing to do funny things in with ReaDelay and other effects. That can get way out of hand really fast unless you can really set a hard limit somewhere along the line, and if that limit can only be trusted to a certain point, like a levee built on a bayou...
__________________
Lorenzo's Tractor is Everywhere --- Ash's Tube --- Join the Partnership for a Drum Free Amerika |
|
07-15-2016, 07:58 AM | #14 | |
Human being with feelings
Join Date: Jun 2009
Posts: 748
|
Quote:
|
|
07-15-2016, 08:11 AM | #15 |
Human being with feelings
Join Date: Nov 2013
Posts: 2,881
|
Might as well use audio to get to Mars faster.
*meep meep* |
07-15-2016, 08:41 AM | #16 | ||
Human being with feelings
Join Date: Dec 2012
Posts: 7,527
|
Quote:
Quote:
__________________
Lorenzo's Tractor is Everywhere --- Ash's Tube --- Join the Partnership for a Drum Free Amerika |
||
08-17-2016, 12:36 PM | #17 | |
Human being with feelings
Join Date: Sep 2008
Location: Sweden
Posts: 7,552
|
A follow-up here...
If I set ReaComp to limit output, then I get different limits depending on the selected oversampling (AA). Is that as should be expected? Justin said: Quote:
Code:
AA Output -------------------- None 0.0 dB 2x 0.0 dB 4x -1.1 dB 8x -1.4 dB 16x -1.5 dB 32x -1.5 dB 64x -1.5 dB
__________________
// MVHMF I never always did the right thing, but all I did wasn't wrong... |
|
08-17-2016, 04:48 PM | #18 |
Human being with feelings
Join Date: Dec 2012
Posts: 7,527
|
It's pretty much impossible to predict what the actual limit is going to be after the OS filters do their thing. I'm pretty surprised that none of them ended up over 0, but I think if you tried with a different input, you'd get different results. Even changing the frequency of your tone generator will probably affect the output.
__________________
Lorenzo's Tractor is Everywhere --- Ash's Tube --- Join the Partnership for a Drum Free Amerika |
08-18-2016, 12:31 PM | #19 | |
Human being with feelings
Join Date: Sep 2008
Location: Sweden
Posts: 7,552
|
Quote:
So I tried it with white noise, and the numbers are indeed different, but the trend is sort of the same. Code:
AA Output ------------------ None 0.0 dB 2x +0.8 dB 4x -0.4 dB 8x etc -0.8 dB
__________________
// MVHMF I never always did the right thing, but all I did wasn't wrong... |
|
Thread Tools | |
Display Modes | |
|
|