DIY "Final Scratch" Turntable DSP

This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
There's a set of equipment that costs $2,999 US which essentially consists of two special records, a phono preamp & DAC x 2, a USB interface and some special software. The software listens to the records and from it tells if you have moved the record as it is playing, also known as "scratching". By this it can control a digital version of the file, working as if it were on the record itself.

I'd of course not like to pay three thousand dollars for a relatively simple device. I imagine I could get the records as "replacements". I imagine I should get my hands on the records so a proper analysis of how it tracks position could be achieved. In any event, I am looking for any insight into the matter, suggestions, etc.

Sounds like a good idea, except what about the fader? You wouldn't be able to use a standard DJ or skratch mixer, since using the crossfader would make the computer think you weren't moving the record at times. I am assuming it comes with some sort of fader, right?

Sounds like a good idea, but it will never catch on at that price... I'd rather spend a little more and buy a vinyl recorder (if the price ever comes down=)
a friend of mine wanted to do this exact same project.

I would imagine that the disc just contains a constant tone, and a simple frequency count done on the input to the USB box can be used to determine the rate at which the disk is spinning. An easy way to monitor the direction the disk is turning (since you'll need to know when it's going backwards) is to have the left and right channels 90degrees out of phase, so that the phase relationship reverses when the disk is going backwards.

More sophisticated yet would be a multi-tone waveform, such that as you slow the turntable down and the frequency of the tones decrease, you're not as susceptible to the low measurement resolution when the disc is turning very slow Eg, you can switch to tones recorded at higher frequencies.

I can't be certain that they're using this method, but it seems the most likely and straghtforward.

Anyway, one way to do this measurement is by inputting the tones to your soundcard and performing an FFT to get the frequency spectrum. After that, it wouldn't take any particularly fancy software to figure out which tone is providing the best measurement resolution, and thus deduce the speed and direction of the turntable.

This bypasses the USB box, but in case you wanted the other controls to use, you can build your own USB box around the FT8U245AM. This is a very simple USB device chip which will interface very easily with a microcontroller, and also comes with free device drivers for windows and linux etc...

Now, the real challenge is to figure out how to write the software to dymanically alter the sound from your input files in real-time so that the output matches your scratching. You'll have to program a custom polyphase digital interpolation filter to do asynchronous sample rate conversion over a very wide range of sample rate ratios. Alternately, if you only want to beat-match, you can avoid pitch shifts by first doing a DCT operation (unneccesary if your source material is mp3) and then simply slowing down the outputs without changing the frequencies. Getting it all to operate with high sound fidelity will be a challenge...

Anyway, keep us posted if you do decide to take on this little project, and what results you achieve.
not a single frequency

The key to final scratch is that they can place the point in the song you wish to be at from the location of the needle...

so the frequency needs to change during the course of the song...

perhaps two intermingled freqencies, one constant and the other changing... the ration of the two could tell you where in the song you were, and the rate of the constantly encoded frequency coudl tell you how fast the record is moving...
hmm.. i guess positional info is another way of doing it. perhaps a large incrementing number (eg 32-bit) could be encoded, using something like manchester enoding and a timebase reference tone on the other channel. As the disc slows down, the level transisions would just show up as short ransients., while the timebase reference tone provides an indication of how far apart the level transisions should be. Add a short header and footer to each encoded number and now you have a way of telling which direction the disc is spinning, and when each number starts and ends.

I guess it all depends if you need the absolute position information, or if velocity info would be enough (i've never used a Final Scratch, so I'm not too familiar with it's use or features...)
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.