From 946ab2c4595d1ba2076fd094b4a3b91dac22494a Mon Sep 17 00:00:00 2001 From: Owen Green Date: Thu, 16 Sep 2021 16:27:00 +0100 Subject: [PATCH] Named KNNClassifier --- .../Classes/FluidKNNClassifier.sc | 21 +++++++++++++++---- src/FluidManipulation/FluidManipulation.cpp | 3 ++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/release-packaging/Classes/FluidKNNClassifier.sc b/release-packaging/Classes/FluidKNNClassifier.sc index 0161bb1..19f8767 100644 --- a/release-packaging/Classes/FluidKNNClassifier.sc +++ b/release-packaging/Classes/FluidKNNClassifier.sc @@ -1,4 +1,4 @@ -FluidKNNClassifier : FluidRealTimeModel { +FluidKNNClassifier : FluidModelObject { var <>numNeighbours, <>weight; @@ -8,7 +8,7 @@ FluidKNNClassifier : FluidRealTimeModel { .weight_(weight); } - prGetParams{^[this.numNeighbours,this.weight,-1,-1];} + prGetParams{^[this.id,this.numNeighbours,this.weight];} fitMsg{|dataSet, labelSet| ^this.prMakeMsg(\fit, id, dataSet.id, labelSet.id) @@ -38,7 +38,7 @@ FluidKNNClassifier : FluidRealTimeModel { } kr{|trig, inputBuffer,outputBuffer| - ^FluidKNNClassifierQuery.kr(K2A.ar(trig), + ^FluidKNNClassifierQuery.kr(trig, this, this.numNeighbours, this.weight, this.prEncodeBuffer(inputBuffer), this.prEncodeBuffer(outputBuffer)); @@ -46,4 +46,17 @@ FluidKNNClassifier : FluidRealTimeModel { } -FluidKNNClassifierQuery : FluidRTQuery {} +FluidKNNClassifierQuery : FluidRTMultiOutUGen { + + *kr{ |trig, model,numNeighbours = 3, weight = 1,inputBuffer, outputBuffer | + ^this.multiNew('control',trig, model.asUGenInput, + numNeighbours,weight, + inputBuffer.asUGenInput, outputBuffer.asUGenInput) + } + + init { arg ... theInputs; + inputs = theInputs; + ^this.initOutputs(1, rate); + } +} + diff --git a/src/FluidManipulation/FluidManipulation.cpp b/src/FluidManipulation/FluidManipulation.cpp index a43b168..29dceb0 100644 --- a/src/FluidManipulation/FluidManipulation.cpp +++ b/src/FluidManipulation/FluidManipulation.cpp @@ -36,8 +36,9 @@ PluginLoad(FluidSTFTUGen) makeSCWrapper("FluidKMeans",ft); makeSCWrapper("FluidKMeansQuery",ft); + makeSCWrapper("FluidKNNClassifier",ft); + makeSCWrapper("FluidKNNClassifierQuery",ft); - makeSCWrapper("FluidKNNClassifier",ft); makeSCWrapper("FluidKNNRegressor",ft); makeSCWrapper("FluidNormalize",ft); makeSCWrapper("FluidRobustScale",ft);