DXEnvFan Bus in PbindFx

Hey i was trying to use the Ex. 2, Granulation with PV_BinBufRd from PV Ugens and DXEnvFan (miSCellaneous) with PbindFx and could not manage to get it running.
is it because of the ~audioBus? I already checked the Out and Inputs. The PbindFx is working together with other Sources and the same Fx.
Would it be possible to have FFT processing per grain? Ive looked at the DXEnvFan Helpfile Ex.6: Granulation, sequencing of fxs and fx parameters per grain
see the code below:

(
~path = Platform.resourceDir +/+ "sounds/a11wlk01.wav";
~windowSize = 1024;
~hopSize = 0.25;

~soundfile = SoundFile.new(~path);
~soundfile.openRead;
~soundfile.close;

~rates = (1..12) * 0.1 + 0.4;

// need FFT buffers from different lengths
~recBufs = ~rates.collect { |rate, i|
	Buffer.alloc(s, (~soundfile.duration / rate).calcPVRecSize(~windowSize, ~hopSize));
};

// one sound buffer is enough in this case
~soundBuf = Buffer.read(s, ~path);

// Hann window
~winType = 1;
)

// analysis SynthDef (in addition uses rate)
(
SynthDef(\pvrec_2, { arg recBuf, soundBufnum, rate = 1;
    var in, chain, bufnum;
    bufnum = LocalBuf.new(~windowSize);
    Line.kr(1, 1, BufDur.kr(soundBufnum) / rate, doneAction: 2);
    in = PlayBuf.ar(1, soundBufnum, rate * BufRateScale.kr(soundBufnum), loop: 0);
    chain = FFT(bufnum, in, ~hopSize, ~winType);
    chain = PV_RecordBuf(chain, recBuf, 0, 1, 0, ~hopSize, ~winType);
    }).add;
)

// make analysis of same buffer played back at different speeds
(
~rates.do { |rate, i| Synth(\pvrec_2, [\recBuf, ~recBufs[i], \soundBufnum, ~soundBuf, \rate, rate]) }
)


// Ex. 2, Granulation with PV_BinBufRd
(
~maxOverlap = ~rates.size;
~audioBus = Bus.audio(s, ~maxOverlap);

SynthDef(\gran_1f_b, {
	arg out = 0, posLo = 0.1, posHi = 0.9, recBufs=0, soundBuf=0,
	posRateE = 0, posRateM = 1, overlap = 2, trigRate = 1,
	panMax = 0.8, loBin = 10, hiBin = 10, clear = 0.0, amp = 1;
	
	var gainEnv = \gainEnv.kr(Env.newClear(8).asArray);
	var sig, bpFreq, dUgen, bufDur, pos, posRate, playbuf, env, maxOverlap = ~maxOverlap;
	var chains, fftBufs = { LocalBuf(~windowSize) } ! ~maxOverlap;

	posRate = 10 ** posRateE * posRateM;

	// phasor bounds must be between 0 and 1
	pos = Phasor.ar(0, posRate * SampleDur.ir, posLo, posHi);

	// multichannel trigger
	env = DXEnvFan.ar(
		Dseq((0..maxOverlap-1), inf),
		trigRate.reciprocal,
		size: maxOverlap,
		maxWidth: maxOverlap,
		width: (Main.versionAtLeast(3, 9)).if { overlap }{ 2 },
		// option to avoid unwanted triggers
		zeroThr: 0.002,
		// take equalPower = 0 for non-squared sine envelopes
		// more efficient with helper bus
		equalPower: 0,
		bus: ~audioBus
	);

	// need FFT before PV_BinBufRd !
	chains = FFT(fftBufs, PlayBuf.ar(1, soundBuf, ~rates, loop: 1));
	chains = PV_BinBufRd(chains, recBufs, pos, 0, 2, 10, clear);
	chains = PV_BinGap(chains, loBin, hiBin);

	playbuf = IFFT(chains, ~winType);

	// generate grains by multiplying with envelope
	sig = playbuf * env;

	// generate array of ~maxOverlap stereo signals
	sig = Pan2.ar(sig, Demand.ar(env, 0, Dseq([-1, 1], inf) * panMax));
	
	sig = Mix(sig) * amp;
	
	//amp envelope
	gainEnv = EnvGen.kr(gainEnv, doneAction:2);
	sig = sig * gainEnv;

	// mix to out
	Out.ar(out, sig.debug)
}).add;

SynthDef(\vocoder, {
	arg out=0, in=0, amp=1.0, freq=440,
	atk=0.1, rel=1, width=0.5;

	var sig, env, chainMod, chainCarr, chain, input;

	env = EnvGen.ar(Env.perc(atk, rel), doneAction:2);
	input = In.ar(in, 2) * env;
	sig = VarSaw.ar(freq, width:width);

	chainMod = FFT(LocalBuf(1024), input);
    chainCarr = FFT(LocalBuf(1024), sig);
    chain  = PV_MagMul(chainCarr, chainMod);
	chain = PV_MagClip(chain, 50);
	sig = IFFT(chain) * amp;

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

(
Pdef(\pv_BinBufRd_fx,
	PbindFx([
		\instrument, \gran_1f_b,
		
		\recBufs, ~recBufs,
		\soundBuf, ~soundBuf,

		\dur, 0.5 * Pseq((0..25).linexp(0,25,0.2,1),inf),
		\posRate, Pseq([Pseries(1,-0.01,26).midiratio],inf),

		\legato, Pseq([Pseries(0.75,0.01,26)],inf),
		\atk, Pwhite(0.01,0.03,inf), // between 0 and 1
		\sus, (1 - Pkey(\atk)) * Pexprand(0.35,0.50,inf), // between 0 and 1

		\gainEnv, Pfunc{|e|
			var rel = (1 - e.atk - e.sus);
			var c1 = exprand(2,6);
			var c2 = exprand(-2,-6);
			Env([0,1,1,0],[e.atk, e.sus, rel],[c1,0,c2])
		},

		\posLo, 0,
		\posHi, 0.75,
		\posRateE, 0,
		\posRateM, 1,
		\trigRate, 1,
		\overlap, 7,
		\loBin, 5,
		\hiBin, 12,

		\amp, 0.5,
		
		\fxOrder, [1]
	], [
		\fx, \vocoder,
		\scale, Scale.minor(\just),
		\root, 1,
		\octave, Prand([[3,4,5,6]], inf),
		\degree, Prand([ [0,2,4,7] ], inf),
		\mtranspose, Pwhite(-0.02, 0.02, inf),
		\width, 0.01,
		\atk, 0.5,
		\rel, 1,
		\amp, 0.125,
		\dur, Pseq([Pn(0.25,8)], inf),
    ]),
).play(t, quant:1);
)

Certainly, the kitchen studies help file (part 2 and 4) contain examples for this. Mind the delay of FFT. Sorry, I have no time to dive into this example.

i tried this once more with an example synth from the helpfile and a comb filter fx. PbindFx works without the external bus of DXEnvFan. But not with any of the ways i tried to apply it via \otherBusArgs.

(
b = Buffer.read(s, Platform.resourceDir +/+ "sounds/a11wlk01.wav");
a = Bus.audio(s, 30);

SynthDef(\test, {
	
	//var busIn = Array.fill(30, \busIn.kr(0));
	
	var sig, env = DXEnvFan.ar(
		Dseq([0, 1], inf),
		fadeMode: 3,
		stepTime: 0.05,
		fadeTime: 0.01,
		// to ensure right triggering set zeroThr
		zeroThr: 0.002,
		// works without external bus
		//bus: a 
		//bus: { busIn }
		//bus: { In.ar(\busIn.kr(0), 30) }
	);
	
	sig = PlayBuf.ar(
		1,
		b,
		[1, 1.1] * BufRateScale.kr(b),
		env,
		Demand.ar(
			env,
			0,
			Dstutter(
				5,
				Dwhite(0.1, 0.9)
			) * BufFrames.ir(b)
		)
	) * 1.2 * env;
	// do a bit correlation
	sig = Splay.ar(sig, 0.8);
	Out.ar(\out.kr(0), sig);
}).add;

SynthDef(\combL, {
	arg in=0, mix=(-0.5), decay=1, delHz=0.55, delStereoRatio=0.9, delMin=0.001, delMax=0.4;
	var sig, inSig, comb;
	
	inSig = In.ar(in, 2);
	delHz = delHz * [1, delStereoRatio];
	comb = CombL.ar(
		inSig,
		delMax,
		LFPar.kr(delHz,[0,pi/2]).exprange(delMin,delMax),
		decay,
	);
	sig = XFade2.ar(inSig, comb, mix) * \amp.kr(1);
	Out.ar(\out.kr(0), sig);
}).add;
)


(
x = PbindFx([
	\instrument, \test,
	
	\busIn, a, //Pfunc { a },
	\otherBusArgs, [\busIn],
	
	\fxOrder, [1]
	
], [
	\fx, \combL,
	
]).play;
)

x.stop;