view aux/autoalign.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
children 1f7b986dab05
line wrap: on
line source
function autoalign(folderName, masterIndex)
% AUTOALIGN aligns audio in folder with selected file (index 'masterIndex')
% by inserting zeros at the start of the other files. 
%
% by Brecht De Man at Centre for Digital Music on 17 November 2014

    error('Work in progress, function not finished');
    
    tic;                                % start measuring time
    list = dir([foldername '\*.wav']);  % get names of files
    
    % remove hidden files from list
    % see http://www.mathworks.co.uk/matlabcentral/newsreader/view_thread/258220
    for k = length(list):-1:1
        fname = list(k).name;
        if fname(1) == '.'
            list(k) = [ ];
        end
    end

    % load master file
    masterAudioChannels = audioread([foldername '/' list(masterIndex).name]); 
    masterAudio         = sum(masterAudioChannels, 2); % sum to mono
    disp(['Aligning audio files with ' list(masterIndex).name '...']);
    
    % for each other file:
    for i = 1:length(list)
        
        slaveAudioChannels = audioread([foldername '/' list(i).name]); % read file
        slaveAudio         = sum(slaveAudioChannels, 2); % sum to mono
        
        % check sampling rate is the same
        % ... 

        % crosscorrelation function
        xcorr(masterAudio, slaveAudio); 
        
        % add zeros to beginning 
        
        % monitoring/debugging
        
    end

    elapsedTime = toc;  % stop measuring time
    disp(['autoalign took ' elapsedTime ' seconds to align the files in folder ' ...
        folderName ' with master file ' list(masterIndex).name]);

end