@timothyschoen I wanted to share this with you but didn't want to junk up @lacuna's topic, https://forum.pdpatchrepo.info/topic/14101/get-phase-of-osc. Our discussion reminded me of something I learned from @katjav's blog during the pandemic, which is a way to implement the Hilbert transform by outputting the complex conjugate of the frequency domain terms. Jeez, sounds so complicated, but it's much easier to just see the patch:
phase preserving hilbert.pd
To me this is about as cool as it gets. Unlike hilbert~ it doesn't phase shift the original signal, but because the magic is done inside a reblocked FFT you have to wait a fixed amount of time for it. As usual, there's no free lunch.
Edit: No! No! No! It's not the complex conjugate, it's something else. But my main point still stands.