view aux/prepare2listen.m @ 1:b64c9fb34bd0

Response folder included in package (put README in it).
author Brecht <b.deman@qmul.ac.uk>
date Wed, 30 Jul 2014 12:38:47 +0100
parents 4fd284285159
children b28ffd29e6e1
line wrap: on
line source
function prepare2listen
% PREPARE2LISTEN equalises loudness of files to prepare for
% listening test.
%
% by Brecht De Man at Centre for Digital Music, 5 June 2013

folder  = '/Users/Brecht/Documents/MATLAB/McGillTest2014/listeningTest/AUDIO/SR2_UnderACoveredSky/Clips/';
newfolder = 'equalloudness';
list = dir([folder '/*.wav']);
slash = '/';

% open files and calculate minimum loudness
MIN = 0;
x = struct([]);
for i = 1:length(list)
    disp([folder newfolder slash list(i).name]); % DEBUG
    [x{i}.audio,fs] = audioread([folder list(i).name]);
    x{i}.loudness   = loudness_itu(x{i}.audio, fs);
    MIN = min(MIN, floor(x{i}.loudness)); % compute minimum loudness
end

% make folder
if ~exist([folder 'equalloudness'], 'dir') % make folder 'equalloudness' if not there
    mkdir(folder, 'equalloudness');
end

% equalise loudness
MAX = 0;
for i = 1:length(list)
    x{i}.equalised = loudness_match(x{i}.audio, fs, MIN)*x{i}.audio;
    MAX = max(MAX, max(max(abs(x{i}.equalised))));
end

% normalise (keeping relative loudness) and save
for i = 1:length(list)
    audiowrite([folder newfolder '\' list(i).name], x{i}.equalised/MAX, ...
        fs, 'BitsPerSample', 24);
end

end