You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The method fails when I call it. Tracing the bug, xlineAt() calls performAtControl(), where at line 131 there is this code:
keys.do { arg key, i;
var val = nodeMap.settings[key];
val !? {
val = val.getValue;
val !? { startLevels[i] = val };
bundle = bundle.addAll([key, ctlIndex + i]);
}
};
"settings" doesn't exist on nodeMap, so this fails. This is my fix:
keys.do { arg key, i;
var val = nodeMap.at(key); // here is the bug fix
val !? {
// val = val.getValue; // get rid of this line, too
val !? { startLevels[i] = val };
bundle = bundle.addAll([key, ctlIndex + i]);
}
};
The text was updated successfully, but these errors were encountered:
@hbeere - thanks for the proposal, your fix is an improvement!
I did some more tests which reveal more related problems, @telephon, could you take a look?
Ndef(\x).clear;
Ndef(\x, { SinOsc.ar(\freq.kr(200) + [0, 0.2]) * 0.1 }).play;
Ndef(\x).set(\freq, 400);
Ndef(\x).set(\freq, 600);
Ndef(\x).lineAt(\freq, 800, 1); // goes from resetted value 200 to 800
Ndef(\x).xlineAt(\freq, 300, 1); // goes from
//// issue 1:
Ndef(\x).unset(\freq); // does not go back to 200
Ndef(\x).xlineAt(\freq, 400, 1); // but this goes from default val 200 to 400
// issue 2: fails when control was mapped:
Ndef(\f, { SinOsc.kr(3).range(200, 500) });
Ndef(\x).play.set(\freq, Ndef(\f));
// stays on sinosc and only jumps to goal at the end
Ndef(\x).lineAt(\freq, 500, 1);
// issue 3: lineAt, xLineAt do not work for array values
// set does work for array values:
Ndef(\x, { SinOsc.ar(\freq.kr([200, 300])) * 0.1 }).play;
Ndef(\x).set(\freq, [400, 500]);
Ndef(\x).set(\freq, [600, 700]);
// only sets the first value, second stays where it is:
Ndef(\x).lineAt(\freq, [800, 900], 1);
Ndef(\x).xlineAt(\freq, 300, 1);
/// issue 4: mapping an ndef control to a multichannel bus does not work
b = Bus.control(s, 2);
b.set(300, 400);
b.get;
Ndef(\x).set(\freq, [200, 300]).play;
Ndef(\x).set(\freq, b).play; // only sets one value, not two?
The method fails when I call it. Tracing the bug, xlineAt() calls performAtControl(), where at line 131 there is this code:
"settings" doesn't exist on nodeMap, so this fails. This is my fix:
The text was updated successfully, but these errors were encountered: