annotate aux/batchResample.m @ 8:2afd6ff39f08

prepare2listen fixes
author Brecht De Man <b.deman@qmul.ac.uk>
date Fri, 28 Nov 2014 00:52:12 +0000
parents 5e72201496c8
children 866c5da4d357
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@8 13
b@0 14 % go over all wav files in this folder
b@8 15 files = dir([foldername '/*.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@2 22 files(k) = [];
b@0 23 end
b@0 24 end
b@0 25
b@0 26 for k=1:length(files)
b@8 27 info = audioinfo([foldername '/' files(k).name]);
b@2 28 bitdepth = info.BitsPerSample;
b@2 29 fs = info.SampleRate;
b@0 30
b@2 31 if fs==fsnew && bitdepth == bitdepthnew
b@2 32 disp([files(k).name ' already at ' num2str(fs) ' Hz, ' num2str(bitdepth) ' bit.']);
b@0 33 else
b@8 34 [audio,fs] = audioread([foldername '/' files(k).name]); % read audio
b@2 35 disp([files(k).name ' was ' num2str(fs) ' Hz, ' num2str(bitdepth) ' bit.']);
b@2 36 if fs ~= fsnew
b@2 37 audio = resample(audio, fsnew, fs);
b@2 38 end
b@8 39 audiowrite([foldername '/' files(k).name], audio/max(max(abs(audio))), ...
b@8 40 fsnew, 'BitsPerSample', bitdepthnew);
b@0 41 end
b@0 42 end
b@0 43
b@0 44 end