delay s m = :init list/fill buffer s m result = first buffer buffer = tail buffer ++ s result delay-line signal = signal + delay signal m synth f e = :init s = 0 s = osc (f + e * delay m s)