Mercurial > hg > ape
diff aux/clipfade.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 | b28ffd29e6e1 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/aux/clipfade.m Thu Apr 24 23:53:31 2014 +0100 @@ -0,0 +1,50 @@ +function clipfade(folder, startTime, endTime, fs) +% CLIPFADE clips and fades a fragment [start end] of all audio files in +% a folder. +% +% folder: path to all audio files (automatically selected) +% start: start time in seconds +% end: end time in seconds +% +% by Brecht De Man at Centre for Digital Music on 25 October 2013 + +if nargin < 4 + fs = 96000; +end + +fadeTime = 1; % fade time in seconds +bitDepth = 16; +slash = '/'; % depending on OS + +%newFolder = 'Clips'; % folder where output files will be stored +% MODIFICATION: store in place, do not keep unclipped files! + +% list all audio files +list = dir([folder slash '*.wav']); + +% make new folder if not present yet +% if ~exist([folder slash newFolder], 'dir') % make output folder if not there +% mkdir(folder, newFolder); +% end + +for i = 1:length(list) + if strcmp(list(i).name, 'bounce.wav') + %disp([' ' folder slash list(i).name]); % DEBUG + + [audio,fsfile] = audioread([folder slash list(i).name], [startTime*fs+1 endTime*fs]); % read part of file + assert(fsfile == fs); % check file has expected sampling rate + + Nfade = fadeTime*fs; % make fade vector (based on sampling rate) + fadeVector = [(1:Nfade)/Nfade ones(1,length(audio)-2*Nfade) (Nfade:-1:1)/Nfade]; + + % apply fading and write to new folder + if size(audio,2) == 2 % if stereo + audiowrite([folder slash list(i).name], ... %[folder slash newFolder slash list(i).name] + [fadeVector'.*audio(:,1) fadeVector'.*audio(:,2)], fs, 'BitsPerSample', bitDepth); + else % if mono + audiowrite([folder slash list(i).name], ... %[folder slash newFolder slash list(i).name] + fadeVector'.*audio, fs, 'BitsPerSample', bitDepth); + end + + end +end \ No newline at end of file