From ae87c0a8b88572bf9575f04a4e15a7174e64141b Mon Sep 17 00:00:00 2001 From: Pierre Alexandre Tremblay Date: Tue, 17 Jun 2025 18:10:31 +0200 Subject: [PATCH 1/2] trigger output logic - outputs 1 only if successful query --- include/flucoma/clients/nrt/KMeansClient.hpp | 3 ++- include/flucoma/clients/nrt/KNNClassifierClient.hpp | 3 ++- include/flucoma/clients/nrt/KNNRegressorClient.hpp | 3 ++- include/flucoma/clients/nrt/MLPClassifierClient.hpp | 3 ++- include/flucoma/clients/nrt/MLPRegressorClient.hpp | 3 ++- include/flucoma/clients/nrt/NormalizeClient.hpp | 3 ++- include/flucoma/clients/nrt/PCAClient.hpp | 3 ++- include/flucoma/clients/nrt/RobustScaleClient.hpp | 3 ++- include/flucoma/clients/nrt/SKMeansClient.hpp | 3 ++- include/flucoma/clients/nrt/StandardizeClient.hpp | 3 ++- include/flucoma/clients/nrt/UMAPClient.hpp | 3 ++- 11 files changed, 22 insertions(+), 11 deletions(-) diff --git a/include/flucoma/clients/nrt/KMeansClient.hpp b/include/flucoma/clients/nrt/KMeansClient.hpp index 0ede80a92..9b8e8cdf0 100644 --- a/include/flucoma/clients/nrt/KMeansClient.hpp +++ b/include/flucoma/clients/nrt/KMeansClient.hpp @@ -311,7 +311,7 @@ class KMeansQuery : public FluidBaseClient, ControlIn, ControlOut void process(std::vector>& input, std::vector>& output, FluidContext&) { - output[0] <<= input[0]; + output[0](0) = 0; if (input[0](0) > 0) { auto kmeansPtr = get().get().lock(); @@ -344,6 +344,7 @@ class KMeansQuery : public FluidBaseClient, ControlIn, ControlOut point <<= BufferAdaptor::ReadAccess(get().get()) .samps(0, dims, 0); outSamps[0] = kmeansPtr->algorithm().vq(point); + output[0](0) = 1; } } diff --git a/include/flucoma/clients/nrt/KNNClassifierClient.hpp b/include/flucoma/clients/nrt/KNNClassifierClient.hpp index bc99e4082..9033e4061 100644 --- a/include/flucoma/clients/nrt/KNNClassifierClient.hpp +++ b/include/flucoma/clients/nrt/KNNClassifierClient.hpp @@ -240,7 +240,7 @@ class KNNClassifierQuery : public FluidBaseClient, ControlIn, ControlOut void process(std::vector>& input, std::vector>& output, FluidContext& c) { - output[0] <<= input[0]; + output[0](0) = 0; if (input[0](0) > 0) { auto knnPtr = get().get().lock(); @@ -267,6 +267,7 @@ class KNNClassifierQuery : public FluidBaseClient, ControlIn, ControlOut std::string const& result = classifier.predict( algorithm.tree, point, algorithm.labels, k, weight, c.allocator()); outBuf.samps(0)[0] = static_cast(knnPtr->encodeIndex(result)); + output[0](0) = 1; } } diff --git a/include/flucoma/clients/nrt/KNNRegressorClient.hpp b/include/flucoma/clients/nrt/KNNRegressorClient.hpp index 2a0b49ec6..63d865c02 100644 --- a/include/flucoma/clients/nrt/KNNRegressorClient.hpp +++ b/include/flucoma/clients/nrt/KNNRegressorClient.hpp @@ -240,7 +240,7 @@ class KNNRegressorQuery : public FluidBaseClient, ControlIn, ControlOut void process(std::vector>& in, std::vector>& out, FluidContext& c) { - out[0] <<= in[0]; + out[0](0) = 0; if (in[0](0) > 0) { auto knnPtr = get().get().lock(); @@ -272,6 +272,7 @@ class KNNRegressorQuery : public FluidBaseClient, ControlIn, ControlOut regressor.predict(algorithm.tree, algorithm.target, input, output, k, weight, c.allocator()); outBuf.samps(0) <<= output; + out[0](0) = 1; } } diff --git a/include/flucoma/clients/nrt/MLPClassifierClient.hpp b/include/flucoma/clients/nrt/MLPClassifierClient.hpp index 336362549..5965acb1d 100644 --- a/include/flucoma/clients/nrt/MLPClassifierClient.hpp +++ b/include/flucoma/clients/nrt/MLPClassifierClient.hpp @@ -320,7 +320,7 @@ class MLPClassifierQuery : public FluidBaseClient, ControlIn, ControlOut void process(std::vector>& input, std::vector>& output, FluidContext&) { - output[0] <<= input[0]; + output[0](0) = 0; if (input[0](0) > 0) { auto mlpPtr = get().get().lock(); @@ -350,6 +350,7 @@ class MLPClassifierQuery : public FluidBaseClient, ControlIn, ControlOut auto& label = algorithm.encoder.decodeOneHot(dest); outBuf.samps(0)[0] = static_cast(algorithm.encoder.encodeIndex(label)); + output[0](0) = 1; } } diff --git a/include/flucoma/clients/nrt/MLPRegressorClient.hpp b/include/flucoma/clients/nrt/MLPRegressorClient.hpp index a5cc35958..0aa22ecd8 100644 --- a/include/flucoma/clients/nrt/MLPRegressorClient.hpp +++ b/include/flucoma/clients/nrt/MLPRegressorClient.hpp @@ -305,7 +305,7 @@ class MLPRegressorQuery : public FluidBaseClient, ControlIn, ControlOut void process(std::vector>& input, std::vector>& output, FluidContext&) { - output[0] <<= input[0]; + output[0](0) = 0; if (input[0](0) > 0) { auto MLPRef = get().get().lock(); @@ -341,6 +341,7 @@ class MLPRegressorQuery : public FluidBaseClient, ControlIn, ControlOut .samps(0, inputSize, 0); algorithm.processFrame(src, dest, inputTap, outputTap); outBuf.samps(0, outputSize, 0) <<= dest; + output[0](0) = 1; } } diff --git a/include/flucoma/clients/nrt/NormalizeClient.hpp b/include/flucoma/clients/nrt/NormalizeClient.hpp index 99fecd4b3..5c3b951a5 100644 --- a/include/flucoma/clients/nrt/NormalizeClient.hpp +++ b/include/flucoma/clients/nrt/NormalizeClient.hpp @@ -214,7 +214,7 @@ class NormalizeQuery : public FluidBaseClient, ControlIn, ControlOut void process(std::vector>& input, std::vector>& output, FluidContext&) { - output[0] <<= input[0]; + output[0](0) = 0; if (input[0](0) > 0) { auto normPtr = get().get().lock(); @@ -237,6 +237,7 @@ class NormalizeQuery : public FluidBaseClient, ControlIn, ControlOut .samps(0, algorithm.dims(), 0); algorithm.processFrame(src, dest, get() == 1); outBuf.samps(0, algorithm.dims(), 0) <<= dest; + output[0](0) = 1; } } diff --git a/include/flucoma/clients/nrt/PCAClient.hpp b/include/flucoma/clients/nrt/PCAClient.hpp index aa00a7091..8c0112dcc 100644 --- a/include/flucoma/clients/nrt/PCAClient.hpp +++ b/include/flucoma/clients/nrt/PCAClient.hpp @@ -241,7 +241,7 @@ class PCAQuery : public FluidBaseClient, ControlIn, ControlOut void process(std::vector>& input, std::vector>& output, FluidContext& c) { - output[0] <<= input[0]; + output[0](0) = 0; if (input[0](0) > 0) { auto PCAPtr = get().get().lock(); @@ -266,6 +266,7 @@ class PCAQuery : public FluidBaseClient, ControlIn, ControlOut .samps(0, algorithm.dims(), 0); algorithm.processFrame(src, dest, k, get() == 1); outBuf.samps(0, k, 0) <<= dest; + output[0](0) = 1; } } diff --git a/include/flucoma/clients/nrt/RobustScaleClient.hpp b/include/flucoma/clients/nrt/RobustScaleClient.hpp index 1c77eb234..f14cb88ad 100644 --- a/include/flucoma/clients/nrt/RobustScaleClient.hpp +++ b/include/flucoma/clients/nrt/RobustScaleClient.hpp @@ -216,7 +216,7 @@ class RobustScaleQuery : public FluidBaseClient, ControlIn, ControlOut void process(std::vector>& input, std::vector>& output, FluidContext&) { - output[0] <<= input[0]; + output[0](0) = 0; if (input[0](0) > 0) { auto robustPtr = get().get().lock(); @@ -239,6 +239,7 @@ class RobustScaleQuery : public FluidBaseClient, ControlIn, ControlOut .samps(0, algorithm.dims(), 0); algorithm.processFrame(src, dest, get() == 1); outBuf.samps(0, algorithm.dims(), 0) <<= dest; + output[0](0) = 1; } } diff --git a/include/flucoma/clients/nrt/SKMeansClient.hpp b/include/flucoma/clients/nrt/SKMeansClient.hpp index fcefb3d88..9a065de55 100644 --- a/include/flucoma/clients/nrt/SKMeansClient.hpp +++ b/include/flucoma/clients/nrt/SKMeansClient.hpp @@ -320,7 +320,7 @@ class SKMeansQuery : public FluidBaseClient, ControlIn, ControlOut void process(std::vector>& input, std::vector>& output, FluidContext&) { - output[0] = input[0]; + output[0](0) = 0; if (input[0](0) > 0) { auto kmeansPtr = get().get().lock(); @@ -342,6 +342,7 @@ class SKMeansQuery : public FluidBaseClient, ControlIn, ControlOut point <<= BufferAdaptor::ReadAccess(get().get()) .samps(0, dims, 0); outSamps[0] = kmeansPtr->algorithm().vq(point); + output[0](0) = 1; } } diff --git a/include/flucoma/clients/nrt/StandardizeClient.hpp b/include/flucoma/clients/nrt/StandardizeClient.hpp index 9697b3f03..a0de70cb3 100644 --- a/include/flucoma/clients/nrt/StandardizeClient.hpp +++ b/include/flucoma/clients/nrt/StandardizeClient.hpp @@ -210,7 +210,7 @@ class StandardizeQuery : public FluidBaseClient, ControlIn, ControlOut void process(std::vector>& input, std::vector>& output, FluidContext&) { - output[0] <<= input[0]; + output[0](0) = 0; if (input[0](0) > 0) { auto stdPtr = get().get().lock(); @@ -235,6 +235,7 @@ class StandardizeQuery : public FluidBaseClient, ControlIn, ControlOut .samps(0, algorithm.dims(), 0); algorithm.processFrame(src, dest, get() == 1); outBuf.samps(0, algorithm.dims(), 0) <<= dest; + output[0](0) = 1; } } diff --git a/include/flucoma/clients/nrt/UMAPClient.hpp b/include/flucoma/clients/nrt/UMAPClient.hpp index bf60d4024..593104a92 100644 --- a/include/flucoma/clients/nrt/UMAPClient.hpp +++ b/include/flucoma/clients/nrt/UMAPClient.hpp @@ -207,7 +207,7 @@ class UMAPQuery : public FluidBaseClient, ControlIn, ControlOut void process(std::vector>& input, std::vector>& output, FluidContext&) { - output[0] <<= input[0]; + output[0](0) = 0; if (input[0](0) > 0) { auto UMAPPtr = get().get().lock(); @@ -233,6 +233,7 @@ class UMAPQuery : public FluidBaseClient, ControlIn, ControlOut .samps(0, inSize, 0); algorithm.transformPoint(src, dest); outBuf.samps(0, outSize, 0) <<= dest; + output[0](0) = 1; } } From 45d24bcc187b8b1f198a1d831d043d281412d040 Mon Sep 17 00:00:00 2001 From: Pierre Alexandre Tremblay Date: Tue, 17 Jun 2025 18:17:59 +0200 Subject: [PATCH 2/2] change post inconsistency fix --- include/flucoma/clients/nrt/KNNRegressorClient.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/flucoma/clients/nrt/KNNRegressorClient.hpp b/include/flucoma/clients/nrt/KNNRegressorClient.hpp index b0b986048..c07201f0d 100644 --- a/include/flucoma/clients/nrt/KNNRegressorClient.hpp +++ b/include/flucoma/clients/nrt/KNNRegressorClient.hpp @@ -240,8 +240,8 @@ class KNNRegressorQuery : public FluidBaseClient, ControlIn, ControlOut void process(std::vector>& input, std::vector>& output, FluidContext& c) { - out[0](0) = 0; - if (in[0](0) > 0) + output[0](0) = 0; + if (input[0](0) > 0) { auto knnPtr = get().get().lock(); if (!knnPtr) @@ -271,8 +271,8 @@ class KNNRegressorQuery : public FluidBaseClient, ControlIn, ControlOut regressor.predict(algorithm.tree, algorithm.target, in, out, k, weight, c.allocator()); - outBuf.samps(0) <<= output; - out[0](0) = 1; + outBuf.samps(0) <<= out; + output[0](0) = 1; } }