VB fourses freq pair modulation issue

Hi guys! I’m using the Volker Boehm fourses extension (GitHub - v7b1/vb_UGens: a modest collection of UGens for SuperCollider https://supercollider.github.io/) and ran into an issue attempting to independently modulate each frequency of the 4 frequency pairs. When I attempt to use args to modulate each frequency independently only the first four have any effect. Using ugens to modulate each frequency works fine but as soon as one of the frequencies of any pair is modulated as an argument the last four of the eight arguments are truncated. It then seems like only the first four args are sending the same value for both frequencies of each of the four oscillators? Perhaps there’s something I’m misunderstanding about how the fourses frequency array works?

//args to modulate each freq of each freq pair?
(
Ndef(\foursGui, { |f1a,f1b,f2a,f2b,f3a,f3b,f4a,f4b|
	var a;
	a = VBFourses.ar([f1a,f1b,f2a,f2b,f3a,f3b,f4a,f4b],smoother:0.5);
	//add first and second horse on left, third and fourth on right
	LeakDC.ar([a[0] + a[1],a[2] + a[3]], mul: 0.01);
}).play.scope;

Spec.add(\f1a, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\f1b, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\f2a, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\f2b, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\f3a, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\f3b, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\f4a, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\f4b, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
)
Ndef(\foursGui).edit;
//last four slider arg modulations don't do squat

//modulate each freq of each freq pair works fine as ugen
(
{
    var freqs = LFNoise0.ar([4, 3, 2, 1, 1, 2, 3, 4]).range(1,1200);
    var a = VBFourses.ar(freqs, 0.3);
    var b = LeakDC.ar(a) * 0.01;
    Splay.ar(b);
}.play
)
1 Like

My only offhand thought about it is: Try K2A.ar([f1a,f1b,f2a,f2b,f3a,f3b,f4a,f4b]) as the input.

f1a, f1b etc are UGens (well, OutputProxy-es). But they are control rate. The working example uses audio-rate inputs. I can’t say for sure this will fix it, but it is a difference between the two cases.

If that fails, then probably the best way is to log a bug report in the VB repository.

hjh