(
SynthDef(\testEvt,{
arg out, gate = 1;
var sint = Blip.ar(440) * Linen.kr(gate,doneAction:2,releaseTime:0.8);
Out.ar(out, Pan2.ar(sint, 0));
}).add();
Synth(\testEvt)
(instrument: \testEvt, freq:220, sustain: inf).play;
(instrument: \testEvt,freq:220).play;
)
Выполнение первой и второй линии после SynthDef бы создать синтезатор, который playes навсегда, в то время как синтезатор третьей линии играет в течение 0,8 секунд, как на значение по умолчанию сгенерированный событий.Supercollider: автомат поддержания в событиях с конвертом
Проблема в том, что я не использую «сустейн» в любом месте своего SynthDef, и он автоматически используется только потому, что есть Linen.
То же самое не происходит для freq: оба события играют на 440, а не на 220, и это только потому, что SynthDef не использует «freq» в качестве аргумента. Итак, почему выдержка не соответствует тому же правилу?
Также есть способ ссылки на синтезаторы, созданные событием? Так что, когда у них есть sustain: inf
в качестве аргумента, я могу освободить их позже.