KISS-erer: No trickery with Synth.basicNew

because we can't communicate with the Node afterwards
nix
Owen Green 6 years ago
parent 99496a6633
commit 188f0f9133

@ -78,11 +78,14 @@ FluidDataSet : FluidManipulationClient {
free { |action|
serverCaches.remove(server,id);
if(server.serverRunning){this.prSendMsg(\free,[],action)};
super.free;
fork{
if(server.serverRunning){this.prSendMsg(\free,[],action)};
server.sync;
super.free;
}
}
*freeAll { |server|
serverCaches.tryPerform(\clearCache,server);
}
}
}

@ -29,6 +29,11 @@ FluidManipulationClient {
^[ascii.size].addAll(ascii)
}
*newFromDesc { arg rate, numOutputs, inputs, specialIndex;
^FluidProxyUgen.newFromDesc(rate, numOutputs, inputs, specialIndex)
}
*new{ |server...args|
server = server ? Server.default;
if(server.serverRunning.not,{
@ -46,34 +51,29 @@ FluidManipulationClient {
var ugen = FluidProxyUgen.kr(this.class.name, *args);
this.ugen = ugen;
ugen
});
}).add;
synth = Synth.basicNew(defName,server);
persist = true;
onSynthFree = {
synth = nil;
if(persist){
synth = Synth.after(server.defaultGroup,defName);
synth.onFree(onSynthFree);
//If we don't sync here, cmd-. doesn't reset properly (but server.freeAll does)
fork {
server.sync;
synth = Synth(defName,target: RootNode(server));
synth.onFree{onSynthFree.value};
}
}
};
synth.onFree(onSynthFree);
CmdPeriod.add(onSynthFree);
makeFirstSynth ={
var synthMsg= synth.newMsg(server.defaultGroup,\addAfter);
def.send(server,synthMsg);
};
if(server.serverRunning)
{ makeFirstSynth.value}
{server.doWhenBooted(makeFirstSynth)};
server.doWhenBooted{onSynthFree.value};
}
free{
persist = false;
CmdPeriod.remove(onSynthFree);
synth = nil;
synth.tryPerform(\free);
^nil
}
prSendMsg { |msg, args, action,parser|

Loading…
Cancel
Save