annotate aux/batchResample.m @ 2:5e72201496c8

Bug fixes, added stripzeros function, added new loudness function, moved general documentation to top level, MATLAB_R2014b compatibility
author Brecht De Man <b.deman@qmul.ac.uk>
date Mon, 17 Nov 2014 19:43:43 +0000
parents 4fd284285159
children 2afd6ff39f08
rev   line source
b@2 1 function [] = batchresample(foldername, fsnew, bitdepthnew)
b@2 2 % BATCHRESAMPLE converts sample rate of all files in folder.
b@2 3 %
b@0 4 % by Brecht De Man at Centre for Digital Music on 13 April 2014
b@0 5
b@2 6 if nargin < 2
b@2 7 fsnew = 96000;
b@2 8 end
b@0 9
b@2 10 if nargin < 3
b@2 11 bitdepthnew = 24;
b@0 12 end
b@0 13
b@0 14 currentfolder = pwd;
b@0 15 cd(foldername); % go to specified folder
b@0 16 % go over all wav files in this folder
b@0 17 files = dir('*.wav');
b@0 18
b@0 19 % remove hidden files from list
b@0 20 % see http://www.mathworks.co.uk/matlabcentral/newsreader/view_thread/258220
b@0 21 for k = length(files):-1:1
b@0 22 fname = files(k).name;
b@0 23 if fname(1) == '.'
b@2 24 files(k) = [];
b@0 25 end
b@0 26 end
b@0 27
b@0 28 for k=1:length(files)
b@2 29 info = audioinfo(files(k).name);
b@2 30 bitdepth = info.BitsPerSample;
b@2 31 fs = info.SampleRate;
b@0 32
b@2 33 if fs==fsnew && bitdepth == bitdepthnew
b@2 34 disp([files(k).name ' already at ' num2str(fs) ' Hz, ' num2str(bitdepth) ' bit.']);
b@0 35 else
b@2 36 [audio,fs] = audioread(files(k).name); % read audio
b@2 37 disp([files(k).name ' was ' num2str(fs) ' Hz, ' num2str(bitdepth) ' bit.']);
b@2 38 if fs ~= fsnew
b@2 39 audio = resample(audio, fsnew, fs);
b@2 40 end
b@2 41 audiowrite([files(k).name], audio, fsnew, ...
b@2 42 'BitsPerSample', bitdepthnew);
b@0 43 end
b@0 44 end
b@2 45
b@0 46 cd(currentfolder); % go back to original folder
b@0 47
b@0 48 end