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| free { |action|
serverCaches.remove(server,id); serverCaches.remove(server,id);
if(server.serverRunning){this.prSendMsg(\free,[],action)}; fork{
super.free; if(server.serverRunning){this.prSendMsg(\free,[],action)};
server.sync;
super.free;
}
} }
*freeAll { |server| *freeAll { |server|
serverCaches.tryPerform(\clearCache,server); serverCaches.tryPerform(\clearCache,server);
} }
} }

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

Loading…
Cancel
Save