annotate signals/@sigmap/sigmap.m @ 61:eff6bddf82e3 tip

Finally implemented perceptual brightness thing.
author samer
date Sun, 11 Oct 2015 10:20:42 +0100
parents 289445d368a7
children
rev   line source
samer@1 1 classdef sigmap < signal
samer@1 2 properties (GetAccess=private, SetAccess=immutable)
samer@1 3 fun
samer@1 4 sig
samer@1 5 chans
samer@1 6 end
samer@1 7 methods
samer@1 8 function s=sigmap(f,sig,chf)
samer@1 9 if nargin<3, chf=@(c1)size(f(zeros(c1,1)),1); end
samer@1 10 s.fun=f;
samer@1 11 s.sig=sig;
samer@1 12 s.chans=chf(channels(sig));
samer@1 13 end
samer@1 14
samer@1 15 function s=tostring(sig)
samer@1 16 s=sprintf('map(%s,%s)',tostring(sig.fun),tostring(sig.sig));
samer@1 17 end
samer@1 18
samer@1 19 function c=rate(s), c=rate(s.sig); end
samer@1 20 function c=channels(s), c=s.chans; end
samer@1 21
samer@1 22 function s=construct(sig)
samer@1 23 f=sig.fun;
samer@1 24 s1=construct(sig.sig);
samer@1 25 s.start = s1.start;
samer@1 26 s.stop = s1.stop;
samer@1 27 s.dispose = s1.dispose;
samer@1 28 s.reader = @reader;
samer@1 29
samer@1 30 function r=reader(n)
samer@1 31 r1=s1.reader(n);
samer@1 32 r =@next;
samer@1 33 function [x,rem]=next
samer@1 34 [x1,rem]=r1();
samer@1 35 x=f(x1);
samer@1 36 end
samer@1 37 end
samer@1 38 end
samer@1 39 end
samer@1 40 end