Started today with a bit of tab pruning. I also spent a few minutes reading through the GNU Radio docs on [quadrature demod](https://wiki.gnuradio.org/index.php/Quadrature_Demod), which is a technique I think I saw in some other blog posts. There's some magic where you can take every pair of IQ samples and multiply one by the conjugate of the other and the phase is magically the frequency? IQ stuff still seems very magical to me, but this technique seems fast but I don't know how it works with Audio streams... So, do I actually want to do audio decoding or work with raw IQ samples? I think there's a difference, and that I can't audio into IQ samples... But a quick google leads me to [DSP Stackexchange](https://dsp.stackexchange.com/questions/52090/how-to-convert-sampled-real-audio-signal-to-its-iq-components-for-iq-modulation) > If you have a real valued signal that came right out of an A/D and you’d like to recover signal phase, you can use the Hilbert transform to generate a version of the signal that is in quadrature with your A/D output. In this case, your original real valued signal would be the I component (in-phase) and the output of the Hilbert transform multiplied by j, the imaginary number, would be your Q component (quadrature). Interestingly, the [scipy.signal.hilbert](https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.hilbert.html) page mentions that the instantaneous phase corresponds to the phase of a sample, which sort of mirrors the quadrature demod. It also mentions that the "instantaneous frequency can be obtained by differentiating the instantaneous phase in respect to time", which starts to look like the quadrature demod again, but with a different order of operations.