So I'm working on an updated version of my onset detection patch, and in trying to get more of the patch working in the signal domain, I've run into a problem when I finally want to convert the output of it to the Max domain.
In an initial version I was using [snapshot~ 1], which works fine, but is super expensive, and is a bit slower than the version I came up with.
What I want to do is convert from the signal domain to the Max domain whenever a value has changed. Simple enough right?
So I've gone [sah~] -> [change~] -> [edge~] -> [snapshot~].
In doing this it acts really weirdly. It works a lot of the time, but sometimes it sends the previous value, sometimes it doesn't do anything at all.
This led me to think that there's some kind of weird signal-rate order of operations thing happening, so I've tried versions with some small [delay~]s in the mix, but it didn't help. And I've also tried [deferlow] after [edge~] thinking it was a Max slop thing. Also to no avail.
Any thoughts as to why this isn't working?
OR is there a better way to go about doing this?