klangfreund / lufsmeter Goto Github PK
View Code? Open in Web Editor NEWAn implementation of the loudness measurement algorithm ITU-R BS.1770
An implementation of the loudness measurement algorithm ITU-R BS.1770
This code is great - very clean and well documented. Good reading.
However I'm not entirely sure which of those ever so slightly different algorithms this code is actually running. It mentions both BS.1770 and EBU in the code.
Would it be possible to swap between the different algorithms mentioned in the title?
hi
i downloaded the trial version of LUFSmeter plugin (https://www.klangfreund.com/lufsmeter/) and installed the 64bit .so into $HOME/.vst
folder.
i can successfully load the plugin onto a track, but it crashes everytime when i try to open the UI.
There are no errors reported in the "Plugins with errors" screen from the "Settings > Plugins" menu (which is how Bitwig shows error messages from the plugins).
I wonder several things...
If this is something that can be resolved, feel free to ask me for any info that may help.
Seems like LUFSmeter is one of the few analysis tools available to Linux users (in VST format, at least)!
Cheers :)
--
OS: Ubuntu 18.04.3
DAW: Bitwig 3.0.3
Hi,
I have just re-written your brilliant meter in C#.
I was naively trying to compare the values of my implementation against your LUFSMeter2 plugin and also against my TC Electronic Clarity M. I'm getting a difference in the readings based on my version of your code. It's probably a bug in my rewrite, but I wanted to check in with you to double check I'm not missing something.
Should the values coming out of this main branch of this LUFSMeter project exactly match those coming out of the LUFSMeter2 plugin for the same audio samples?
Hi,
I am getting the following error while trying to compile the plugin:
Compiling LUFSMeterAudioProcessor.cpp
../../../LUFSMeter/Source/LUFSMeterAudioProcessor.cpp: In member function ‘const juce::Array<float>& LUFSMeterAudioProcessor::getMomentaryLoudnessForIndividualChannels()’:
../../../LUFSMeter/Source/LUFSMeterAudioProcessor.cpp:295:73: error: invalid initialization of reference of type ‘const juce::Array<float>&’ from expression of type ‘std::vector<float>’
return ebu128LoudnessMeter.getMomentaryLoudnessForIndividualChannels();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
Makefile:178: recipe for target 'build/intermediate/Debug/LUFSMeterAudioProcessor_483d57b.o' failed
% c++ --version
c++ (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1)
% lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: Fedora
Description: Fedora release 25 (Twenty Five)
Release: 25
Codename: TwentyFive
% git describe --always
f80b6de
Hi there, 1st of all thanks for this awesome work !
Since we've 'doxed' it in our HyMPS project (under AUDIO resources \ Visualization/Analysis \ Metering), can you please add a license file for it ?
Although it may sounds like a minor aspect, license file omission obviously causes an inconsistent generation of the relative badge too:
(badge-generator URL: https://badgen.net/github/license/klangfreund/LUFSMeter)
You can easily set a standardized one through the GH's license wizard tool.
Last but not least, let us know how we could improve - in your opinion - our categorizations and links to resources in order to favor collaboration between developers (and therefore evolution) of listed projects.
Hope that helps/inspires !
Hello.
While reading the code, I came across some questions. I'm having difficulty understanding
1. "Bin" in Ebu128LoudnessMeter.h and .cpp. Could you explain each of the variables for me? I'm not sure what "Bin" means.
2. Regarding the if statement in the STEP3 section of Ebu128LoudnessMeter.cpp's processBlock, I'm not quite sure what the condition means.
like this
if (numberOfSamplesInTheCurrentBin + bufferForMeasurement.getNumSamples() < numberOfSamplesPerBin)
Thank you for reading this and have a nice day.
How can we get a value from a signal that is too short?
In the processBlock function you say "We want the audio output to be exactly the same as the input!" To ensure this and let the client know that their audio buffer will not be changed, the input to the function should be 'const juce::AudioSampleBuffer&'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.