samer@0: % aspecsyn - Spectral synthesis arrow samer@0: % samer@0: % aspecsyn :: samer@0: % N:natural, samer@0: % M:natural, samer@0: % (N:natural-> [[N]]) ~'window function' samer@0: % -> arrow( {[[N]]}, {[[M]]}, _). samer@0: function o=aspecsyn(N,M,windowfn) samer@0: o = (arr(@spec2fir) + asampler(@randn,[N,1])) ... % FIR filter coefficients and white noise samer@0: * adynfir(N,N) * amult(spdiag(windowfn(N))) ... % windowed sample buffers samer@0: * aolapadd(N,M); samer@0: end