samer@0: function a=audiorec(ch,rate,N,M,varargin) samer@0: if nargin<4, M=N; end samer@37: opts=options('buffer',1,'queue',4,'dspargs',{},varargin{:}); samer@0: samer@0: a=asysobj(@(sz)dsp.AudioRecorder('OutputDataType','double','NumChannels',ch,'SampleRate',rate, ... samer@0: 'SamplesPerFrame',M,'BufferSizeSource','Property', ... samer@0: 'BufferSize', opts.buffer*M, ... samer@0: 'QueueDuration',opts.queue*M/rate, ... samer@0: opts.dspargs{:}), ... samer@0: 0,1,@(sz){[M,ch]}); samer@0: samer@0: if N>M samer@0: OL=M+1:N; samer@0: a=a*loop(@upd,@(sz)zeros(N-M,ch)); samer@0: elseif N