 
function vib=vibrato(guitar,fs,Modfreq,Width)

ya_alt=0;

Delay=Width; % basic delay of input sample in sec
DELAY=round(Delay*fs); % basic delay in # samples
WIDTH=round(Width*fs); % modulation width in # samples




MODFREQ=Modfreq/fs; % modulation frequency in # samples
LEN=length(guitar);        % # of samples in WAV-file
L=2+DELAY+WIDTH*2;    % length of the entire delay  
Delayline=zeros(L,1); % memory allocation for delay
vib=zeros(size(guitar));     % memory allocation for output vector

for n=1:(LEN-1)
   M=MODFREQ;
   MOD=sin(M*2*pi*n);
   ZEIGER=1+DELAY+WIDTH*MOD;
   i=floor(ZEIGER);
   frac=ZEIGER-i;
   Delayline=[guitar(n);Delayline(1:L-1)]; 
   
  % Linear Interpolation (why does this work by allpass does not?) %
   vib(n,1)=Delayline(i+1)*frac+Delayline(i)*(1-frac);
   
   
   %---Allpass Interpolation------------------------------   
   %y(n,1)=(Delayline(i+1)+(1-frac)*Delayline(i)-(1-frac)*ya_alt);  
     % ya_alt=ya(n,1);
   
  
end 


