Old 09-28-2018, 11:56 PM   #1
airon
Human being with feelings
 
airon's Avatar
 
Join Date: Aug 2006
Location: Berlin
Posts: 11,818
Default Library of functions via Extension ?

I'm trying to develop a loudness scanner in case my other efforts fail to achieve this goal. It would call on two libraries to scan blocks of samples, with a 75% window overlap iirc.

The extension provides basic functions to scan blocks of samples, and an Eel or Lua script processes the resulting data.

My big question is, can it be done, and if so, can anyone point me to some resources to explain how ? Is it realistic to do the sample processing/scanning in an extension and processing the resulting data in a Lua or Eel script ?

Or would it be even simpler to do it all in a C++ extension with my very, very basic knowledge of C++ ?

Visual Studio C++ is installed and I'm expanding my knowledge through documentation atm. I've also grabbed the basic extension example from Cfillion , which I hope will help.

Some details on the libraries.

The two libraries in question are the Dolby Dialogue Intelligence scanner available for use in any product for free here (just fill out the form and you can download right away): https://www.dolby.com/us/en/technolo...ence-code.aspx

This is an ANSI C library.

The result from this first library would be a string of "1" or "0" across the block that acts as a gate to zero out the samples sent to the second library. That library does the actual loudness scan for the block and delivers a dB value.

This second library is LibebuR128, which I'd have to hack to exclude the relative level gate. The spec I want to hit requires an older version of the way this library measures loudness. It shouldn't be too hard to do though.

The second library is Libebur128.

So, should I bite the bullet and do the entire thing in C++ or not ?

Here's an illustration of the processing that would go on :

__________________
Using Latch Preview (Video) - Faderport 16 setup for CSI 1.1 , CSI 3.10
Website
"My ego comes pre-shrunk" - Randy Thom
airon is offline   Reply With Quote
Old 10-02-2018, 10:38 AM   #2
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,630
Default

You can look into the code of the SWS extension and look, how they do it with loudness-stuff, like the NF_AnalyzeTakeLoudness-function.

The SWS-repository can be found here.
https://github.com/reaper-oss/sws/
Meo-Ada Mespotine is offline   Reply With Quote
Old 10-02-2018, 04:41 PM   #3
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,110
Default

Quote:
Originally Posted by mespotine View Post
You can look into the code of the SWS extension and look, how they do it with loudness-stuff, like the NF_AnalyzeTakeLoudness-function.

The SWS-repository can be found here.
https://github.com/reaper-oss/sws/
Those ReaScript loudness functions just expose the SWS loudness functionality that was already there (implemented by Breeder who did the hard work) to ReaScript, so just 'sugar on top' if you will...
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 01:38 PM.


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