      function vcomb(xin,x)
c...........x(1) is the current looptime in seconds
c............x(2) is the current reverb time in seconds
c.............both can be changed dynamically
c..............this cute routine was written by marc capalbo
      common p(480),sr
      dimension x(1)
      if(x(4) .lt. x(5)) go to 1000
      k = x(8)
      x(8) = x(9)
      x(9) = k
      i = x(4)
      x(x(8)) = x(i)
      x(4) = x(8) + (x(4) - x(5))
      x(5) = x(10) - 1.
      x(7) = (x(10)-x(8) - 1.)/sr
      x(10) = x(9) + 1.
      x(3)=.001**(x(1)/x(2))
1000  i = x(4)
      frac = x(4) - i
      vcomb = xin + x(i) + ((x(i+1) - x(i)) * frac)
      x(x(10)) = vcomb * x(3)
      x(10) = x(10) + 1.
      x(6) = x(7) / x(1)
      x(4) = x(4) + x(6)
      return
      end
      subroutine vcmbst(len,x)
      common p(480),sr
      dimension x(len)
c..........all that is needed here is to specify initial loop time
c..........and maximum length of x array
c.........loop is loaded in x(1)
      do 1 m=11,len
1     x(m)=0.
      x(4) = 1.
      x(8) = 11
      x(9) = ((len-10)/2)+11
      x(10) = x(9) + aint(x(1)*sr+.5) + 1.
      x(5)=0.
      return
      end
