Old 07-10-2021, 02:33 AM   #1
BartR
Human being with feelings
 
Join Date: Oct 2014
Location: Belgium
Posts: 748
Default API for LUFS

If not yet existing, I would like to have an API that enables me to get the following values of LUF(K)S second by second, from an item:

- To setup a peak threshold from which I can detect peaks
- Infinite All
- Short Term All
- Integrated EBU R128 (LUFS)
- Short Term EBU R128 (LUFS)
- Loudness Range EBU R128 (LU)
- True Peak (dBTP)
- Peak Count
- LeqM

Those values are required for Dolby Interchange Purposes
__________________
Bart R.
Reaper: always the last version.
O.S.: Windows 11
BartR is offline   Reply With Quote
Old 07-10-2021, 01:32 PM   #2
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: Apr 2020
Location: Leipzig
Posts: 2,871
Default

Dry rendering is meant for that. GetSetProjectInfo_String allows probably most if not all of it.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper
Bugreports&Docs notes please do here:https://github.com/Ultraschall/ultra...-reaper/issues - Donate, if you wish
Meo-Ada Mespotine is offline   Reply With Quote
Old 07-11-2021, 09:32 AM   #3
BartR
Human being with feelings
 
Join Date: Oct 2014
Location: Belgium
Posts: 748
Default

Quote:
Originally Posted by Meo-Ada Mespotine View Post
Dry rendering is meant for that. GetSetProjectInfo_String allows probably most if not all of it.
I tell you why I need this.
Having it, I can export a CSV file that can take place of the CSV made by Dolby Meter. Now it's out of production.
In Broadcasting environment, certain TVs are asking for this.

I had a long talk also with Julijan of Youlean (between the end of 2019 and beginning 2020). But he never went to a conclusion to make this.

Hence, now that Reaper has integrated the management of the LUFS, it's in the principle possible to get all the required data, to build THAT specific CSV.
And the work of many people out there, will be really saved!
__________________
Bart R.
Reaper: always the last version.
O.S.: Windows 11
BartR is offline   Reply With Quote
Old 07-11-2021, 09:37 AM   #4
Lynx_TWO
Human being with feelings
 
Lynx_TWO's Avatar
 
Join Date: Dec 2019
Location: St Petersburg FL
Posts: 462
Default

This is for real-time adjustment of the signal level without actually using a compressor yes? I can see how this could also be applicable across multiple applications, such as then having the ability to build a plugin that reads this information back and level a vocal across 300ms windows with a sine curve applied to the resulting data, without having to use a compressor or use processing power to process in real time.
Lynx_TWO is offline   Reply With Quote
Old 07-11-2021, 11:31 AM   #5
BartR
Human being with feelings
 
Join Date: Oct 2014
Location: Belgium
Posts: 748
Default

Quote:
Originally Posted by Lynx_TWO View Post
This is for real-time adjustment of the signal level without actually using a compressor yes? I can see how this could also be applicable across multiple applications, such as then having the ability to build a plugin that reads this information back and level a vocal across 300ms windows with a sine curve applied to the resulting data, without having to use a compressor or use processing power to process in real time.
Well it's an analysis that must come at the end of the chain.
As I explained in my previous intervention, it serves to create a report in CSV that contains the listed fields I mentioned in the opening thread.
__________________
Bart R.
Reaper: always the last version.
O.S.: Windows 11
BartR is offline   Reply With Quote
Old 07-12-2021, 09:48 AM   #6
Lynx_TWO
Human being with feelings
 
Lynx_TWO's Avatar
 
Join Date: Dec 2019
Location: St Petersburg FL
Posts: 462
Default

Quote:
Originally Posted by BartR View Post
Well it's an analysis that must come at the end of the chain.
As I explained in my previous intervention, it serves to create a report in CSV that contains the listed fields I mentioned in the opening thread.
Oh yes, but I could see there being a bunch of useful applications from that analysis.

The point being it would certainly be useful to have such an API
Lynx_TWO is offline   Reply With Quote
Old 07-12-2021, 02:41 PM   #7
BartR
Human being with feelings
 
Join Date: Oct 2014
Location: Belgium
Posts: 748
Default

Quote:
Originally Posted by Lynx_TWO View Post
Oh yes, but I could see there being a bunch of useful applications from that analysis.

The point being it would certainly be useful to have such an API
Indeed.

I know that an PAI for the LUFS is made. BUT if can be extended extracting the parameters I listed OR returning parameters that can enable me to extrapolate the needed ones, well Reaper will have a point with a free script, that no one has.
And really will unblock a stalling situation is present on TV Broadcasting with certain national networks
__________________
Bart R.
Reaper: always the last version.
O.S.: Windows 11
BartR is offline   Reply With Quote
Old 07-14-2021, 11:23 PM   #8
airon
Human being with feelings
 
airon's Avatar
 
Join Date: Aug 2006
Location: Berlin
Posts: 11,406
Default

+1 at the very least for functions giving script writers the ability to pull this off.

Meanwhile YLM2 seems to have something useful, though it is one file at a time. This is the standalone tool, though you can drag and drop files in to the plugin version as well. I need to dig around in my commandline archive. I had a setup that scanned and printed out a report on a file, way back.

__________________
(Video)Using Latch Preview - Faderport16 for CSI v1.1 - Faderport8 for CSI 1.1
Airon Audio Dia/FX Edit&Mix
"My ego comes pre-shrunk" - Randy Thom

Last edited by airon; 07-14-2021 at 11:48 PM.
airon is online now   Reply With Quote
Old 07-15-2021, 12:02 AM   #9
airon
Human being with feelings
 
airon's Avatar
 
Join Date: Aug 2006
Location: Berlin
Posts: 11,406
Default

Found something that may be useful to you until this can be done properly.

Commandline tool called bs1770gain, available here:
https://sourceforge.net/projects/bs1...es/bs1770gain/

It's a little slow but you can run this via a batch file drag'n'drop style or have it scan entire directory trees. The options on this tool are just huge.

A commandline like this
Code:
bs1770gain.exe -i -s -m -r -t -f report.txt Example.wav
produces a text file that looks like this:
Code:
analyzing ...
  [1/1] "Example.wav": 
             integrated:  -23.88 LUFS / 0.88 LU
      momentary maximum:  -13.14 LUFS / -9.86 LU
      shortterm maximum:  -16.95 LUFS / -6.05 LU
                  range:  10.93 LUFS
              true peak:  -3.81 TPFS / 0.644581
  [ALBUM]:
             integrated:  -23.88 LUFS / 0.88 LU
      momentary maximum:  -13.14 LUFS / -9.86 LU
      shortterm maximum:  -16.95 LUFS / -6.05 LU
                  range:  10.93 LUFS
              true peak:  -3.81 TPFS / 0.644581
done.
It works file with wildcards too.
Code:
bs1770gain.exe -i -s -m -r -t -f report.txt *.wav
Create a batchfile, such as "drophere.bat" that contains
Code:
@echo off
c:\whateverpath\bs1770gain.exe -i -s -m -r -t -f %1_report.txt %1
and you're off to the races with a little work on formatting the text output.

Until we have proper API functions, because I know the Cockos gentlemen have written faster scanners .
__________________
(Video)Using Latch Preview - Faderport16 for CSI v1.1 - Faderport8 for CSI 1.1
Airon Audio Dia/FX Edit&Mix
"My ego comes pre-shrunk" - Randy Thom

Last edited by airon; 07-15-2021 at 12:09 AM.
airon is online now   Reply With Quote
Old 07-15-2021, 05:32 AM   #10
BartR
Human being with feelings
 
Join Date: Oct 2014
Location: Belgium
Posts: 748
Default

It's not what I asked for.
So please drop YL for the moment in time.

I'm client of Youlean,as I sadi, and I had several email interchanges with Julijan
I wouldn't want to repeat what I already said :-)

The output required for the .CSV by Dolby Meter is way other thing.
It has nothing to do with what yo show and what it's needed.

An API is required.

Having the API is capable to give the required outputs second-by-second, then a CSV is just question of a script.
It's not a "on-row"file, nor a summary of data.
__________________
Bart R.
Reaper: always the last version.
O.S.: Windows 11
BartR is offline   Reply With Quote
Old 07-15-2021, 08:18 AM   #11
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: Apr 2020
Location: Leipzig
Posts: 2,871
Default

I think the best way to pull this off would be writing an JSFX, which calculates it and puts the values into a GMEM/Shared Memory.
Then put it into the master-channel as additional fx.
Then set the FX to "Calculate the values"-mode and run dry-rendering.

After dry-rendering, you can read these GMEMs in Lua and therefore calculated values out and export them in any way you want.

It also has the benefit, that adding additional loudness values would be easier and faster and you could even extend it to loudness calculation on individual track-basis, if needed. You just would need to add multiple versions of the calculator-JSFX on each track and adjust the gmem-writing/reading-logic accordingly.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper
Bugreports&Docs notes please do here:https://github.com/Ultraschall/ultra...-reaper/issues - Donate, if you wish
Meo-Ada Mespotine is offline   Reply With Quote
Old 07-16-2021, 04:06 AM   #12
BartR
Human being with feelings
 
Join Date: Oct 2014
Location: Belgium
Posts: 748
Default

Quote:
Originally Posted by Meo-Ada Mespotine View Post
I think the best way to pull this off would be writing an JSFX, which calculates it and puts the values into a GMEM/Shared Memory.
Then put it into the master-channel as additional fx.
Then set the FX to "Calculate the values"-mode and run dry-rendering.

After dry-rendering, you can read these GMEMs in Lua and therefore calculated values out and export them in any way you want.

It also has the benefit, that adding additional loudness values would be easier and faster and you could even extend it to loudness calculation on individual track-basis, if needed. You just would need to add multiple versions of the calculator-JSFX on each track and adjust the gmem-writing/reading-logic accordingly.
That's a great solution as well.
Although I have not clue were to start from.
BUt I can give the material to see where to land.
__________________
Bart R.
Reaper: always the last version.
O.S.: Windows 11
BartR is offline   Reply With Quote
Old 07-21-2021, 02:29 AM   #13
BartR
Human being with feelings
 
Join Date: Oct 2014
Location: Belgium
Posts: 748
Default

Quote:
Originally Posted by Meo-Ada Mespotine View Post
I think the best way to pull this off would be writing an JSFX, which calculates it and puts the values into a GMEM/Shared Memory.
Then put it into the master-channel as additional fx.
Then set the FX to "Calculate the values"-mode and run dry-rendering.

After dry-rendering, you can read these GMEMs in Lua and therefore calculated values out and export them in any way you want.

It also has the benefit, that adding additional loudness values would be easier and faster and you could even extend it to loudness calculation on individual track-basis, if needed. You just would need to add multiple versions of the calculator-JSFX on each track and adjust the gmem-writing/reading-logic accordingly.
Please here the required CSV.I blurred data from the project because it's real and it's under NDA.
The example is for a stereo channel, but it's the same for 5.1 and 7.1. It changes just the number of files imported (upper left corner)
I left the extensions and standard nomenclature unblurred.

For the LeQM:
https://www.pro-tools-expert.com/pro...-it-used-iw6gp


This IS what I would like to be able to obtain.
__________________
Bart R.
Reaper: always the last version.
O.S.: Windows 11

Last edited by BartR; 07-21-2021 at 02:42 AM.
BartR 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 03:33 AM.


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