I am using the \setsrc NodeProxy role in an Ndef, and I’m running into an unexpected behavior when I try to set the .quant of the Ndef. I expect the quant value to only determine the next time a new pattern will start after I change the Ndef (same behavior as Pdef). However, when I change quant, it is actually changing the delta time of the Pbind in the Ndef. Is this the correct behavior, is it a bug, or am I doing something wrong? Here is code to demonstrate (SC 3.11.2-rc1 on Raspberry Pi 4):
Ndef.clear; Ndef(\ding, \setsrc -> Pbind(\delta, 1, \source, \default)).play; // changing quant changes the delta time in the Pbind: Ndef(\ding).quant = 2; // delta = 2 // changing quant to 0 goes back to the original delta in the Pbind: Ndef(\ding).quant = 0; // delta = 1 // negative quant changes delta to (-4 * quant) huh??? Ndef(\ding).quant = -0.5; // delta = 2 // clear the Ndef and restart with a new pattern: Ndef(\ding).clear; Ndef(\ding, \setsrc -> Pbind(\delta, Pseq([1/2, 1], inf), \source, \default)).play; // delta is still determined by quant
If this is correct behavior, then how do I set the quant so that, for example, I can start another Ndef pattern on the same down beat? I know I can just use regular Pbinds, but I would like to use the \setsrc NodeProxy role for a thing I’m working on.