annotate arrows/audiorec.m @ 61:eff6bddf82e3
tip
Finally implemented perceptual brightness thing.
author |
samer |
date |
Sun, 11 Oct 2015 10:20:42 +0100 |
parents |
beb8a3f4a345 |
children |
|
rev |
line source |
samer@0
|
1 function a=audiorec(ch,rate,N,M,varargin)
|
samer@0
|
2 if nargin<4, M=N; end
|
samer@37
|
3 opts=options('buffer',1,'queue',4,'dspargs',{},varargin{:});
|
samer@0
|
4
|
samer@0
|
5 a=asysobj(@(sz)dsp.AudioRecorder('OutputDataType','double','NumChannels',ch,'SampleRate',rate, ...
|
samer@0
|
6 'SamplesPerFrame',M,'BufferSizeSource','Property', ...
|
samer@0
|
7 'BufferSize', opts.buffer*M, ...
|
samer@0
|
8 'QueueDuration',opts.queue*M/rate, ...
|
samer@0
|
9 opts.dspargs{:}), ...
|
samer@0
|
10 0,1,@(sz){[M,ch]});
|
samer@0
|
11
|
samer@0
|
12 if N>M
|
samer@0
|
13 OL=M+1:N;
|
samer@0
|
14 a=a*loop(@upd,@(sz)zeros(N-M,ch));
|
samer@0
|
15 elseif N<M
|
samer@0
|
16 BLOCK=M-N+1:M;
|
samer@0
|
17 a=a*arr(@(x)x(BLOCK,:));
|
samer@0
|
18 end
|
samer@0
|
19
|
samer@0
|
20 function [y,s]=upd(x,s)
|
samer@0
|
21 y=[s;x];
|
samer@0
|
22 s=y(OL,:);
|
samer@0
|
23 end
|
samer@0
|
24 end
|
samer@0
|
25
|