annotate dsp/synth/specsynth.m @ 61:eff6bddf82e3 tip

Finally implemented perceptual brightness thing.
author samer
date Sun, 11 Oct 2015 10:20:42 +0100
parents c75bb62b90a9
children
rev   line source
samer@34 1 function Y=specsynth(S,gen,N,M)
samer@34 2 % specsynth - Spectral synthesis by FIR filtering white noise
samer@34 3 %
samer@34 4 % specsynth ::
samer@34 5 % seq([[L]]) ~'sequence of L-point power spectra',
samer@34 6 % (N:natural=>[[1,N]]) ~'generator of noise buffers',
samer@34 7 % N:natural ~'size of buffers of noise signals to take'
samer@34 8 % M:natural ~'frame overlap'
samer@34 9 % -> seq([[1,M]]) ~'sequence of signal buffers'.
samer@34 10
samer@34 11 % NOTE: this should really take gen to be seq natural -> seq [[1,_]]
samer@34 12 % eg
samer@34 13 % gen = @(n)rndzip(sampler(gaussian),n,getrndstate)
samer@34 14 % this should be the basic type of a buffered signal generator
samer@34 15
samer@34 16 if nargin<4, M=N; end
samer@34 17 U=rndmap(gen,repeat(N),getrndstate);
samer@34 18 Y=unbuffer(zipwith(@conv,map(@(s)spec2fir(sqrt(s)),S),U),M);