

(
SynthDef(\granSoil, {
	arg out=0, gate = 1, amp = 0.5, sndbuf, envbuf = -1, fadeTime=1, rate=0.8, dur=0.01;
    var snd, env, freqdev;
    // use mouse x to control panning
    //pan = MouseX.kr(-1, 1);
    env = EnvGen.kr(
        Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1),
        gate,
        //levelScale: amp,
        doneAction: Done.freeSelf);

	snd = GrainBuf.ar(
		numChannels: 1,
		trigger: Impulse.kr(200 * LFNoise2.kr(0.1).range(0.9,1.1)),
		//dur: MouseY.kr.range(0.001,1),
		//dur: SinOsc.kr(0.1).range(0.001,0.1),
		dur: dur,
		sndbuf: sndbuf,
		rate: rate, // the playback rate of the sampled sound
		//pos: MouseX.kr.range(0, 25) * LFNoise2.kr(20).range(0.999,1.001),
		pos: LFNoise2.kr(0.001).range(0, 25) * LFNoise2.kr(20).range(0.999,1.001),
		interp: 4, // 2: liner, 4: cubic
		pan: 0,
		envbufnum: envbuf,
		maxGrains: 1024);

	
	
	snd = snd * env * amp;

	Out.ar(out, snd);
}).add;
)
