I was thinking about this some today. In the latest geek session @tremblap mentioned that he would have a binary fork at the top of his analysis, and if the pitch confidence is below a certain level, the search would get directed to a KD-tree that omits the pitch part of the descriptor space.
This makes sense, and as a vanilla core for stuff like this, covers some useful bases.
What I was then thinking about is what the mechanism would be for this.
Would you do the normal analysis, stats, and flatten stuff, to end up with your normal “point” to compare against, and then literally peek~
out the pitch confidence, use a vanilla [> 0.8]
(or whatever) and then fork accordingly? Or rather, is the idea to do this kind of forking outside of the fluid.objects~
?
I guess @tremblap is presently working in SC, so perhaps this distinction doesn’t matter so much, but when trying to keep everything in buffer~
s, as is the Max paradigm, having to jump out of that feels like a weird data detour.
I’m also secretly super excited/amped about @weefuzzy’s hinting about signal-rate triggers for fluid.buf
-based processes, whose elegance would be defeated if you still have to exit into the control domain (and back) for part of the data crunching process.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
So all of that is to say, it would be great if fluid.datasetquery~
(or any future improvements/addition to this process) would allow for some logic to be computed, and a result passed. So something like sending a filter confidence > 0.8, return click
message to fluid.datasetquery~
would parse the information, as it presently does for the first half, but rather than being followed by addcolumn
and transform
messages, it would instead report
if a query is true (like [==~]
or whatever).
This would allow for the kind of forking that @tremblap has in mind (and is presently doing(?)), but lets the processing stack all stay within a fluid.
chain.