Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Bug Reports

Reply
 
Thread Tools
Old 03-20-2023, 02:24 PM   #1
sws
Code Monkey
 
sws's Avatar
 
Join Date: Sep 2007
Location: Madison, WI
Posts: 857
Default ReaVerb Volume changes with sample rate

When you change your project sample rate from 96k to 48k (or render to a sample rate that doesn't match the hardware), the volume of ReaVerb changes significantly, 5db!

This is Reaper 6.78, Win64. Changing resample mode doesn't fix this.

To test, make a new project, add a click source or some audio, then add ReaVerb with a random impulse. Go full wet so it's easy to see. Swap project or hardware sample rates and the volume will change.

The spectral display in ReaVerb changes as well, but strangely the smaller view in 96k is the louder version. (Note - I think the spectrum should always scale to 20kHz anyway.)

sws is offline   Reply With Quote
Old 03-25-2023, 12:57 PM   #2
sws
Code Monkey
 
sws's Avatar
 
Join Date: Sep 2007
Location: Madison, WI
Posts: 857
Default

I gotta give this one a bump, especially since Reaper forces 44.1 downsamples as required when you bounce to MP3, forcing me to mix in 44.1 44.1/48 no matter what to hear what's actually rendered.

(*edited to fix my mistake)
sws is offline   Reply With Quote
Old 03-25-2023, 01:43 PM   #3
future-bit
Human being with feelings
 
Join Date: May 2008
Posts: 165
Default

I confirm this. I recently encountered similar behavior in project for IVR. I was unable to use my 96 kHz impulse in the 8 kHz project. No reverb (though the Acon Convolve worked fine).
future-bit is offline   Reply With Quote
Old 03-25-2023, 03:16 PM   #4
Fergler
Human being with feelings
 
Fergler's Avatar
 
Join Date: Jan 2014
Posts: 5,541
Default

Quote:
Originally Posted by sws View Post
I gotta give this one a bump, especially since Reaper forces 44.1 when you bounce to MP3, forcing me to mix in 44.1 no matter what.
Just to clarify, when you say bounce, are you using Render or a feature like apply FX to items or glue? These can have different settings, which you define in Project Settings > Media. MP3 supports lots of sample rates up to 48k, but not all decoders support them. But in no way does Reaper force you to 44.1 unless it's been told to.

From LAME 3.1 docs:
"When the input sample rate is greater than 48 kHz, LAME will resample it to a maximum of 48 kHz (the maximum supported by MP3). In VBR modes 7 to 9.999, and at CBR bitrates below 104 kbps, the input is resampled to 32000, 24000, 22050, 16000, 12000, 11025, or 8000, depending on the target quality level or bitrate."
Fergler is offline   Reply With Quote
Old 03-25-2023, 10:51 PM   #5
sws
Code Monkey
 
sws's Avatar
 
Join Date: Sep 2007
Location: Madison, WI
Posts: 857
Default

Quote:
Originally Posted by Fergler View Post
Just to clarify, when you say bounce, are you using Render or a feature like apply FX to items or glue? These can have different settings, which you define in Project Settings > Media. MP3 supports lots of sample rates up to 48k, but not all decoders support them. But in no way does Reaper force you to 44.1 unless it's been told to.
Apologies, I wasn't very clear. If your render an MP3 when your project sample rate is 96k, you get a 48k MP3 (as that's the max supported rate.) 88.2k project rate gets you a 44.1k MP3.

I fiddled a bit and found when rendering the following:
96k project, 48k render - decreased ReaVerb level
96k project, 48k render w/ use proj rate for mixing - matches 96k playback
96k project, 96k render - matches 96k playback, MP3 is 48k
48k project, 48k render - playback and render have decreased ReaVerb
sws is offline   Reply With Quote
Old 03-25-2023, 11:59 PM   #6
future-bit
Human being with feelings
 
Join Date: May 2008
Posts: 165
Default

Incorrect ReaVerb volume occurs if the frequency of the IR file does not match the frequency of the project or render.

I tried "FX instance oversampling" which improves the situation but not quite.

Here is a 192 kHz project, IR 192 kHz volume -7.2 db (look at the IR volume in the ReaVerb window)
I change the project frequency to 8 kHz, the IR volume drops to -22.6 db.
I set the FX instance oversampling to 192 kHz, the IR output goes up to -7.5 db. But the IR frequency is 128 kHz (that's 0.3 db less and I can't set the output frequency to 192 kHz to get -7.2 db volume).

future-bit is offline   Reply With Quote
Old 03-26-2023, 09:44 PM   #7
sws
Code Monkey
 
sws's Avatar
 
Join Date: Sep 2007
Location: Madison, WI
Posts: 857
Default

Thanks future-bit for confirming and getting closer to the root of the problem.
sws is offline   Reply With Quote
Old 03-28-2023, 06:46 PM   #8
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 16,810
Default

hmm I can't duplicate this at all (I've tried various impulses and samplerates and SRC modes), with the "Normal" mode of the file importer (which I see you have selected). Can you provide a minimal test project and reaper.ini? Thanks

Quote:
I gotta give this one a bump, especially since Reaper forces 44.1 downsamples as required when you bounce to MP3, forcing me to mix in 44.1 44.1/48 no matter what to hear what's actually rendered.
Hmm in recent REAPER versions you can do everything at 96k, render to mp3 @ 96khz, and it'll automatically apply SRC as the last step (then targetting 48k iirc).

Also: if you set the "Use project samplerate for mixing..." option in the render dialog, then the resampling should happen as the last step, regardless of the format.

Last edited by Justin; 03-28-2023 at 08:20 PM.
Justin is online now   Reply With Quote
Old 03-28-2023, 11:00 PM   #9
sws
Code Monkey
 
sws's Avatar
 
Join Date: Sep 2007
Location: Madison, WI
Posts: 857
Default

Thanks Justin, I emailed an example project.
sws is offline   Reply With Quote
Old 03-29-2023, 04:43 AM   #10
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 16,810
Default

Thanks! There's something special about this impulse response that is making it do it (if I swap it out for others it works as expected). Perhaps it's a DC offset? I'll analyze it more after some coffee
Justin is online now   Reply With Quote
Old 03-29-2023, 05:22 AM   #11
future-bit
Human being with feelings
 
Join Date: May 2008
Posts: 165
Default

Quote:
Originally Posted by Justin View Post
Thanks! There's something special about this impulse response that is making it do it (if I swap it out for others it works as expected). Perhaps it's a DC offset? I'll analyze it more after some coffee
I have noticed that the problem occurs with a certain combination of project frequency, IR frequency and output device frequency in the Audio device settings.

If my settings are:

- IR frequency 192 kHz
- project frequency 8 kHz
- I chose WaveOut (because my card only supports 44.1 and 48 kHz)
- I enabled Allow project to override sample rate in Audio device settings

then I hear a strong decrease in the amount of reverb.

If I uncheck Allow project to override sample rate in Audio device settings, then the project plays at 44.1 kHz and there is no problem. But the project won't play at 8 kHz either, because my card doesn't support 8 kHz via ASIO.
future-bit is offline   Reply With Quote
Old 03-29-2023, 05:40 AM   #12
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 16,810
Default

8KHz, eep. I’d recommend processing everything at 44k and resampling as the final step.

I think (in sws’s case) it has to do with the very high frequency content of the impulses. Looking in to workarounds…
Justin is online now   Reply With Quote
Old 03-29-2023, 08:50 AM   #13
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 16,810
Default

Ah, ok, there are some qualities of this impulse that makes the normalization code unused, fixing (need to figure out the best way to preserve compat too).
Justin is online now   Reply With Quote
Old 03-29-2023, 02:19 PM   #14
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 16,810
Default

Fixing coming soon!

Also there seems to be a bug in the click source in certain instances, debugging that now, probably better to test against a .wav file.
Justin is online now   Reply With Quote
Old 11-02-2025, 08:59 AM   #15
tehsux0r
Human being with feelings
 
Join Date: Jun 2008
Location: United Kingdom
Posts: 104
Default Sorry for the thread necro...

...but this problem still exists as of REAPER v6.63. When I change the operating SR of REAPER in a given project, ReaVerb's output amplitude changes, and I think I know why.

I don't think the normalisation is the problem - it's a symptom of the problem, which is the incorrect idea that the IR's amplitude should be held constant when it's resampled to the operating rate for the FX buss. The line of argument goes like this:

- a signal at e.g. 48 kHz should produce the same reverb amplitude as the same (bandlimited) signal at e.g. 96 kHz
- BUT convolution involves summation over the IR to produce each output sample
- SO to get the same reverb amplitude, you need to amplitude-scale the IR data such that its SUM (corresponding to the amount of reverb amplitude generated per input sample) is the same irrespective of the rate you've resampled it to
- e.g. upsampling the IR by 2 x will cause its sum to double if you keep its amplitude constant
- therefore, the IR data should be multiplied by a factor of SampleRate(IR_data)/SampleRate(processing) when resampling the IR
- this will (correctly) break amplitude invariance and replace it with sum invariance (i.e. invariance of output amplitude) once it's convolved

I did this from memory based on my own DSP coding from a few years back, but it hit me over the head every time I did something convolution-based, so I think I'm remembering correctly.

PS I'm taking some liberties using the term "sum" here - I really mean something more like "square root of the energy at a given frequency", but it doesn't affect the conclusion.
tehsux0r is offline   Reply With Quote
Old 11-02-2025, 09:07 AM   #16
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 5,353
Default

Because the original post stated
Quote:
This is Reaper 6.78, Win64. Changing resample mode doesn't fix this.
then it is pretty expected that v6.68 has that bug, right?

EDIT:
Quote:
from v6.79 change log:
ReaVerb: fix gain issues with resampling of certain impulse response files
akademie is offline   Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 03:56 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.