annotate 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
rev   line source
b@0 1 function prepare2listen
b@0 2 % PREPARE2LISTEN equalises loudness of files to prepare for
b@0 3 % listening test.
b@0 4 %
b@0 5 % by Brecht De Man at Centre for Digital Music, 5 June 2013
b@0 6
b@0 7 folder = '/Users/Brecht/Documents/MATLAB/McGillTest2014/listeningTest/AUDIO/SR2_UnderACoveredSky/Clips/';
b@0 8 newfolder = 'equalloudness';
b@0 9 list = dir([folder '/*.wav']);
b@0 10 slash = '/';
b@0 11
b@0 12 % open files and calculate minimum loudness
b@0 13 MIN = 0;
b@0 14 x = struct([]);
b@0 15 for i = 1:length(list)
b@0 16 disp([folder newfolder slash list(i).name]); % DEBUG
b@0 17 [x{i}.audio,fs] = audioread([folder list(i).name]);
b@0 18 x{i}.loudness = loudness_itu(x{i}.audio, fs);
b@0 19 MIN = min(MIN, floor(x{i}.loudness)); % compute minimum loudness
b@0 20 end
b@0 21
b@0 22 % make folder
b@0 23 if ~exist([folder 'equalloudness'], 'dir') % make folder 'equalloudness' if not there
b@0 24 mkdir(folder, 'equalloudness');
b@0 25 end
b@0 26
b@0 27 % equalise loudness
b@0 28 MAX = 0;
b@0 29 for i = 1:length(list)
b@0 30 x{i}.equalised = loudness_match(x{i}.audio, fs, MIN)*x{i}.audio;
b@0 31 MAX = max(MAX, max(max(abs(x{i}.equalised))));
b@0 32 end
b@0 33
b@0 34 % normalise (keeping relative loudness) and save
b@0 35 for i = 1:length(list)
b@0 36 audiowrite([folder newfolder '\' list(i).name], x{i}.equalised/MAX, ...
b@0 37 fs, 'BitsPerSample', 24);
b@0 38 end
b@0 39
b@0 40 end