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 |