For analysis gen~ examples (like gen~.centroid), it would be nice to output floats, but it doesn’t appear possible to do that. Correct me if I’m wrong.
If it doesn’t, that brings me to something else that’s always confused me: the hit going from msp to max. Number~ is slow and has update limitations, and snapshot is also pretty slow. I realize that sampling rates, I/O vector sizes, and signal vector sizes all have an effect. The actual centroid~ object can take in signal and output float very well, shouldn’t gen~ be able to?
This is something that has puzzled me for a while, and I appreciate any clarification on it.
Yes, gen~ will only output signals at this stage. If a gen~ patcher writes to a named history object, then this history value can be read as an attribute of the gen~ in the standard way, but it might be easier to just put a snapshot~ on a signal outlet of gen~.
Not quite sure what you mean by ‘snapshot~ is slow’. The relationships between schedulers and the audio process depends in ‘Scheduler In Audio Interrupt’ is enabled, and whether the messages to trigger snapshot~ come from a low priority scheduler (defer, qmetro, etc.). I can understand that this is puzzling though!