release-packaging/Classes/FluidNRTProcess.sc: Make process() send a done message to the language iff processing is successful, hopefully resolves #34 properly this time

nix
Owen Green 6 years ago
parent 3f89afac0b
commit 278d50c608

@ -22,10 +22,14 @@ FluidNRTProcess : Object{
} }
process{|...ugenArgs| process{|...ugenArgs|
var reply = '/done' ++ UniqueID.next;
synth = { synth = {
ugen.performList(\kr, ugenArgs.collect{|a| a.asUGenInput} ++ Done.freeSelf) var ug = ugen.performList(\kr, ugenArgs.collect{|a| a.asUGenInput} ++ Done.freeSelf);
SendReply.kr(Done.kr(ug),reply)
}.play(server); }.play(server);
synth.postln; synth.postln;
OSCFunc({
forkIfNeeded{ forkIfNeeded{
synth.waitForFree; synth.waitForFree;
server.sync; server.sync;
@ -35,7 +39,8 @@ FluidNRTProcess : Object{
server.sync; server.sync;
}; };
if(action.notNil){action.valueArray(outputBuffers)}; if(action.notNil){action.valueArray(outputBuffers)};
}; }
}, reply).oneShot;
^this; ^this;
} }

Loading…
Cancel
Save