Old 11-24-2014, 08:51 AM   #1
Breeder
Human being with feelings
 
Breeder's Avatar
 
Join Date: Nov 2010
Location: Croatia
Posts: 2,390
Default Analyze and normalize loudness with SWS

If you noticed, previous versions of SWS did include certain tools for loudness measurement and normalization. After adding additional functionality and writing some documentation for the latest SWS pre-release, I think it's time to announce it on the forums.

Features:
  • Measure integrated, true peak, range, maximum short-term and maximum momentary loudness of selected tracks and items
  • Draw short-term and momentary loudness to selected envelope
  • Export analyzed data to file or clipboard
  • Various loudness unit formats (LUFS of LU with user set offset)
  • Tight integration of loudness analyzer and rest of the project (analyzer can follow item/track selection, move arrange to analyzed items and tracks, set edit cursor to true peak location etc...)
  • Normalize selected items/tracks to target LUFS or LU

Screenshots:




Download and documentation:
Download here
Documentation can be found here

Donations:
A lot of effort has been invested in this. If you seriously use it, please consider supporting the developer. Thanks!
__________________
REAPER ReWorked: An elegant and self-sufficient all-around REAPER configuration
Other stuff

Last edited by Breeder; 09-03-2020 at 03:19 PM.
Breeder is offline   Reply With Quote
Old 11-24-2014, 10:54 AM   #2
Kihoalu
Human being with feelings
 
Join Date: Jan 2007
Location: Silicon Gulch
Posts: 543
Default

.

Thanks for this update Breeder!

As you know, many of us are looking for good EBU R128 tools.

Is the integrated LUFS fully EBU R128 compliant?

Are the "momentary" and "short term" measurements RMS?
and, if so, what are the RMS time intervals for each?

Thanks...
...El Lorenzo de Onda Sonora

.
__________________
Inundated by a Perfect Storm of Gluten-Free Artisanal Bespoke Quinoa Avocado-Toast Toilet Paper.
Mahope Kakou (Later Dudes)...
Kihoalu is offline   Reply With Quote
Old 11-24-2014, 11:46 AM   #3
Kihoalu
Human being with feelings
 
Join Date: Jan 2007
Location: Silicon Gulch
Posts: 543
Default

.

OK - I did some looking at the SWS site, and yes, since the loudness measurement uses libebur128, one would assume it is fully R128 compliant.

Still do not know the time intervals for "momentary" and "short term".

Are these also defined in the EBU spec??

.
__________________
Inundated by a Perfect Storm of Gluten-Free Artisanal Bespoke Quinoa Avocado-Toast Toilet Paper.
Mahope Kakou (Later Dudes)...
Kihoalu is offline   Reply With Quote
Old 11-24-2014, 12:12 PM   #4
Kihoalu
Human being with feelings
 
Join Date: Jan 2007
Location: Silicon Gulch
Posts: 543
Default

.

Yes - EBU spec 3341 section 2.2:

"Momentary" = 400mS and "Short Term" = 3S

(for those who do not already have the R128 specs memorized)

All questions answered, now gotta try out the tools!

I want to be able to batch process a few dozen files at a time.

.
__________________
Inundated by a Perfect Storm of Gluten-Free Artisanal Bespoke Quinoa Avocado-Toast Toilet Paper.
Mahope Kakou (Later Dudes)...
Kihoalu is offline   Reply With Quote
Old 11-24-2014, 03:30 PM   #5
Breeder
Human being with feelings
 
Breeder's Avatar
 
Join Date: Nov 2010
Location: Croatia
Posts: 2,390
Default

Feature is 100% compliant with R128 and all test files (which you can get here) do pass when analyzed
Breeder is offline   Reply With Quote
Old 11-24-2014, 05:15 PM   #6
Seventh
Human being with feelings
 
Seventh's Avatar
 
Join Date: Sep 2010
Location: Finland
Posts: 776
Default

Amazing set of tools in the latest SWS extensions! Thank you very much for the hard work you've done!
__________________
Grey, flat and minimal theme for Reaper: Symbiosis
Seventh is offline   Reply With Quote
Old 11-24-2014, 06:06 PM   #7
hopi
Human being with feelings
 
hopi's Avatar
 
Join Date: Oct 2008
Location: Right Hear
Posts: 15,452
Default

think I'd better move to Croatia... with you and ED there perhaps my brain would grow a brain! Thanks for all you do!!!
__________________
...should be fixed for the next build... http://tinyurl.com/cr7o7yl
https://soundcloud.com/hopikiva
hopi is offline   Reply With Quote
Old 11-24-2014, 06:48 PM   #8
Soli Deo Gloria
Human being with feelings
 
Soli Deo Gloria's Avatar
 
Join Date: Oct 2013
Location: Buenos Aires, Argentina
Posts: 1,148
Default

All of this is of the utmost importance, Breeder. Infinite thanks for such a great work!!!
Soli Deo Gloria is offline   Reply With Quote
Old 11-25-2014, 10:48 PM   #9
ericzang
Human being with feelings
 
ericzang's Avatar
 
Join Date: Mar 2014
Location: Phoenix, AZ
Posts: 455
Default

Wow, great thanks so much! Is it recommended to use the beta pre release for this to work properly?
ericzang is offline   Reply With Quote
Old 11-25-2014, 10:55 PM   #10
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,896
Default

I don't want to install a step back to check, but I think the extended functionality is only in the beta (TP, LU refs other than LUFS, loudness data exporter). I have the beta installed and haven't found anything worse than text alignment nitpicks

Awesome job Breeder, and I haven't touched the new tempo stuff yet...





>
__________________
Nathan, Lincoln, UK. | Item Marker Tool. (happily retired) | Source Time Position Tool. | CD Track Marker Tool. | Timer Recording Tool. | dB marks on MCP faders FR.
planetnine is offline   Reply With Quote
Old 11-25-2014, 10:58 PM   #11
ericzang
Human being with feelings
 
ericzang's Avatar
 
Join Date: Mar 2014
Location: Phoenix, AZ
Posts: 455
Default

good to know, thanks!
ericzang is offline   Reply With Quote
Old 11-26-2014, 07:47 AM   #12
Breeder
Human being with feelings
 
Breeder's Avatar
 
Join Date: Nov 2010
Location: Croatia
Posts: 2,390
Default

Quote:
Originally Posted by planetnine View Post
(TP, LU refs other than LUFS, loudness data exporter). I have the beta installed and haven't found anything worse than text alignment nitpicks

Also, one cool new feature is that analyzed data is stored in project files - this wasn't the case with previous versions.
Text alignment? Are you referring to help for wildcards? I guess this should get fixed, but it's such a boring thing to do...lol


To anyone else: don't be afraid of the beta - we are usually very careful about compatibility and if something gets messed it will always be in the whatsnew. Of course, something can always go terribly wrong but that risk exists with official versions too. That's software development
Breeder is offline   Reply With Quote
Old 04-01-2015, 02:20 PM   #13
vanhaze
Human being with feelings
 
vanhaze's Avatar
 
Join Date: Jul 2012
Location: Netherlands
Posts: 5,219
Default

Incredible awesome and useful , wow !!
vanhaze is offline   Reply With Quote
Old 04-03-2015, 10:48 AM   #14
RobinGShore
Human being with feelings
 
Join Date: May 2013
Location: New York
Posts: 634
Default

This is great!!!!!!!!! Thanks so much. One small suggestion if I may be so bold. Right now when analyzing truepeaks it only shows me the highest truepeak value in the item/track. It would be great if I could see a list of timecodes for all truepeak values that exceed some user specified number. It would be even greater if these spots could be flagged with markers in the timeline.
RobinGShore is offline   Reply With Quote
Old 04-03-2015, 12:55 PM   #15
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,896
Default

That could have the potential to create an awful lot of markers

I think maybe the top n TP peaks -up to you how much work you give yourself then


Edit: I think this could be done with a script outside of Breeder's Loudness Tool, save cluttering it up.



>
__________________
Nathan, Lincoln, UK. | Item Marker Tool. (happily retired) | Source Time Position Tool. | CD Track Marker Tool. | Timer Recording Tool. | dB marks on MCP faders FR.
planetnine is offline   Reply With Quote
Old 04-03-2015, 01:33 PM   #16
babag
Human being with feelings
 
Join Date: Nov 2009
Posts: 2,027
Default

this sounds like another example of where item markers, as distinct from timeline markers, could be useful. having markers contained within items, as stretch markers currently are, could help provide this functionality and info while avoiding timeline clutter.
babag is offline   Reply With Quote
Old 04-03-2015, 01:36 PM   #17
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,896
Default

Quote:
Originally Posted by babag View Post
this sounds like another example of where item markers, as distinct from timeline markers, could be useful. having markers contained within items, as stretch markers currently are, could help provide this functionality and info while avoiding timeline clutter.


Wandering OT a bit, but I'm up for that



>
__________________
Nathan, Lincoln, UK. | Item Marker Tool. (happily retired) | Source Time Position Tool. | CD Track Marker Tool. | Timer Recording Tool. | dB marks on MCP faders FR.
planetnine is offline   Reply With Quote
Old 04-12-2015, 05:39 PM   #18
Dobber
Human being with feelings
 
Join Date: Apr 2015
Posts: 3
Default Loudness Normalization

Thanks for this great tool!

One question: What is the tool actually doing when you normalize the loudness of a track? I haven't seen it anywhere in the documentation. Is it just a gain adjustment, or does it change the waveform, or what?

Thanks!
Dobber is offline   Reply With Quote
Old 09-09-2015, 11:22 AM   #19
Jae.Thomas
Human being with feelings
 
Join Date: Jun 2006
Posts: 21,912
Default

awesome! thank you!
__________________
Eat a FUCKING RUEBEN, Load WINDOWS 11, and SHUT THE FUCK UP
- Covid vaccinated and just fine.
Jae.Thomas is offline   Reply With Quote
Old 09-09-2015, 12:45 PM   #20
G-Sun
Human being with feelings
 
G-Sun's Avatar
 
Join Date: May 2010
Location: Norway
Posts: 7,308
Default

You're really a coding hero Martin
__________________
Reaper x64, win 8.1
My music on Bandcamp
G-Sun is offline   Reply With Quote
Old 09-09-2015, 02:47 PM   #21
Breeder
Human being with feelings
 
Breeder's Avatar
 
Join Date: Nov 2010
Location: Croatia
Posts: 2,390
Default

Quote:
Originally Posted by Dobber View Post
Thanks for this great tool!

One question: What is the tool actually doing when you normalize the loudness of a track? I haven't seen it anywhere in the documentation. Is it just a gain adjustment, or does it change the waveform, or what?

Thanks!
Sorry for replying this late, but I've just seen your question.

Normalizing simply checks the LUFS level of the signal and adjusts gain of item/track appropriately. Because one unit of LUFS is equal to one dB it simply adjust gain by the difference between measured loudness and target LUFS.

Theoretically, this may not work perfectly every time due to gating applied when measuring integrated loudness. However, in real-life situations this shouldn't happen in all but extreme cases.
If you normalize from loudness dialog (it's better to use full dialog instead of separate actions because dialog caches measurements so normalizing doesn't have to remeasure loudness of an already analyzed object), target can get reanalyzed upon normalizing (if you enable the option) so you can always know the exact effective loudness.


Quote:
Originally Posted by G-Sun View Post
You're really a coding hero Martin
Thank you for the kind words
Breeder is offline   Reply With Quote
Old 09-10-2015, 06:33 AM   #22
boka
Human being with feelings
 
boka's Avatar
 
Join Date: May 2007
Location: Hungary,Europe
Posts: 800
Default

Is there any difference between this one and the loudness module of RX4 ?
__________________
15" Retina MBP, Adobe CC, UA Apollo
boka is offline   Reply With Quote
Old 10-21-2015, 08:40 AM   #23
Stomach Cheese
Human being with feelings
 
Join Date: Oct 2015
Posts: 4
Default

Wow this looks really great. Is it also possible to automate this feature and integrate it with custom actions. I'm imagining that this could work extremely well obviously with setting correct input gains, but could also tremendously help with tempo mapping and any sort of automation involving transients.

Would it be possible to integrate this as a type of auto-gain?
Stomach Cheese is offline   Reply With Quote
Old 11-28-2015, 09:07 PM   #24
basementjack
Human being with feelings
 
Join Date: Oct 2006
Location: Chicago
Posts: 33
Default Empty Track List

I'm running Reaper 5.1 and SWS 2.8.2
My "Analyze Loudness" dialog has no tracks - Is this a bug or do I need to add tracks to it (if so, how?)
- Jack
basementjack is offline   Reply With Quote
Old 11-29-2015, 08:33 AM   #25
Paul99
Human being with feelings
 
Join Date: Aug 2014
Location: Netherlands
Posts: 838
Default

You have to select one or more items first.
Paul99 is offline   Reply With Quote
Old 02-22-2016, 07:03 PM   #26
tubegeek
Human being with feelings
 
tubegeek's Avatar
 
Join Date: Nov 2015
Location: Brooklyn NY
Posts: 18
Default

Is it possible to analyze a mix? I didn't get results when I selected the Master track, am I doing something wrong? Well, I got results, it was -infinity and it came back immediately. On a track containing audio, I got something more like I expected.

I suppose the thing to do would be to create a project with one track containing a render of the Master track, but is there another way to check Master tracks in progress that I'm not thinking of?
tubegeek is offline   Reply With Quote
Old 02-22-2016, 08:42 PM   #27
lachrimae
Human being with feelings
 
lachrimae's Avatar
 
Join Date: May 2010
Location: Austin, TX
Posts: 790
Default

Yep, you're correct that you need some form of rendered master track (item) in order to analyze it using SWS Loudness.

You could select all tracks and move them to a sub-project, then also cut/paste any fx from your master, moving them to the master in the new sub-project.

Your sub-project would be used for any final mixing/mastering and the primary project tab would only be used for SWS loudness measurement.

Edit:
Perhaps someone else can confirm but there seems to be a small bug when re-taking loudness measurements on a rendered sub-project track.
If you've already analyzed a sub-project track that's been updated, you have to click away from it and click the analyze and then select the track again in order to get an updated analysis.

Last edited by lachrimae; 02-22-2016 at 08:51 PM.
lachrimae is offline   Reply With Quote
Old 02-23-2016, 02:55 AM   #28
heda
Human being with feelings
 
heda's Avatar
 
Join Date: Jun 2012
Location: Spain
Posts: 6,250
Default

@lachrimae I don't know about that bug, but you can just use items instead of tracks. There is an option to use selected items instead of selected tracks. Try it.
heda is offline   Reply With Quote
Old 02-23-2016, 06:35 AM   #29
tubegeek
Human being with feelings
 
tubegeek's Avatar
 
Join Date: Nov 2015
Location: Brooklyn NY
Posts: 18
Default

Quote:
Originally Posted by lachrimae View Post
Yep, you're correct that you need some form of rendered master track (item) in order to analyze it using SWS Loudness.
Thank you.
tubegeek is offline   Reply With Quote
Old 02-23-2016, 07:22 AM   #30
lachrimae
Human being with feelings
 
lachrimae's Avatar
 
Join Date: May 2010
Location: Austin, TX
Posts: 790
Default

Quote:
Originally Posted by heda View Post
@lachrimae I don't know about that bug, but you can just use items instead of tracks. There is an option to use selected items instead of selected tracks. Try it.
Hola heda,

Unfortunately I get the same result with items as well. So you're not having to de-select an updated sub-project rendered item and re-select it in order to have SWS-L update it's analysis?

Here's the item behavior:
lachrimae is offline   Reply With Quote
Old 02-23-2016, 07:37 AM   #31
heda
Human being with feelings
 
heda's Avatar
 
Join Date: Jun 2012
Location: Spain
Posts: 6,250
Default

Oh I know what may be wrong. There is a cache in the program that doesn't reanalyze the item again if there is no need. But this was created before the sub-projects. So it may have problems knowing when the subproject is updated.
heda is offline   Reply With Quote
Old 03-06-2019, 06:08 AM   #32
noisebud
Human being with feelings
 
Join Date: Oct 2010
Posts: 3
Default More normalization options...

Hey,

I just started to try this out, amazing job, makes my life so much easier.

Would it be possible to add more normalization options?
I'm thinking:
Normalize to a specific dPTP (ie -1dBTP)
Normalize to a Max short-term
Normalize to a Max momentary

That would be great!
noisebud is offline   Reply With Quote
Old 03-06-2019, 07:34 AM   #33
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 10,636
Default

There are scripts for these in my ReaPack repository (see link in my signature).

nofish is offline   Reply With Quote
Old 04-05-2019, 09:59 AM   #34
Kearley
Human being with feelings
 
Join Date: Sep 2008
Posts: 344
Default

Jumping in here after a long time away from Reaper.

I need a way to normalize to -16 LUFS while keeping all truepeaks under -2. I'm having trouble wrapping my head around this.

I can use the SWS action to set my LUFS, but then I need to adjust gain to get my peaks below -2.. and then obviously my LUFS is wrong.
I thought about setting my LUFS to -14 and then turning everything down 2db.. but this assumes all of my peaks are a max of 2db over... which often won't be the case.

Does anyone have any advice? Thanks in advance.. this would save me hours in my exporting.
__________________
kearley.bandcamp.com/

Last edited by Kearley; 04-05-2019 at 10:08 AM.
Kearley is offline   Reply With Quote
Old 04-05-2019, 02:05 PM   #35
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 10,636
Default

If you've normalized to -16 LUFS and have peaks going > -2 you need to reduce dynamics. Adjusting gain doesn't do, as you noticed. You could use a (true peak) limiter with ceiling set to -2 (and no makeup gain).
nofish is offline   Reply With Quote
Old 04-05-2019, 02:28 PM   #36
Kearley
Human being with feelings
 
Join Date: Sep 2008
Posts: 344
Default

Thanks nofish; But if I use the SWS action to set my track at exactly -16 and then throw on a peaklimiter set to -2, I'm reducing my LUFS a little right? (putting me back to step 1)

I'm thinking I should master hot (-13 or whatever) using a peaklimiter at -1 or -2 and then use the SWS action to pull it down to exactly -16. This would get the job done with little guesswork right?

Really, I just need the easiest way to hit -16 exactly and keep it below -2 peak.
(and then using the render items tool)
__________________
kearley.bandcamp.com/
Kearley is offline   Reply With Quote
Old 04-05-2019, 02:47 PM   #37
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 10,636
Default

Quote:
Originally Posted by Kearley View Post
Thanks nofish; But if I use the SWS action to set my track at exactly -16 and then throw on a peaklimiter set to -2, I'm reducing my LUFS a little right? (putting me back to step 1)
Hm, yes, didn't think about this to be honest.
Though as LU is quite similar to RMS, working on the average level, I'm not sure how much chopping off some peaks would matter (assuming the peak limiter wouldn't have to work really hard).

Quote:
I'm thinking I should master hot (-13 or whatever) using a peaklimiter at -1 or -2 and then use the SWS action to pull it down to exactly -16. This would get the job done with little guesswork right?
Yes, I think that should work.
You could maybe test how much the peaks chopping really matters so you wouldn't need to go as hot as -13 or so if keeping as much dynamics as possible is a concern.
nofish is offline   Reply With Quote
Old 04-05-2019, 02:50 PM   #38
Kearley
Human being with feelings
 
Join Date: Sep 2008
Posts: 344
Default

Ya, exactly.. with a bit of experience, I'd have a ballpark AND I wouldn't need to go back and forth to correct.
__________________
kearley.bandcamp.com/
Kearley is offline   Reply With Quote
Old 04-05-2019, 03:39 PM   #39
heda
Human being with feelings
 
heda's Avatar
 
Join Date: Jun 2012
Location: Spain
Posts: 6,250
Default

This is why I created Render LUFS script.
It renders in various passes adjusting the desired plugin parameter on each pass to find the perfect value that results in the desired Loudness.

here is a gif of the latest version for REAPER v5.974 since it takes some advantages of the new API changes
heda is offline   Reply With Quote
Old 04-05-2019, 06:02 PM   #40
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 10,636
Default

^^ This is quite clever.
nofish is offline   Reply With Quote
Reply

Thread Tools
Display Modes

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 02:22 PM.


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