|
|
|
06-17-2019, 01:16 PM
|
#1
|
Human being with feelings
Join Date: Oct 2009
Posts: 164
|
Reacomp - Strange behaviour - Inconsistent Harmonics/Bug? RMS-Size
My Reaper version is 5.978
Looks like we still have an unexplained issue with Reaper's compressor.
Using Sines generated by a signal generator - JS Tone Generator.
Typically in any other compressor, as soon as it starts compressing, you can visualise the distortion as harmonics in an analyzer.
Two issues with Reacomp.
1. In a new instance of Reacomp, while the incidence of compression (i,e Gain reduction) corresponds to a reduction in the level of the fundamental, as confirmed in the analyzer, there are no harmonics displayed in the analyzer until you click on the RMS size slider..
Until I clicked on the RMS slider, I thought to myself - Reaper must be the cleanest compressor I have ever come across - it does not produce any harmonics.!!! Why must the RMS slider be clicked to get it to work as expected.!
2. If you enter an RMS size as a value in the appropriate text box(with or without decimals), the harmonics are removed from the audio leaving only the fundamental, until you click on the RMS slider.
Could someone please assist - or help with an explanation...
I know of no other compressor that exhibits this behavior
Strange.
Last edited by kodebode2; 06-18-2019 at 12:56 AM.
|
|
|
06-17-2019, 02:30 PM
|
#2
|
Human being with feelings
Join Date: Oct 2014
Posts: 1,356
|
maybe the preview switch is set in reacomp?
|
|
|
06-17-2019, 03:18 PM
|
#3
|
Human being with feelings
Join Date: Oct 2009
Posts: 164
|
Quote:
Originally Posted by bobobo
maybe the preview switch is set in reacomp?
|
At no time did I modify the Preview checkbox, which was disabled by default.
|
|
|
06-17-2019, 09:32 PM
|
#4
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,688
|
Quote:
Originally Posted by kodebode2
Typically in any other compressor, as soon as it starts compressing, you can visualise the distortion as harmonics in an analyzer.
|
As soon as the sine is not an everlasting sine there obviously are harmonics and/or other components of higher frequencies.
With a dynamics, the harmonics get the more prominent the faster the gain modification curve is.
That is just mathematics, not an issue of "quality" or "strangeness". Usually the speed and behavior of the modulation can be defined in a wide range on any compressor plugin. Some plugins deliberately add additional harmonics/artifacts on purpose to produce certain "color" or simulate certain hardware.
-Michael
Last edited by mschnell; 06-17-2019 at 09:37 PM.
|
|
|
06-18-2019, 12:53 AM
|
#5
|
Human being with feelings
Join Date: Oct 2009
Posts: 164
|
Quote:
Originally Posted by mschnell
As soon as the sine is not an everlasting sine there obviously are harmonics and/or other components of higher frequencies.
With a dynamics, the harmonics get the more prominent the faster the gain modification curve is.
That is just mathematics, not an issue of "quality" or "strangeness". Usually the speed and behavior of the modulation can be defined in a wide range on any compressor plugin. Some plugins deliberately add additional harmonics/artifacts on purpose to produce certain "color" or simulate certain hardware.
-Michael
|
May I attempt to explain myself better.
Below is the analyzer on a 500hz sine wave - no harmonics. Nothing unusual here.
Next is the same 500hz sine wave when I load in an instance of Reaper. Notice that because of compression, the level of the signal is reduced. by about the same amount as reported in the Reacomp Gain reduction display (RED indicator in column).
This is a bit unusual because all compressors, when active should produce some "distortion", which on a sine wave will produce harmonics. All compressors and limiters whenever gain is reduced, will introduce this behavior, to the best of my knowledge... I cannot explain why but they certainly all do, so this was a curious exception. But do read on.
Next - Below is the same sine wave, same settings in Reaper, and the only thing I did to produce this was click on the RMS slider, i.e, no change in settings, just a click without changing any value of the RMS setting.
My expectation. I should not have to click on the RMS slider to get the expected behaviour - to occur. I am kinda surprised that no one else to my knowledge has picked up on this anomaly.
I do wish I could get an explanation of this unanticipated behavior or an admission that this is a bug which needs fixing.
|
|
|
06-18-2019, 01:40 AM
|
#6
|
Human being with feelings
Join Date: Nov 2010
Location: Mullet
Posts: 829
|
what i noticed is that the default setting of "5 ms" for RMS size (upon loading or when clicking slider to reset to default) is not the same as if you manually enter "5 ms" via text...
__________________
I like turtles
|
|
|
06-18-2019, 02:03 AM
|
#7
|
Human being with feelings
Join Date: Aug 2015
Posts: 2,969
|
Interesting. With your 500Hz test tone, try entering 20.1 in the RMS box (without clicking on the slider)
Type slow and watch your spectrum analyser.
Or 100.1
50.1
etc.
Heh.
__________________
it's meant to sound like that...
|
|
|
06-18-2019, 02:19 AM
|
#8
|
Human being with feelings
Join Date: Jun 2009
Posts: 673
|
Confirmed here also.
However, when I move the RMS slider to its' maximum setting (1000ms), I see the same results as the default (no harmonics).
Consequently, my guess is that, despite ReaComp reading 5ms RMS as its' default, it's actually defaulting to 1000ms.
|
|
|
06-18-2019, 02:41 AM
|
#9
|
Human being with feelings
Join Date: Aug 2015
Posts: 2,969
|
Quote:
Originally Posted by Xasman
Confirmed here also.
However, when I move the RMS slider to its' maximum setting (1000ms), I see the same results as the default (no harmonics).
|
Try changing yr tone generator frequency to 500.1 Hz
__________________
it's meant to sound like that...
|
|
|
06-18-2019, 05:06 AM
|
#10
|
Human being with feelings
Join Date: Jun 2009
Posts: 673
|
Quote:
Originally Posted by jrk
Try changing yr tone generator frequency to 500.1 Hz
|
Yep, that introduces harmonics which look the same by default as when ReaComp RMS is set to 1000ms. This would seem to support my guess that the default RMS is actually 1000ms instead of 5ms (which is suggested by the default slider position).
|
|
|
06-18-2019, 05:14 AM
|
#11
|
Human being with feelings
Join Date: Aug 2015
Posts: 2,969
|
Quote:
Originally Posted by Xasman
Yep, that introduces harmonics which look the same by default as when ReaComp RMS is set to 1000ms. This would seem to support my guess that the default RMS is actually 1000ms instead of 5ms (which is suggested by the default slider position).
|
I don't think that's it.
Reset your tone generator to 500Hz
and try RMS sizes of 5, 10, 15 ... etc
__________________
it's meant to sound like that...
|
|
|
06-18-2019, 05:35 AM
|
#12
|
Human being with feelings
Join Date: Jun 2009
Posts: 673
|
Quote:
Originally Posted by jrk
I don't think that's it.
Reset your tone generator to 500Hz
and try RMS sizes of 5, 10, 15 ... etc
|
I see what you mean. Well, it was only a guess
|
|
|
06-18-2019, 07:52 AM
|
#13
|
Human being with feelings
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
|
So what's the conclusion (if there is one)?
|
|
|
06-18-2019, 07:55 AM
|
#14
|
Human being with feelings
Join Date: Jun 2007
Location: Terra incognita
Posts: 7,670
|
Perhaps some test procedure information is missing here? I cannot see these anomalies on my test. Signal readout without ReaComp is the sinewave which was generated with the Tone Generator.
As soon as ReaComp is activated (using the settings shown above), harmonics appear and their strength depends on the RMS setting. Highest with RMS at 0 ms, lowest when RMS is at 1000 ms. It doesn't matter if the RMS is set by typing or using the slider either, it's always the same with the same value given.
---
edit: funny thing. I saved the test project and when reopening, now I get something. RMS slider works like expected. But if typing in the RMS value, it doesn't seem to update properly before clicking on the slider.
Last edited by xpander; 06-18-2019 at 08:25 AM.
|
|
|
06-18-2019, 07:59 AM
|
#15
|
Banned
Join Date: Aug 2007
Location: Too close to Charlotte, NC
Posts: 3,554
|
Quote:
Originally Posted by nofish
So what's the conclusion (if there is one)?
|
Indeed. Reaper stock effects should not have fundamental defects.
Please, someone just deprecate this mess and fix it!
|
|
|
06-18-2019, 08:15 AM
|
#16
|
Human being with feelings
Join Date: Dec 2012
Posts: 7,272
|
A 1s RMS window will have a very noticeable effect on the way the compression sounds and feels. It’ll be all kinds of slow and laggy and not what anybody usually wants. If it were the case, we’d have heard about it by now. Note also that changing the RMS tends to change the detector level, but that quite clearly is not happening in the pictures. I don’t know what you’re actually experiencing, but that’s not it.
|
|
|
06-18-2019, 10:31 AM
|
#17
|
Human being with feelings
Join Date: Oct 2009
Posts: 164
|
Quote:
Originally Posted by SMM
If you put the RMS slider to the
left and set it's value to 0.0 ms
(no RMS), does this anomaly still
exist on a signal that is not using
the RMS feature?
|
If I use the slider to set the value to 0.0ms as you can see in the screen capture below, it behaves normally, and still provides the expected harmonics, no issues here.
But if I set the value to any value (with one exception discussed below) e.g 2.0ms using text entry in the the text box, the harmonics disappear...!!
Until I click the RMS Size slider, then the harmonics are restored as expected.
One other thing I noticed, as long as I use the slider to set the RMS Size to 1000 ms, the harmonics also disappear...!! Interesting quirk....
Now I have to remember to always click on the RMS Size slider to ensure its behaving like it should. until the bug is sorted in a new version.
You may also observe that there is some consistency in the Gain reduction, in relation with the inclusion of harmonics in the end result.
Whenever the harmonics are displayed, by clicking on the RMS Size slider (with the exception of the 1000ms value) the Gain reduction increases by 0.1 dB, which is also consistent with slightly higher change in the original signal, and corresponds with the inclusion of harmonics in the analyzer.
|
|
|
06-18-2019, 10:43 AM
|
#18
|
Banned
Join Date: Aug 2007
Location: Too close to Charlotte, NC
Posts: 3,554
|
Quote:
Originally Posted by kodebode2
until the bug is sorted in a new version.
|
Don't hold your breath. Devs don't seem to enjoy fixing stock plugins.
|
|
|
06-18-2019, 10:48 AM
|
#19
|
Human being with feelings
Join Date: Oct 2009
Posts: 164
|
Quote:
Originally Posted by jrk
Interesting. With your 500Hz test tone, try entering 20.1 in the RMS box (without clicking on the slider)
Type slow and watch your spectrum analyser.
Or 100.1
50.1
etc.
Heh.
|
You definitely have a point, as long as the frequency of the sine generator has a value beyond the decimal point, Reacomp behaves normally .....! But on any frequencies with whole numbers - its back to strangeness.
My concern is that with other compressors, even when the generator is set to whole number frequency values, they consistently deliver the expected results.
i.e conclusion, on most normal random audio like music which does not have only whole number sine frequency signals, reacomp should behave as expected.
But on that sub bass enhanced with a sine wave at a specific whole number frequency, reacomp will not generate the expected behaviour....
This, in comparison to other compressors, indicates that reacomp does have a bug, that needs to be fixed.
We should not need to make exceptions for a digital compressor plugin...
|
|
|
06-18-2019, 10:54 AM
|
#20
|
Human being with feelings
Join Date: Oct 2009
Posts: 164
|
Quote:
Originally Posted by xpander
Perhaps some test procedure information is missing here? I cannot see these anomalies on my test. Signal readout without ReaComp is the sinewave which was generated with the Tone Generator.
As soon as ReaComp is activated (using the settings shown above), harmonics appear and their strength depends on the RMS setting. Highest with RMS at 0 ms, lowest when RMS is at 1000 ms. It doesn't matter if the RMS is set by typing or using the slider either, it's always the same with the same value given.
---
edit: funny thing. I saved the test project and when reopening, now I get something. RMS slider works like expected. But if typing in the RMS value, it doesn't seem to update properly before clicking on the slider.
|
Glad to know your observation and mine are consistent.
As someone suggested on the thread, using decimal places in the signal generator frequency (e.g 500.1 Hz) seems to make reacomp behave as expected, and this includes data entry into the RMS SIze box producing the expected harmonics with the most harmonics produced when RMS Size = 0, and decreasing with higher values.
Definitely a bug that Cockos should fix....
|
|
|
06-18-2019, 10:57 AM
|
#21
|
Human being with feelings
Join Date: Oct 2009
Posts: 164
|
Quote:
Originally Posted by JHughes
Indeed. Reaper stock effects should not have fundamental defects.
Please, someone just deprecate this mess and fix it!
|
Agreed....
Only wondering - how long has this bug been in Reacomp...especially as Reacomp has been in use for at least a decade.....
|
|
|
06-18-2019, 11:14 AM
|
#22
|
Human being with feelings
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
|
Quote:
Originally Posted by kodebode2
Below is the analyzer on a 500hz sine wave - no harmonics. Nothing unusual here.
...
My expectation. I should not have to click on the RMS slider to get the expected behaviour - to occur. I am kinda surprised that no one else to my knowledge has picked up on this anomaly.
|
My test results confirm this. I'm using the latest Reaper for Linux. Also this happens with "weird knee" unchecked (so it doesn't have anything to do with the "weird knee" "feature"). Just in case anyone was wondering.
I might have noticed this sooner if I used the RMS feature more often, especially if I typed in values. (I don't type values in plugins; I only use the controls.)
|
|
|
06-18-2019, 11:57 AM
|
#23
|
Banned
Join Date: Aug 2007
Location: Too close to Charlotte, NC
Posts: 3,554
|
Quote:
Originally Posted by kodebode2
Only wondering - how long has this bug been in Reacomp...especially as Reacomp has been in use for at least a decade.....
|
Well, if you have the time and the motivation to do some detective work: https://www.reaper.fm/download-old.php
|
|
|
06-18-2019, 12:08 PM
|
#24
|
Administrator
Join Date: Jan 2005
Location: NYC
Posts: 15,721
|
Hmm I've just tested this and I can't duplicate the issue -- I always get the harmonics (if RMS size is something reasonably small -- if I manually set it to 1000ms then yes it comes clean), and editing the text field for RMS size works as expected. Hmmmmmmmm.
What samplerate and block size are you using?
Can you post a minimal test project (one I can open then edit the RMS text field to duplicate)?
Also 32 or x64? 5.979 have the same issue?
One more: OS version and CPU?
Thanks!
Last edited by Justin; 06-18-2019 at 12:20 PM.
|
|
|
06-18-2019, 12:24 PM
|
#25
|
Human being with feelings
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
|
Try the settings shown in post 18, "weird knee" optional. With a test sine of 500 Hz specifically. (It seems some frequencies make this result more noticeable.) Then type the RMS value (don't use the slider) and you'll see with a setting of exactly 1ms things get weird. If you move the slider to 1ms though, it seems fine. (Or if you type a value that has any decimal places.)
For me: Reaper for Linux 5.979, MX Linux 18.3 (64-bit), Intel Core i3-6300.
44.1 KHz, block size 64.
|
|
|
06-18-2019, 12:31 PM
|
#26
|
Administrator
Join Date: Jan 2005
Location: NYC
Posts: 15,721
|
Aha, just figured it out, this is not a bug!
In the case where you have sine wave, certain RMS window sizes are exact multiples of the period of the frequency.
For 500HZ, 5ms and 2ms are both exact multiples of the period. In this case, the RMS window output is constant, so you get no harmonics. If you set the RMS window size via the slider, it doesn't give you *exactly* 5ms or 2ms, even if it shows it (it will be very close to that value but not precisely that value).
So I guess for consistency's sake one could have tweaking the slider round the actual value to the text value displayed, but meh...
|
|
|
06-18-2019, 01:12 PM
|
#27
|
Banned
Join Date: Aug 2007
Location: Too close to Charlotte, NC
Posts: 3,554
|
So then this behavior should also be observed in other compressors?
|
|
|
06-18-2019, 01:21 PM
|
#28
|
Human being with feelings
Join Date: Feb 2014
Posts: 310
|
Quote:
Originally Posted by Justin
Aha, just figured it out, this is not a bug!
In the case where you have sine wave, certain RMS window sizes are exact multiples of the period of the frequency.
For 500HZ, 5ms and 2ms are both exact multiples of the period. In this case, the RMS window output is constant, so you get no harmonics. If you set the RMS window size via the slider, it doesn't give you *exactly* 5ms or 2ms, even if it shows it (it will be very close to that value but not precisely that value).
So I guess for consistency's sake one could have tweaking the slider round the actual value to the text value displayed, but meh...
|
That's odd... I've just tried it and both 5ms and 2ms produce the harmonics (whether typed or not), but 10ms (and any multiples of 10) doesn't when typed in.
|
|
|
06-18-2019, 01:32 PM
|
#29
|
Human being with feelings
Join Date: Oct 2009
Posts: 164
|
Quote:
Originally Posted by Justin
Aha, just figured it out, this is not a bug!
In the case where you have sine wave, certain RMS window sizes are exact multiples of the period of the frequency.
For 500HZ, 5ms and 2ms are both exact multiples of the period. In this case, the RMS window output is constant, so you get no harmonics. If you set the RMS window size via the slider, it doesn't give you *exactly* 5ms or 2ms, even if it shows it (it will be very close to that value but not precisely that value).
So I guess for consistency's sake one could have tweaking the slider round the actual value to the text value displayed, but meh...
|
Justin, you may be right, most probably are.
For 500 Hz sine, no matter what RMS Window size I enter in whole numbers using text in the box, from 0 to 1000 ms (the maximum value if one uses the slider), we get no harmonics, even if you use values like 821 ms.. Almost as if, if your assertion is correct, the multiple is based on whole values divisible by 1 i.e all whole numbers between 0 and 1000 ms.
So since this appears to be an issue with a congruence of whole numbers (in frequency and RMS Window size), I went further and tried out the following.
1. Used a whole number frequency like 500 hz.
2. Used a number with decimals in the RMS Window size - like 5.1 or 66.8 or 723.4
And in this instance all is well - we get harmonics....
But there is one more issue, with whole number sine wave frequencies, if you use any RMS Size value with a decimal of .01, such as 23.01 - it behaves just as if you entered a whole number in the RMS Size and voila - no more harmonics. But if I use a decimal of .02 or higher, all is well.
At the very least this second issue is a bug... 1.01 should not round down to a whole number if 1.02 does not round down...
Certainly there is something to be resolved on this "minor" rounding down issue.
I appreciate your direct contact on this issue, and others.
Do have a good think of a comprehensive way to fix all of the above, so it all works as expected, no matter what RMS window is set..... (from the end user's perspective - who definitely expects compression to work as intended, with all settings).
Since it's not a major issue suggest you take time to look at it in depth, so that rather than a quick fix, we get a permanent consistent fix that ties in with expectations, even if we have to wait a bit longer for the fix to be coded, tested and released.
Thanks for the anticipated changes.
|
|
|
06-18-2019, 01:35 PM
|
#30
|
Human being with feelings
Join Date: Jan 2012
Location: Germany
Posts: 1,130
|
I can confirm Justin's observation. Try it with a 1 kHz sinewave and RMS values like 1 ms, 2 ms, 3 ms...
If I use Melda's MCompressor it doesn't behave the same way. It still distorts at 1 or 2 ms for example. There is less overall distortion going on in ReaComp though with the same parameters:
Here ReaComp and MCompressor both are set to:
Threshold = -30 dB
Attack/Release = 0 ms
RMS = 0 ms
Ratio = 2:1
Knee = Hard
|
|
|
06-18-2019, 01:36 PM
|
#31
|
Banned
Join Date: Aug 2007
Location: Too close to Charlotte, NC
Posts: 3,554
|
An tici pay yay shun, it's making me wait...
It's keeping me way way way iting.
And after this, maybe a ReaEq version 1.5, with 20% less cramping at Nyquist.
(Sorry, couldn't help myself.)
|
|
|
06-18-2019, 01:40 PM
|
#32
|
Human being with feelings
Join Date: Oct 2009
Posts: 164
|
Quote:
Originally Posted by JHughes
So then this behavior should also be observed in other compressors?
|
I have tried this out in other compressors and all the others behave as expected.
If you have a look at Justin's explanation, one of the differences b/w Reacomp and the few compressors I tested today, is that in the other compressors, there is no RMS window size, which Reacomp allows us to set, and in doing so some values create anomalies (in my experience - whole numbers do this when used with signal frequencies which are also in whole numbers).
I am confident that as Justin has had a look in, and he understands whats happening in the code, this observation will be resolved.
|
|
|
06-18-2019, 01:44 PM
|
#33
|
Human being with feelings
Join Date: Oct 2009
Posts: 164
|
Quote:
Originally Posted by timothys_monster
I can confirm Justin's observation. Try it with a 1 kHz sinewave and RMS values like 1 ms, 2 ms, 3 ms...
If I use Melda's MCompressor it doesn't behave the same way. It still distorts at 1 or 2 ms for example. There is less overall distortion going on in ReaComp though with the same parameters:
Here ReaComp and MCompressor both are set to:
Threshold = -30 dB
Attack/Release = 0 ms
RMS = 0 ms
Ratio = 2:1
Knee = Hard
|
What tool did you use to capture this as a "movie"? So much better than having to use multiple screen shots as I did earlier. Love it.
|
|
|
06-18-2019, 01:45 PM
|
#34
|
Banned
Join Date: Aug 2007
Location: Too close to Charlotte, NC
Posts: 3,554
|
|
|
|
06-18-2019, 01:47 PM
|
#35
|
Administrator
Join Date: Jan 2005
Location: NYC
Posts: 15,721
|
While 1ms is not a multiple of the period of 500Hz, the RMS power is (because it captures half of a waveform, whose RMS power is the same as the whole cycle)... so yeah it holds up.
The RMS size is converted to samples and truncated, so at 44100Hz: 1ms is 44 samples, 1.01ms and 1.02ms are also 44 samples, 1.03ms is 45 samples...
Last edited by Justin; 06-18-2019 at 01:52 PM.
|
|
|
06-18-2019, 02:06 PM
|
#36
|
Banned
Join Date: Aug 2007
Location: Too close to Charlotte, NC
Posts: 3,554
|
Boom! Saved by math. Thanks Justin.
|
|
|
06-18-2019, 02:09 PM
|
#37
|
Human being with feelings
Join Date: Jan 2012
Location: Germany
Posts: 1,130
|
Quote:
Originally Posted by JHughes
|
Yes.
Quote:
While 1ms is not a multiple of the period of 500Hz, the RMS power is (because it captures half of a waveform, whose RMS power is the same as the whole cycle)... so yeah it holds up.
The RMS size is converted to samples and truncated, so at 44100Hz: 1ms is 44 samples, 1.01ms and 1.02ms are also 44 samples, 1.03ms is 45 samples...
|
Strange though that other plugins (like MCompressor) do still distort at those values.
Is there a simple explanation for it?
|
|
|
06-18-2019, 02:12 PM
|
#38
|
Administrator
Join Date: Jan 2005
Location: NYC
Posts: 15,721
|
Quote:
Originally Posted by timothys_monster
Yes.
Strange though that other plugins (like MCompressor) do still distort at those values.
Is there a simple explanation for it?
|
They might be using an averaging-RMS filter vs a windowed RMS? There could be a dozen reasons...
|
|
|
06-19-2019, 03:46 AM
|
#39
|
Human being with feelings
Join Date: Aug 2015
Posts: 2,969
|
Quote:
Originally Posted by Justin
Aha, just figured it out, this is not a bug!
In the case where you have sine wave, certain RMS window sizes are exact multiples of the period of the frequency.
|
Yes. That.
I guess the RMS window is rectangular? Perhaps it shouldn't be?
whether this makes any difference on "real-world" signals (as opposed to pure sine) is beyond me.
__________________
it's meant to sound like that...
Last edited by jrk; 06-19-2019 at 03:54 AM.
|
|
|
06-19-2019, 04:10 AM
|
#40
|
Human being with feelings
Join Date: Aug 2015
Posts: 2,969
|
... or weighting, like Exponential Weighting, but obv that's a sh*tload more maths.
Bug or not? If ReaComp is supposed to emulate hardware comps, then yes it is, since they wouldn't typically show this behaviour. Otherwise, not.
__________________
it's meant to sound like that...
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 06:24 PM.
|