Daniel@0: function varargout = mircompute(algo,varargin) Daniel@0: Daniel@0: l = length(varargin{1}); % number of audio files. Daniel@0: for i = 1:l Daniel@0: % for each audio file Daniel@0: v = varargin; Daniel@0: for j = 1:length(v) Daniel@0: % for each variable associated to that audio Daniel@0: if isa(v{j},'mirdata') Daniel@0: v{j} = get(v{j},'Data'); Daniel@0: end Daniel@0: if iscell(v{j}) Daniel@0: v{j} = v{j}{i}; Daniel@0: end Daniel@0: %if not(iscell(v{j})) Daniel@0: % v{j} = {v{j}}; Daniel@0: %end Daniel@0: end Daniel@0: % final result for that audio Daniel@0: for k = 1:length(v{1}) Daniel@0: % for each segment in that audio file Daniel@0: vk = v; Daniel@0: for j = 1:length(vk) Daniel@0: if iscell(vk{j}) Daniel@0: vk{j} = vk{j}{k}; Daniel@0: end Daniel@0: end Daniel@0: if 1 %nargout == 1 Daniel@0: res = algo(vk{:}); Daniel@0: else %% used for miremotion, provokes bug else... Daniel@0: [res res2 res3 res4] = algo(vk{:}); Daniel@0: end Daniel@0: if iscell(res) Daniel@0: lr = length(res); Daniel@0: for j = 1:lr Daniel@0: varargout{j}{i}{k} = res{j}; Daniel@0: end Daniel@0: else Daniel@0: varargout{1}{i}{k} = res; Daniel@0: if nargout == 4 Daniel@0: varargout{2}{i}{k} = res2; Daniel@0: varargout{3}{i}{k} = res3; Daniel@0: varargout{4}{i}{k} = res4; Daniel@0: end Daniel@0: end Daniel@0: end Daniel@0: end