Doing something wrong with DelTap and DynKlank. Understanding needed

I’m playing with tapped delay lines. I had an idea to use a control signal as the input to the delay and use the output taps to select frequencies for a DynKlank. I’m doing this as a learning exercise.

I expected to get a regular series of delayed rings modulated with the mouse. What I get is a single series of delayed rings followed by regular faint thunks modulated with the mouse.

What am I missing here? This is a learning exercise, I’m interested in where I went wrong.

Thanks

a = FloatArray.fill(44100, 100 );
b = Buffer.loadCollection( s,a );
(
SynthDef(\test, { |out, buffer|
	var freq, src, tapPhase, tap1, tap2, tap3, tap4, tap5, o1,o2,o3;
	k = 100 + MouseX.kr(500,2000);
	v = k*3/7;

	tapPhase = DelTapWr.kr(buffer, k );

	#tap1, tap2, tap3, tap4, tap5 = DelTapRd.kr(buffer, tapPhase,
        [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]*0.15,      // tap times
        1,                      // no interp
        [1.0, 1.0, 1.0, 1.0, 1.0, 1.0]         // muls for each tap
    );
	o3 = [ k, tap1, tap2, tap3, tap4, tap5 ];
	o1 = Harmonics.new(6).ramp(1,3/7);
	o2 = Array.fill( 6,{ arg i; o3[i]*o1[i]; });
	src = DynKlank.ar(`[ o2 , 0.01, {rrand(1, 3)}!6], Impulse.ar(0.5, 0, 0.1));
	Out.ar( out, src!2 );
}).add ;
)
x = Synth(\test, [\buffer, b]);

I suspect it has something to do with this:

Math on the server seems to get me into trouble. I probably need to do this with a UGen.

I’m pretty sure the problem is with the delay line. I don’t think it’s doing what I think.

It’s actually working. The initial rings I’m getting are an artifact of the buffer not getting initialized.