Signals for VBAP

Hello there,
Trying to use Multichannel Panning for Model Based Sonification, I want to try out VBAP.
In the helpfile the signal to be panned is a simple Ugen like PinkNoise oder SinOsc. I understand, that you cannot use a Synth for VBAP. What about busses?
I tried this

var source, vbapIn, panBus, speakerList, panWidth=60;
var a, b;
> stuff from the example file for circleRamp
panBus = Bus.control;
speakerList = [[-30, "L"], [30, "R"], [-110, "Ls"], [110, "Rs"]];
a = VBAPSpeakerArray.new(2, speakerList.collect(_.first));
b = Buffer.loadCollection(s, a.getSetsAndMatrices;);

> Audio Bus as Input Signal for VBAP?
vbapIn = Bus.audio(s, 4); // I have a 4 speaker setup

> for a Synth
SynthDef(\sine, {
var sig = SinOsc.ar(440);
Out.ar(\out.kr(0), sig)
}).add;

source = Synth(\sine, [\out, vbapIn]);

> for the VBAP

SynthDef('VBAP 4 chan', { |azi = 0, ele = 0, spr = 0, panWidth, vbapBuf|
var panned, sig;
sig = In.ar(vbapIn);
azi = azi.circleRamp;
panned = VBAP.ar(4, sig, vbapBuf, [azi - (0.5 * panWidth), azi + (0.5 * panWidth)], ele, spr);
}).play(s, [vbapBuf: b.bufnum, azi: panBus.asMap, width: widthBus.asMap]);

But there seems to be no source signal, unless it is hardcoded in in the VBAP SynthDef.
How could it work with different Synths being panned by VBAP?

thank you
b

If someone is wondering how this problem could be solved. In the helpfile I turned to the last example.

a = VBAPSpeakerArray.new(2, speakerList.collect(_.first));
b = a.loadToBuffer;

SynthDef('VBAP 5 chan', { |azi = 0, ele = 0, spr = 0, width = 60, vbapBuf|
var panned, source;
source = SinOsc.ar([440, 660], 0, Decay2.ar(Impulse.ar([1, 0.9]), 0.1, 0.2));
azi = azi.circleRamp;
panned = VBAP.ar(5, source, vbapBuf, [azi - (0.5 * width), azi + (0.5 * width)], ele, spr);
// 'standard' channel order for 5.1
[0, 1, 2, 4, 5].do({arg bus, i; Out.ar(bus, panned[0][i])});
[0, 1, 2, 4, 5].do({arg bus, i; Out.ar(bus, panned[1][i])});
}).play(s, [vbapBuf: b.bufnum, azi: panBus.asMap, width: widthBus.asMap]);

Since I was looking for a SynthDef to be called a arbitrary moments, I just changed the last bit from .play to .add.

SynthDef('VBAP 4 chan', { |azi = 0, ele = 0, spr = 0, panWidth, vbapBuf|
var panned, source;
source = SinOsc.ar([\freq1.kr(440), \freq2.kr(660)], 0, Decay2.ar(Impulse.ar([1, 0.9]), 0.1, \decay.kr(0.2));
azi = azi.circleRamp;
panned = VBAP.ar(4, sig, vbapBuf, [azi - (0.5 * panWidth), azi + (0.5 * panWidth)], ele, spr);
 [0, 1, 2, 3].do({arg bus, i; Out.ar(bus, panned[0][i])});
 [0, 1, 2, 3].do({arg bus, i; Out.ar(bus, panned[1][i])});
}).add;

To instanciate, I call

x = Synth('VBAP 4 chan', [\azi, rrand(-130, 130), \args...])

Maybe this is too obvious to be worth posting, but I was just glad to have solved it and there you go.