I am not asking for a utility that computes some average loudness measure (like ReplayGain). (Edit: Argh, thought I was clever to avoid the quotation marks " and ', in order to keep the board from cropping the subject. Forgot about the slash.)
Rather, I am asking whether there have been developed reasonably good measurements -- and utilities implementing such -- for scanning for “loudness war victims”. E.g., criteria like
- dispersion of amplitude (e.g. standard deviation), over some (moving?) average
- distribution of signals near the digital 1.0000 to identify brickwalling (hard or not-very-soft limiting)
- every track on an album boosted to about the same maximum
Of course it will vary over musical genres, but a model that could scan a batch of subjectively “similar” music and with a reasonable accuracy (i.e. sensitivity/specificity) detect those “bad remasters”, would be a good start.
Anything? Anyone?
Maybe something like this: http://www.hydrogenaudio.org/forums/index....showtopic=88373 (http://www.hydrogenaudio.org/forums/index.php?showtopic=88373)
http://www.jokhan.demon.nl/DynamicRange/index.htm (http://www.jokhan.demon.nl/DynamicRange/index.htm)
Well, even without documented measurement method (I mean, is it known what is the relevant one for the purposes?), then a dynamic range analyzer is certainly a start.
Especially when I happen to have two releases of the same album in my collection. Thank you. (... and a foobar2k component, that means it is very likely to be used.)
(And thanks to whomever moderator fixed the subject.)
How about:
http://r128gain.sourceforge.net/ (http://r128gain.sourceforge.net/)
http://www.hydrogenaudio.org/forums/index....showtopic=85978 (http://www.hydrogenaudio.org/forums/index.php?showtopic=85978)
I am not asking for a utility that computes some average loudness measure (like ReplayGain).
Would you like to qualify your suggestion so that it doesn’t directly contradict the first sentence in the thread, or should I just send it to the Recycle Bin as evidence of how not to read?
I see it, there are actually two ways the loudness war affects recordings:
1/ Short term limiting removes transients
2/ Long-term compression or gain control reduces dynamics
Are you interested in (1) the signal processing tricks that make recordings louder while attempting to minimally degrade their subjective quality? Or are you interested in (2) the production aesthetic of unrelenting sound?
For (1) I think you want to measure peak to average ratio. Since it is safe to assume that the peak level for all modern tracks and albums is now invariably the same (0 dBFS) measuring average level alone gives you the answer. Those who suggested an LRU measurement are not wrong.
For (2) the EBU 128 standard introduces a concept of loudness range (LRA) which is a measure of the long-term dynamics.
Just ran across this (http://www.uaudio.com/blog/sos-feature-loudness-war) today. Maybe the measurement you're looking for has already been done.
These researchers looked at loudness as well as other music characteristics...
http://www.nature.com/srep/2012/120726/sre.../srep00521.html (http://www.nature.com/srep/2012/120726/srep00521/full/srep00521.html)
I am not asking for a utility that computes some average loudness measure (like ReplayGain).
Would you like to qualify your suggestion so that it doesn’t directly contradict the first sentence in the thread, or should I just send it to the Recycle Bin as evidence of how not to read?
I am not sure what you mean here (... sure you read the 'not'?), so please ask again if I do not answer to your question.
The 'your suggestion', is that those three points I suggested? For example, the first part of my suggestion (the 'dispersion' measure) is kind of suggesting a loudness measure, then it isn't. They are related as standard deviation is related to mean. I am not asking about a measure of average, affirming (not contradicting, directly nor indirectly) the first sentence (which says that I am not asking for a anything like ReplayGain).
I was talking to gb24 with reference to his recommendation of R128, which seemed to “directly contradict [your] first sentence in the thread”! But I realise this wasn’t very clear, so I apologise.
*facepalm*
Well now you know which posting to send to the Recycle Bin as evidence of how not to read.
ClippingAnalyzer (http://www.ber-sd.com/dl_clipping_eng.html)
clear all
close all
clc
fname='12.wav'
x=wavread(fname);
x=round(x*32768);
len=length(x)
his=histc(x(:,1),-32768:32767); % channel 1
his=his+histc(x(:,2),-32768:32767); %channel 2
tot=sum(his);
his=his/tot;
his=max(his, .000000000001);
xax=-32768:32767;
semilogy(xax,his);
axis([-40000 40000 1e-10 1e-1]);
big=max(max(x))
small=min(min(x))
fname
In octave will give you a nice histogram of the actual amplitudes in a 16 bit digital file.
You can find some frightening results at: http://s238.photobucket.com/albums/ff228/j...l%20Histograms/ (http://s238.photobucket.com/albums/ff228/jj_0001/Level%20Histograms/)
clear all
close all
clc
fname='12.wav'
x=wavread(fname);
x=round(x*32768);
...//...
Woodinville, thanks for the Matlab code. It works very well.
I modified/abused it with this view lines since I had no *.wav on hand but ist seems to produce sencible results!
% fname='12.wav'
% x=wavread(fname);
% x=round(x*32768);
T = 1;%(s)
SR = 44.1e3;%(SP/s)
f = 300;%(Hz)
%% comment in/out as appropriate
% % #1 test no signal...
x = zeros(T*SR,1);
figure(1)
% % #2 test ramp
x = round(linspace(-2^15,2^15,T*SR));% 2^15 = 2^16/2
figure(2)
% % #3 test ramp
x = round(2^15.*sin(linspace(-2^15,2^15,T*SR).*2.*pi.*f./SR));% 2^15 = 2^16/2
figure(3)
x = [x;-x]'; % fills the second channel
% plot(x);break
len=length(x)
I am shocked; American Idiot and V.I.U. are just crazy! They look like a mix of test signal #2 & 3.
Good fun though!