3 ms·
All turntables have wow. Wow is determined by the rotational speed. So if you measure 33.2326 wow oscillations per minute, you can know the turn table is a touc
by jerf 2y ago
All turntables have wow. Wow is determined by the rotational speed. So if you measure 33.2326 wow oscillations per minute, you can know the turn table is a touch too fast. Wow would not be used to measure the error, it would be used to measure the absolute speed. Getting the error from that point is trivial.
- crazygringo 2y agoI don't think you could use FFT or similar to reliably measure wow to anywhere near the accuracy necessary to produce a reliable amount of correction from just a few seconds of an arbitrary LP. If you were using an LP with a known pure 440 hZ sine wave that you could lock onto exactly, then sure. That's kind of how frequency modulation -- FM radio -- works. But I really don't see how you could do this with songs that are full of frequencies coming in and out and changing all over the place. If you analyzed the full side of the LP, you could probably get enough signal out of that. But trying to measure the precise wavelength of wow when you're only getting a few wavelengths' worth, from a complex signal? I don't see how.
- deleted 2y ago[deleted]
- srcreigh 2y agoMaybe the distortion in the physical disk has some type of signature, and it can be determined whether that distortion is fast or slow. For ex, I would bet that 2x intended speed isn’t simply 2x every frequency in the FFT, when played through vinyl on a physical turntable. Maybe some collection of distortion signals based on disk manufacturing and turntable manufacturing.
- jerf 2y agoI am 100% abundantly positive that signal processing code could do this, and in fact by signal processing standards it's not even particularly hard. You may need more time than the app takes, though I am inclined to think that the app doesn't exactly need a number to twelve significant digits and you could get a single-digit-percentage significant digit lock pretty quickly. Even at 33&1/3rd you only need a few seconds for three or four revolutions. I am much less confident about my claims that it is something you could bash together in "normal code" from an FFT, without advanced math, but it still seems likely to me. You have huge stonking correlations between the frequencies you can exploit. Imagine a normal FFT chart like you've seen any number of times. Now, take that same thing and wave it up and down quite visibly on a sine wave. Nice and big in your imagination so you can see it. You think that's not something that could be picked up? Now, scaling it down to where you can't hear it anymore may make it harder to believe, but the same code will pick it up. To a computer it would still be clear as day. This is one of those things microphones pick up much, much better than human ears, just like microphones trivially pick up a quite 1001Hz tone next to a loud 1000Hz tone even though we can't hear it at all. Compared to, say, recognizing a voice and extracting words from it, this is pretty trivial stuff.
- crazygringo 2y ago> Now, scaling it down to where you can't hear it anymore may make it harder to believe, but the same code will pick it up. That's where you're wrong. FFT frequency bands are surprisingly wide. You can make them narrower but with the tradeoff of losing temporal resolution. And it gets worse the lower the frequency gets. There is absolutely no way you're going to detect a near-0.555 hZ effect from a few seconds of audio and determine whether it's off the frequency by 0.1% or even 1%. Like I said, sure if you're dealing with a pure sine wave. But not a complex signal using FFT. Or to put it another way -- a 1,000 hZ signal? Absolutely. But a 0.5 hZ signal? Absolutely not.
- mlyle 2y agoI agree that FFT is not the easiest tool to use for the job. If I were trying to solve this problem, I'd use autocorrelation. But it still sounds very challenging: there's multiple sources of periodic frequency change both in recordings and in playback mechanisms.
- rerdavies 2y agoThere are various DFT-based algorithms for high-precision pitch detection. Two common algorithms are cepstrum and analysis, and auto-correlation, which involve taking the DFT or inverse DFT of the absolute value of the DFT of the signal. Find the peaks of the result, and then fit a cubic polynomial to the the peak, and the bins on either side, and then calculate the maximum value of the polynomial. The value at the which the maximum occurs determines the inverse frequency, which can then be converted to pitch. Both algorithms produce results that are accurate to less than 0.1 cents. You do have to tweak buffer sizes and windowing depending on what pitch ranges you are interested in, and do some post filtering to skip over transients. The temporal resolution problem is solved by calculating the result on overlapping frames. .
- crazygringo 2y agoSure but the problem remains: you can't do that with only a few oscillations of a weak signal against a loud noisy complex signal. You simply can't detect an inaudible-to-human-ears 0.5 hZ signal from 3 or 5 seconds of complex normal-volume audio, down to the accuracy of cents, much less 0.1 cents. As I said above: a 1,000 hZ signal? Absolutely. But a 0.5 hZ signal? Absolutely not. There just isn't enough signal for that level of precision. No matter what tool you're using.
- mlyle 2y agoI understand what you're saying better, but I don't think you're going to be able to autocorrelate the frequency variation precisely at all from a few revolutions, especially since there are other non-periodic sources of frequency variability.