Mercurial > hg > pmhd
view getOnsetsAndSynchronyWithFillin.m @ 13:844d341cf643 tip
Back up before ISMIR
author | Yading Song <yading.song@eecs.qmul.ac.uk> |
---|---|
date | Thu, 31 Oct 2013 13:17:06 +0000 |
parents | 59c6861155d9 |
children |
line wrap: on
line source
%returns the segment onset times and an array of delay between each pair of %corresponding onsets. Also takes two arrays containing segments where function [segs1,segs2, differences] = getOnsetsAndSynchronyWithFillin(csv1, csv2, fill1,fill2) %load the two audio segmentations cello = csvread(csv1); violin = csvread(csv2); %use only the segmentation times celloSegmentations = cello(:,1); violinSegmentations = violin(:,1); celloFills = []; celloFillsi = []; violinFills = []; violinFillsi = []; 'length of fill1' length(fill1) 'length of fill2' length(fill2) for i = 1:length(fill1) segNumber = fill1(1,i); thisSegment = celloSegmentations(segNumber) segLength = celloSegmentations(segNumber+1) - celloSegmentations(segNumber); segDivision = segLength * (fill1(2,i)/4); newSegPosition = thisSegment + segDivision; celloFills(i) = newSegPosition; celloFillsi(i) = segNumber+1; end for i = 1:length(fill2) segNumber = fill2(1,i); thisSegment = violinSegmentations(segNumber) segLength = violinSegmentations(segNumber+1) - violinSegmentations(segNumber); segDivision = segLength * (fill2(2,i)/4); newSegPosition = thisSegment + segDivision; violinFills(i) = newSegPosition; violinFillsi(i) = segNumber+1; end celloFills violinFills %NOW FILL IN THE DATA segs1 = zeros(1,length(celloSegmentations)+length(celloFills)); segs1(celloFillsi+(0:length(celloFillsi)-1)) = celloFills; segs1(~segs1) = celloSegmentations segs2 = zeros(1,length(violinSegmentations)+length(violinFills)); segs2(violinFillsi+(0:length(violinFillsi)-1)) = violinFills; segs2(~segs2) = violinSegmentations %average out the segmentation times segs1 segs2 length(segs1) length(segs2) differences = (segs1 - segs2); end