annotate aux/batchResample.m @ 0:4fd284285159

Adding listening test plus some helpful functions and scripts.
author Brecht <b.deman@qmul.ac.uk>
date Thu, 24 Apr 2014 23:53:31 +0100
parents
children 5e72201496c8
rev   line source
b@0 1 function [] = batchResample(foldername, fsnew, bitDepth)
b@0 2 % BATCH RESAMPLE converts sample rate of all files in folder.
b@0 3 %
b@0 4 % by Brecht De Man at Centre for Digital Music on 13 April 2014
b@0 5
b@0 6 % TODO read sampling rate without reading whole file
b@0 7
b@0 8 if nargin <3
b@0 9 bitDepth = 24;
b@0 10 end
b@0 11
b@0 12 currentfolder = pwd;
b@0 13 cd(foldername); % go to specified folder
b@0 14 % go over all wav files in this folder
b@0 15 files = dir('*.wav');
b@0 16
b@0 17 % remove hidden files from list
b@0 18 % see http://www.mathworks.co.uk/matlabcentral/newsreader/view_thread/258220
b@0 19 for k = length(files):-1:1
b@0 20 fname = files(k).name;
b@0 21 if fname(1) == '.'
b@0 22 files(k) = [ ];
b@0 23 end
b@0 24 end
b@0 25
b@0 26 for k=1:length(files)
b@0 27 disp(['Reading ' files(k).name '...']);
b@0 28
b@0 29 [audio,fs] = audioread(files(k).name); % read audio
b@0 30
b@0 31 if fs==fsnew
b@0 32 warning('Sampling rate of original audio file is equal to current sampling rate');
b@0 33 else
b@0 34 resampledAudio = resample(audio, fsnew, fs);
b@0 35 audiowrite([files(k).name],resampledAudio, fsnew, 'BitsPerSample', bitDepth);
b@0 36 end
b@0 37 end
b@0 38 cd(currentfolder); % go back to original folder
b@0 39
b@0 40 end