samer@0: function [span,jump]=windowparams(sz,frame,hop,width,opts) samer@0: % windowparams - compute windowing parameters to get buffers of a certain size samer@0: % samer@0: % windowparams :: samer@0: % [[1,2]] ~ 'size of signal [channels,length]', samer@0: % natural ~ 'desired frame length', samer@0: % natural ~ 'desired hop per frame', samer@0: % natural|[] ~ 'desired number of frames per buffer or [] for all', samer@0: % options { samer@0: % natural : jump/[] ~'override window jump' samer@0: % } samer@0: % -> natural ~ 'recommended window span', samer@0: % natural ~ 'recommended window jump'. samer@0: samer@0: channels = sz(1); samer@0: length = sz(2); samer@0: samer@0: if isempty(width) samer@0: width=channels*(floor((length-frame)/hop)+1); samer@0: end samer@0: samer@0: span = (hop*(width-1)+frame)/channels; samer@0: jump = (hop*width)/channels; samer@0: samer@0: if nargin>4 && isfield(opts,'jump'), jump = channels*hop*opts.jump; end samer@0: samer@0: