Final Scratch

Final Scratch is a DJ tool created by the Dutch company N2IT with input from Richie Hawtin (aka Plastikman) and John Acquaviva that allows manipulation and playback of digital audio sources using traditional vinyl and turntables. It seeks to cross the divide between the versatility of digital audio and the tactile control of vinyl turntablism.
Concept.
Special vinyl records pressed with a digital timecode are played on normal turntables. The timecode signal is interpreted by a computer, connected to the turntables through an interface called the ScratchAmp. The signal represents where the stylus is on the record, in which direction it is traveling, and at what speed. This information is interpreted by the computer and used to play back a digital audio file which has been 'mapped' to the turntable. In practical terms, this means that any audio file can be manipulated as though it was pressed on vinyl.
Advantages/Disadvantages.
Advantages: 
Disadvantages: 
History.
The original Final Scratch concept and prototypes were developed by the Dutch company N2IT V.O.F, by Mark-Jan Bastian, with help from Tim Hemel and Bill Squire.
It has passed through multiple stages of development. These stages are marked by involvement with different companies, hardware configurations, software developers, licensees and licensors, and operating systems.
Pre-release.
Final Scratch was originally developed for BeOS.
Versions 1.0-1.5.
All versions of Final Scratch 1 use the same Scratchamp, a USB and RCA device in a round aluminium shell. The technical specifications of this device have been closely guarded by Stanton as an anti-piracy measure, though some users, unsatisfied with the latency and instability of the system, have alleged the use of faulty Philips sound chips which had already been withdrawn from the market. However, the same chipset was being used in several other USB audio devices manufactured by companies like Griffin and Roland at that time.
FS 1.0 was released for PC only, on a specially modified distribution of Debian Linux. It was relatively primitive but some users found that, if configured correctly, it outperformed all subsequent versions of Final Scratch 1.x.
With version 1.1, Stanton Magnetics began working with Native Instruments on the software side of the product, which became Traktor Final Scratch. As the name suggests, this bore a resemblance to the interface of Traktor, a Native Instruments software DJing product. This version was once again available on Linux, but was also ported to Mac OS X.
The next major revision was version 1.5, which added a Windows XP version, but dropped Linux support. This version also added the ability to keep the pitch of the record constant whilst shifting the tempo. The interface changed very little, but some users initially had issues with the Windows Scratchamp drivers.
Support for the original Scratchamp has all but since disappeared and current owners, disappointed by the lack of support by Stanton, have had to rely on old versions of Traktor FS or Digiscratch.
Version 2.
Version 2 marks the introduction of both a new Scratchamp hardware device and different software compatibility. 
This new Scratchamp made 24-bit/96 kHz digital quality playback and record possible. Stanton added an ASIO driver, and MIDI capabilities. They also replaced the USB interface with FireWire which was intended to reduce playback latency. The new Scratchamp was developed by Alan Flum, Len Bryan, Mark DeMouy and Jim Mazur.
The version 2 Scratchamp is compatible with Native Instruments Traktor DJ Studio versions 2.6 and through 3.2.0.85 (Mac). NI has dropped support of SA2 in favor of their own vinyl system Traktor Scratch.
Final Scratch Open.
In late 2005, Stanton and Native Instruments ended their working relationship. Stanton still markets the ScratchAmp hardware as part of "Final Scratch Open", introduced in early 2007. Stanton claims that the ScratchAmp can now interact with any audio software through ASIO or WDM on Windows, and CoreAudio in Mac OS X. Although all Windows and Mac audio software is ostensibly compatible with Final Scratch Open, there is no dedicated software program for deejaying with the ScratchAmp hardware.
Internal workings.
The internal workings of Final Scratch are quite simple to understand. Multiple open source software libraries have been created to decode the Final Scratch time code. The information here comes from those libraries.
A basic Final Scratch setup consists of five pieces of equipment.
ScratchAmp.
The ScratchAmp is a FireWire (FS 2, FS Open) or USB (FS 1) audio device. It has two phono/line stereo level inputs to read the timecode from the record or the CD, and two line level stereo outputs to feed into the audio DJ mixer line channels. It also has two phono stereo outputs for pass-through of the actual phono audio signal. This is useful for DJs who wish to play both digital audio tracks AND traditional vinyl; allowing them to switch between the two sources without disconnecting or re-connecting audio jacks in the middle of a DJ set.
The ScratchAmp does not store any audio on its own, it is simply a purpose built external Soundcard. It communicates with a PC—usually a laptop—over the FireWire or USB connection. The laptop uses Final Scratch compatible software (typically Traktor DJ Studio) to interpret the timecode signal from the supplied special vinyl/CD, then play back a digital audio file based on that signal, allowing traditional DJ vinyl control of MP3, WAV and Apple AAC audio files. The Laptop software then sends audio data back, over the same FireWire/USB connection to the scratch amp, which then sends an audio signal out through the line level output, for playing through a DJ Mixer or Amp.
Audio/data routing.
A step by step series of events detailing how Final Scratch operates;
Vinyl/CD time code.
The most complex piece of the Final Scratch setup is the code pressed onto the vinyl. A 1200 hertz amplitude modulated sine wave is pressed into the left and right channels with a phase difference of 90 degrees. Each channel holds one of the two bit streams required for the time code. In one cycle of either wave form, two bits are stored: one on the positive voltage peak and one on the negative voltage valley. The relative amplitudes of these peaks represent either a binary one or zero. A relatively high amplitude on either peak represents a one, a relatively low amplitude represents a zero. In each channel is a separate bitstream, the left channel is not identical to the right (disregarding the phase difference). 
The time codes themselves consist of 40 individual bits, or 20 cycles on each channel's waveform. On the right channel the bit sequence of 0, 0, 0, 1 represents the start sequence for a single time code. Those four bits along with the four corresponding bits on the left channel and the next 16 bits on each channel can be decoded as an integer position value which represents where the needle is on the record. The speed at which the record is spinning can be found by comparing the frequency of the waveform being read from the record to the true frequency of the wave form on the record at normal speed. This difference represents the change from the normal speed at which the record turns. The direction which the record is spinning at any given time can be found using the phase difference between the waves on the two channels. This procedure is the same as that used to determine the direction in which a ball mouse is moving. Because a single time code is made up of 40 consecutive bits, read errors can cause a timecode to be unreadable even if a single bit is misread. A bit that has become unreadable due to a scratch can make an entire 40 bit long time code permanently unreadable. Dust can have a similar effect on the time code. The time code implements very little error checking, an attribute strong in a number of other vinyl control systems.