TB2 classes: Reduce boiler plate

nix
Owen Green 6 years ago
parent 7aea07c621
commit c742f4d14e

@ -1,30 +1,20 @@
FluidDataSet : UGen { FluidDataSet : FluidManipulationClient {
var <> synth, <> server; var <>synth, <>server, <>id;
*kr{ |name, dims| *kr{ |name, dims|
^this.multiNew('control',name, dims); ^this.new1('control',name, dims);
} }
*new{ |server, name, dims| init { |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|
var ascii = name.ascii; 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| asString {
//Send the number of inputs (size of provider string) as specialIndex, ^id
//so server plugin knows what's going on
specialIndex = -1;
inputs = [size].addAll(chars);
} }
addPoint{|label, buffer, action| addPoint{|label, buffer, action|
@ -63,14 +53,4 @@ FluidDataSet : UGen {
this.pr_sendMsg(\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));
}
} }

@ -1,22 +1,7 @@
FluidKDTree : UGen { FluidKDTree : FluidManipulationClient {
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
}
index{|dataset,action| index{|dataset,action|
this.pr_sendMsg(\index,[dataset],action); this.pr_sendMsg(\index,[dataset.asString],action);
} }
kNearest{ |buffer, k,action| kNearest{ |buffer, k,action|
@ -24,7 +9,7 @@ FluidKDTree : UGen {
} }
kNearestDist { |buffer, k,action| 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| cols { |action|
@ -39,16 +24,4 @@ FluidKDTree : UGen {
this.pr_sendMsg(\write,[filename],action); 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));
}
} }

@ -1,34 +1,34 @@
FluidKMeans : UGen { FluidKMeans : FluidManipulationClient {
var <> synth, <> server; /* var <> synth, <> server,k;
*kr { *kr {
^this.multiNew('control'); ^this.multiNew('control',Done.none);
} }
*/
*new{ |server| /* *new{ |server|
var synth, instance; var synth, instance;
server = server ? Server.default; server = server ? Server.default;
this.asString.postln;
if(server.serverRunning.not,{"ERROR: FluidKMeans server not running".postln; ^nil});
synth = {instance = FluidKMeans.kr()}.play(server); synth = {instance = FluidKMeans.kr()}.play(server);
instance.server = server; instance.server = server;
instance.synth = synth; instance.synth = synth;
^instance ^instance
} }*/
train{|dataset,k, maxIter = 100, buffer, action|
fit{|dataset,k, maxIter = 100, buffer, action|
buffer = buffer ? -1; buffer = buffer ? -1;
this.k = k;
this.pr_sendMsg(\train,[dataset, k,maxIter, buffer.asUGenInput],action); this.pr_sendMsg(\fit,[dataset.asString, k,maxIter, buffer.asUGenInput],action,[numbers(FluidMessageResponse,_,k,_)]);
} }
cluster{ |dataset, labelset, k, maxIter=100, buffer,action| predict{ |dataset, labelset,action|
buffer = buffer ? -1; this.pr_sendMsg(\predict,[dataset.asString, labelset.asString],action,[numbers(FluidMessageResponse,_,this.k,_)]);
this.pr_sendMsg(\cluster,[dataset, labelset, k, maxIter, buffer.asUGenInput],action,k.collect{string(FluidMessageResponse,_,_)});
} }
predict { |buffer, action| predictPoint { |buffer, action|
this.pr_sendMsg(\predict,[buffer.asUGenInput],action,[numbers(FluidMessageResponse,_,1,_)]); this.pr_sendMsg(\predictPoint,[buffer.asUGenInput],action,[numbers(FluidMessageResponse,_,1,_)]);
} }
cols { |action| cols { |action|

@ -1,42 +1,19 @@
FluidKNN : UGen { FluidKNN : FluidManipulationClient {
var <> synth, <> server;
*kr { |dims,k| *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| index{|dataset, action|
this.pr_sendMsg(\index,[dataset],action); this.pr_sendMsg(\index,[dataset.asUGenInput],action);
} }
classify{ |buffer, labelset, k, 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| 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));
}
} }

@ -1,30 +1,19 @@
FluidLabelSet : UGen { FluidLabelSet : FluidManipulationClient {
var <> synth, <> server; var <> synth, <> server, id;
*kr{ |name| *kr{ |name|
^this.multiNew('control',name); ^this.multiNew('control',name);
} }
*new{ |server, name| init { |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|
var ascii = name.ascii; 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| asString {
//Send the number of inputs (size of provider string) as specialIndex, ^id;
//so server plugin knows what's going on
specialIndex = -1;
inputs = [size].addAll(chars);
} }
addPoint{|id, label, action| addPoint{|id, label, action|
@ -62,15 +51,4 @@ FluidLabelSet : UGen {
clear { |action| clear { |action|
this.pr_sendMsg(\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));
}
} }

@ -1,30 +1,19 @@
FluidNormalize : UGen { FluidNormalize : FluidManipulationClient {
var <> synth, <> server;
*kr{ |min, max| *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| fit{|dataset, action|
this.pr_sendMsg(\fit,[dataset],action); this.pr_sendMsg(\fit,[dataset.asUGenInput],action);
} }
normalize{|sourceDataset, destDataset, 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| normalizePoint{|sourceBuffer, destBuffer, action|
this.pr_sendMsg(\normalizePoint,[sourceBuffer, destBuffer],action); this.pr_sendMsg(\normalizePoint,[sourceBuffer.asUGenInput, destBuffer.asUGenInput],action);
} }
cols {|action| cols {|action|
@ -39,14 +28,4 @@ FluidNormalize : UGen {
this.pr_sendMsg(\write,[filename],action); 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));
}
} }

@ -1,30 +1,15 @@
FluidStandardize : UGen { FluidStandardize : FluidManipulationClient {
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
}
fit{|dataset, action| fit{|dataset, action|
this.pr_sendMsg(\fit,[dataset],action); this.pr_sendMsg(\fit,[dataset.asUGenInput],action);
} }
standardize{|sourceDataset, destDataset, 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| standardizePoint{|sourceBuffer, destBuffer, action|
this.pr_sendMsg(\standardizePoint,[sourceBuffer, destBuffer],action); this.pr_sendMsg(\standardizePoint,[sourceBuffer.asUGenInput, destBuffer.asUGenInput],action);
} }
cols {|action| cols {|action|
@ -39,14 +24,4 @@ FluidStandardize : UGen {
this.pr_sendMsg(\write,[filename],action); 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));
}
} }
Loading…
Cancel
Save