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 |