diff --git a/release-packaging/Classes/FluidDataSet.sc b/release-packaging/Classes/FluidDataSet.sc index 3a9a65b..bba6894 100644 --- a/release-packaging/Classes/FluidDataSet.sc +++ b/release-packaging/Classes/FluidDataSet.sc @@ -1,30 +1,20 @@ -FluidDataSet : UGen { +FluidDataSet : FluidManipulationClient { - var <> synth, <> server; + var <>synth, <>server, <>id; *kr{ |name, dims| - ^this.multiNew('control',name, dims); + ^this.new1('control',name, dims); } - *new{ |server, name, dims| - var synth, instance; - server = server ? Server.default; - synth = {instance = FluidDataSet.kr(name,dims)}.play(server); - instance.server = server; - instance.synth = synth; - ^instance - } - - *new1 { |rate, name, dims| + init { |name, dims| var ascii = name.ascii; - ^super.new1(*[rate, ascii.size].addAll(ascii)++dims); + this.id = name; + // specialIndex = -1; + inputs = [ascii.size].addAll(ascii)++dims++Done.none++FluidManipulationClient.nonBlocking; } - init { |size...chars| - //Send the number of inputs (size of provider string) as specialIndex, - //so server plugin knows what's going on - specialIndex = -1; - inputs = [size].addAll(chars); + asString { + ^id } addPoint{|label, buffer, action| @@ -63,14 +53,4 @@ FluidDataSet : UGen { this.pr_sendMsg(\clear,[],action); } - pr_sendMsg { |msg, args, action,parser| - OSCFunc( - { |msg| - var result = FluidMessageResponse.collectArgs(parser,msg.drop(3)); - if(result.notNil){action.value(result)}{action.value}; - },'/'++msg - ).oneShot; - - this.server.listSendMsg(['/u_cmd',this.synth.nodeID,this.synthIndex,msg].addAll(args)); - } } \ No newline at end of file diff --git a/release-packaging/Classes/FluidKDTree.sc b/release-packaging/Classes/FluidKDTree.sc index c2ba2c3..18f15a1 100644 --- a/release-packaging/Classes/FluidKDTree.sc +++ b/release-packaging/Classes/FluidKDTree.sc @@ -1,22 +1,7 @@ -FluidKDTree : UGen { - - var <> synth, <> server; - - *kr { - ^this.multiNew('control'); - } - - *new{ |server| - var synth, instance; - server = server ? Server.default; - synth = {instance = FluidKDTree.kr()}.play(server); - instance.server = server; - instance.synth = synth; - ^instance - } +FluidKDTree : FluidManipulationClient { index{|dataset,action| - this.pr_sendMsg(\index,[dataset],action); + this.pr_sendMsg(\index,[dataset.asString],action); } kNearest{ |buffer, k,action| @@ -24,7 +9,7 @@ FluidKDTree : UGen { } kNearestDist { |buffer, k,action| - this.pr_sendMsg(\kNearestDist,[buffer.asUGenInput,k],action,[numbers(FluidMessageResponse,_,3,_)]); + this.pr_sendMsg(\kNearestDist,[buffer.asUGenInput,k],action,[numbers(FluidMessageResponse,_,k,_)]); } cols { |action| @@ -39,16 +24,4 @@ FluidKDTree : UGen { this.pr_sendMsg(\write,[filename],action); } - pr_sendMsg { |msg, args, action,parser| - - OSCFunc( - { |msg| - var result; - // msg.postln; - result = FluidMessageResponse.collectArgs(parser,msg.drop(3)); - if(action.notNil){action.value(result)}{action.value}; - },'/'++msg).oneShot; - - this.server.listSendMsg(['/u_cmd',this.synth.nodeID,this.synthIndex,msg].addAll(args)); - } } diff --git a/release-packaging/Classes/FluidKMeans.sc b/release-packaging/Classes/FluidKMeans.sc index 08d315e..69caa79 100644 --- a/release-packaging/Classes/FluidKMeans.sc +++ b/release-packaging/Classes/FluidKMeans.sc @@ -1,34 +1,34 @@ -FluidKMeans : UGen { +FluidKMeans : FluidManipulationClient { - var <> synth, <> server; + /* var <> synth, <> server,k; *kr { - ^this.multiNew('control'); + ^this.multiNew('control',Done.none); } - - *new{ |server| +*/ +/* *new{ |server| var synth, instance; server = server ? Server.default; + this.asString.postln; + if(server.serverRunning.not,{"ERROR: FluidKMeans – server not running".postln; ^nil}); synth = {instance = FluidKMeans.kr()}.play(server); instance.server = server; instance.synth = synth; ^instance - } - - train{|dataset,k, maxIter = 100, buffer, action| + }*/ + fit{|dataset,k, maxIter = 100, buffer, action| buffer = buffer ? -1; - - this.pr_sendMsg(\train,[dataset, k,maxIter, buffer.asUGenInput],action); + this.k = k; + this.pr_sendMsg(\fit,[dataset.asString, k,maxIter, buffer.asUGenInput],action,[numbers(FluidMessageResponse,_,k,_)]); } - cluster{ |dataset, labelset, k, maxIter=100, buffer,action| - buffer = buffer ? -1; - this.pr_sendMsg(\cluster,[dataset, labelset, k, maxIter, buffer.asUGenInput],action,k.collect{string(FluidMessageResponse,_,_)}); + predict{ |dataset, labelset,action| + this.pr_sendMsg(\predict,[dataset.asString, labelset.asString],action,[numbers(FluidMessageResponse,_,this.k,_)]); } - predict { |buffer, action| - this.pr_sendMsg(\predict,[buffer.asUGenInput],action,[numbers(FluidMessageResponse,_,1,_)]); + predictPoint { |buffer, action| + this.pr_sendMsg(\predictPoint,[buffer.asUGenInput],action,[numbers(FluidMessageResponse,_,1,_)]); } cols { |action| diff --git a/release-packaging/Classes/FluidKNN.sc b/release-packaging/Classes/FluidKNN.sc index 0f00935..464e7c9 100644 --- a/release-packaging/Classes/FluidKNN.sc +++ b/release-packaging/Classes/FluidKNN.sc @@ -1,42 +1,19 @@ -FluidKNN : UGen { - - var <> synth, <> server; +FluidKNN : FluidManipulationClient { *kr { |dims,k| - ^this.multiNew('control'); + ^this.multiNew('control', dims, k, Done.none, super.nonBlocking); } - *new{ |server,dims,k| - var synth, instance; - server = server ? Server.default; - synth = {instance = FluidKNN.kr(dims,k)}.play(server); - instance.server = server; - instance.synth = synth; - ^instance - } - index{|dataset, action| - this.pr_sendMsg(\index,[dataset],action); + this.pr_sendMsg(\index,[dataset.asUGenInput],action); } classify{ |buffer, labelset, k, action| - this.pr_sendMsg(\classify,[buffer.asUGenInput, labelset, k],action,k.collect{string(FluidMessageResponse,_,_)}); + this.pr_sendMsg(\classify,[buffer.asUGenInput, labelset.asUGenInput, k],action,k.collect{string(FluidMessageResponse,_,_)}); } regress { |buffer,dataset, k, action| - this.pr_sendMsg(\regress,[buffer.asUGenInput, dataset,k],action,[numbers(FluidMessageResponse,_,1,_)]); + this.pr_sendMsg(\regress,[buffer.asUGenInput, dataset.asUGenInput,k],action,[numbers(FluidMessageResponse,_,1,_)]); } - pr_sendMsg { |msg, args, action,parser| - - OSCFunc( - { |msg| - var result; - // msg.postln; - result = FluidMessageResponse.collectArgs(parser,msg.drop(3)); - if(action.notNil){action.value(result)}{action.value}; - },'/'++msg).oneShot; - - this.server.listSendMsg(['/u_cmd',this.synth.nodeID,this.synthIndex,msg].addAll(args)); - } } diff --git a/release-packaging/Classes/FluidLabelSet.sc b/release-packaging/Classes/FluidLabelSet.sc index 85daa86..e011802 100644 --- a/release-packaging/Classes/FluidLabelSet.sc +++ b/release-packaging/Classes/FluidLabelSet.sc @@ -1,30 +1,19 @@ -FluidLabelSet : UGen { +FluidLabelSet : FluidManipulationClient { - var <> synth, <> server; + var <> synth, <> server, id; *kr{ |name| ^this.multiNew('control',name); } - *new{ |server, name| - var synth, instance; - server = server ? Server.default; - synth = {instance = FluidLabelSet.kr(name)}.play(server); - instance.server = server; - instance.synth = synth; - ^instance - } - - *new1 { |rate, name| + init { |name| var ascii = name.ascii; - ^super.new1(*[rate, ascii.size].addAll(ascii)); + this.id = name; + inputs = [ascii.size].addAll(ascii)++Done.none++FluidManipulationClient.nonBlocking; } - init { |size...chars| - //Send the number of inputs (size of provider string) as specialIndex, - //so server plugin knows what's going on - specialIndex = -1; - inputs = [size].addAll(chars); + asString { + ^id; } addPoint{|id, label, action| @@ -62,15 +51,4 @@ FluidLabelSet : UGen { clear { |action| this.pr_sendMsg(\clear,[],action); } - - pr_sendMsg { |msg, args, action,parser| - OSCFunc( - { |msg| - var result = FluidMessageResponse.collectArgs(parser,msg.drop(3)); - if(result.notNil){action.value(result)}{action.value}; - },'/'++msg - ).oneShot; - - this.server.listSendMsg(['/u_cmd',this.synth.nodeID,this.synthIndex,msg].addAll(args)); - } } \ No newline at end of file diff --git a/release-packaging/Classes/FluidNormalize.sc b/release-packaging/Classes/FluidNormalize.sc index 45205af..40fc0cc 100644 --- a/release-packaging/Classes/FluidNormalize.sc +++ b/release-packaging/Classes/FluidNormalize.sc @@ -1,30 +1,19 @@ -FluidNormalize : UGen { - - var <> synth, <> server; +FluidNormalize : FluidManipulationClient { *kr{ |min, max| - ^this.multiNew('control',min, max); + ^this.multiNew('control',min, max, Done.none, super.nonBlocking); } - *new{ |server, min, max| - var synth, instance; - server = server ? Server.default; - synth = {instance = FluidNormalize.kr(min,max)}.play(server); - instance.server = server; - instance.synth = synth; - ^instance - } - fit{|dataset, action| - this.pr_sendMsg(\fit,[dataset],action); + this.pr_sendMsg(\fit,[dataset.asUGenInput],action); } normalize{|sourceDataset, destDataset, action| - this.pr_sendMsg(\normalize,[sourceDataset, destDataset],action); + this.pr_sendMsg(\normalize,[sourceDataset.asUGenInput, destDataset.asUGenInput],action); } normalizePoint{|sourceBuffer, destBuffer, action| - this.pr_sendMsg(\normalizePoint,[sourceBuffer, destBuffer],action); + this.pr_sendMsg(\normalizePoint,[sourceBuffer.asUGenInput, destBuffer.asUGenInput],action); } cols {|action| @@ -39,14 +28,4 @@ FluidNormalize : UGen { this.pr_sendMsg(\write,[filename],action); } - pr_sendMsg { |msg, args, action,parser| - OSCFunc( - { |msg| - var result = FluidMessageResponse.collectArgs(parser,msg.drop(3)); - if(result.notNil){action.value(result)}{action.value}; - },'/'++msg - ).oneShot; - - this.server.listSendMsg(['/u_cmd',this.synth.nodeID,this.synthIndex,msg].addAll(args)); - } } \ No newline at end of file diff --git a/release-packaging/Classes/FluidStandardize.sc b/release-packaging/Classes/FluidStandardize.sc index 019646d..efa6bd9 100644 --- a/release-packaging/Classes/FluidStandardize.sc +++ b/release-packaging/Classes/FluidStandardize.sc @@ -1,30 +1,15 @@ -FluidStandardize : UGen { - - var <> synth, <> server; - - *kr{ - ^this.multiNew('control'); - } - - *new{ |server| - var synth, instance; - server = server ? Server.default; - synth = {instance = FluidStandardize.kr}.play(server); - instance.server = server; - instance.synth = synth; - ^instance - } +FluidStandardize : FluidManipulationClient { fit{|dataset, action| - this.pr_sendMsg(\fit,[dataset],action); + this.pr_sendMsg(\fit,[dataset.asUGenInput],action); } standardize{|sourceDataset, destDataset, action| - this.pr_sendMsg(\standardize,[sourceDataset, destDataset],action); + this.pr_sendMsg(\standardize,[sourceDataset.asUGenInput, destDataset.asUGenInput],action); } standardizePoint{|sourceBuffer, destBuffer, action| - this.pr_sendMsg(\standardizePoint,[sourceBuffer, destBuffer],action); + this.pr_sendMsg(\standardizePoint,[sourceBuffer.asUGenInput, destBuffer.asUGenInput],action); } cols {|action| @@ -39,14 +24,4 @@ FluidStandardize : UGen { this.pr_sendMsg(\write,[filename],action); } - pr_sendMsg { |msg, args, action,parser| - OSCFunc( - { |msg| - var result = FluidMessageResponse.collectArgs(parser,msg.drop(3)); - if(result.notNil){action.value(result)}{action.value}; - },'/'++msg - ).oneShot; - - this.server.listSendMsg(['/u_cmd',this.synth.nodeID,this.synthIndex,msg].addAll(args)); - } } \ No newline at end of file