У меня есть простой SynthDef где я хочу использовать CCIn
класс, например, так:Переходя аргумент к SynthDef не регистрирует, когда синт инициализируется
(
SynthDef(\lfo_sin, {|bus, amp, myArg|
var m = CCIn.new;
var v = [300, 700, \exp].asSpec;
var sig = SinOsc.ar(m.kr(0, myArg, v), mul:amp);
Out.ar(bus, sig);
}).add;
)
Когда я его экземпляр, как так y = Synth(\lfo_sin, [\bus, 0, \amp, 1, \myArg, 71]);
, чтобы совместим с MIDI CC на моем MIDI-контроллере, я не могу использовать метод CCIn.kr
, как я должен.
Если я однако непосредственно ввести в MIDI CC, когда я определяю SynthDef так:
(
SynthDef(\lfo_sin2, {|bus, amp|
var m = CCIn.new;
var v = [300, 700, \exp].asSpec;
var sig = SinOsc.ar(m.kr(0, 71, v), mul:amp);
Out.ar(bus, sig);
}).add;
)
все работает, как и должно быть, и я могу управлять частотой, используя свой MIDI-контроллер.
Почему такое поведение происходит и как я могу изменить свой код, чтобы я мог передавать MIDI-CC при инициализации синтезатора или значение после этого аргумента?