Replaced HPS pitch estimation with SWIPE (ultra-slim)
Replaced the Harmonic Product Spectrum (HPS) pitch estimator with an ultra-slim implementation of SWIPE (Sawtooth Waveform Inspired Pitch Estimator), adapted from libf0 and based on Arturo Camacho's original algorithm:
https://ufdcimages.uflib.ufl.edu/UF/E0/02/15/89/00001/camacho_a.pdf
SWIPE is an extremely accurate and performant pitch estimator, working on log-spaced frequency bins for precision, and it works well for most voices. Arturo's original implementation and both libf0 versions (full and slim) use multiple FFT sizes [128, 256, 512, 1024, 2048, and 4096] to reduce the pitch strength loss for different frequencies when using suboptimal window sizes, but pitch estimation is still very good with just a single FFT size (4096 for sr > 44100). I've also slightly modified the kernels to weigh the fundamental and first harmonic evenly, which helps prevent cases where a higher strength first harmonic (as in a sung or voiced "eh" ⟨e⟩) is falsely detected as the pitch.
To better align with other voice pitch trackers, a new frequency scale has been added, centered around C and with ticks for each note on the chromatic scale.