bogdan@0: %returns the segment onset times and an array of delay between each pair of bogdan@0: %corresponding onsets. Also takes two arrays containing segments where bogdan@0: bogdan@0: function [segs1,segs2, differences] = getOnsetsAndSynchronyWithFillin(csv1, csv2, fill1,fill2) bogdan@0: bogdan@0: bogdan@0: bogdan@0: %load the two audio segmentations bogdan@0: cello = csvread(csv1); bogdan@0: violin = csvread(csv2); bogdan@0: bogdan@0: bogdan@0: %use only the segmentation times bogdan@0: celloSegmentations = cello(:,1); bogdan@0: violinSegmentations = violin(:,1); bogdan@0: bogdan@0: celloFills = []; bogdan@0: celloFillsi = []; bogdan@0: violinFills = []; bogdan@0: violinFillsi = []; bogdan@0: bogdan@0: 'length of fill1' bogdan@0: length(fill1) bogdan@0: 'length of fill2' bogdan@0: length(fill2) bogdan@0: bogdan@0: bogdan@0: for i = 1:length(fill1) bogdan@0: bogdan@0: segNumber = fill1(1,i); bogdan@0: thisSegment = celloSegmentations(segNumber) bogdan@0: bogdan@0: segLength = celloSegmentations(segNumber+1) - celloSegmentations(segNumber); bogdan@0: segDivision = segLength * (fill1(2,i)/4); bogdan@0: newSegPosition = thisSegment + segDivision; bogdan@0: bogdan@0: celloFills(i) = newSegPosition; bogdan@0: celloFillsi(i) = segNumber+1; bogdan@0: bogdan@0: end bogdan@0: bogdan@0: bogdan@0: for i = 1:length(fill2) bogdan@0: bogdan@0: segNumber = fill2(1,i); bogdan@0: thisSegment = violinSegmentations(segNumber) bogdan@0: bogdan@0: segLength = violinSegmentations(segNumber+1) - violinSegmentations(segNumber); bogdan@0: segDivision = segLength * (fill2(2,i)/4); bogdan@0: newSegPosition = thisSegment + segDivision; bogdan@0: bogdan@0: violinFills(i) = newSegPosition; bogdan@0: violinFillsi(i) = segNumber+1; bogdan@0: bogdan@0: end bogdan@0: bogdan@0: bogdan@0: celloFills bogdan@0: violinFills bogdan@0: bogdan@0: %NOW FILL IN THE DATA bogdan@0: bogdan@0: segs1 = zeros(1,length(celloSegmentations)+length(celloFills)); bogdan@0: segs1(celloFillsi+(0:length(celloFillsi)-1)) = celloFills; bogdan@0: segs1(~segs1) = celloSegmentations bogdan@0: bogdan@0: segs2 = zeros(1,length(violinSegmentations)+length(violinFills)); bogdan@0: segs2(violinFillsi+(0:length(violinFillsi)-1)) = violinFills; bogdan@0: segs2(~segs2) = violinSegmentations bogdan@0: bogdan@0: %average out the segmentation times bogdan@0: bogdan@0: bogdan@0: bogdan@0: segs1 bogdan@0: segs2 bogdan@0: bogdan@0: length(segs1) bogdan@0: length(segs2) bogdan@0: bogdan@0: differences = (segs1 - segs2); bogdan@0: bogdan@0: bogdan@0: bogdan@0: bogdan@0: bogdan@0: end