function y=addsynth(N,A,F,phi)
% addsynth - Additive synthesis
%
% addsynth ::
%    N:natural    ~'size of buffers to produce',
%    seq([[K]])   ~'sequence of amplitudes for each component',
%    seq([[K]])   ~'sequence of frequencies of sine waves to generate',
%    [[K]]        ~'initial phases'
% -> seq([[1,N]]) ~'sum of components'.

phi=repmat_to(phi,size(F));
y=zipwith(@(a,x)a'*x,A,blockdata(msine,N,phi,F));

