Vinyl control allows a user to manipulate the playback of a song in Mixxx using a turntable as an interface. In effect, it simulates the sound and feel of having your MP3 collection on vinyl.
Vinyl control uses special timecoded records which are placed on real turntables. The audio output of the turntables is plugged into a computer, on which Mixxx is running. When a record is played on one of the attached turntables, Mixxx decodes the timecode off the record, and uses information from that to manipulate whatever song is loaded.
Mixxx uses xwax to decode Serato/Traktor timecodes.
It's possible to use Mixxx's vinyl control with several hardware setups, but the basic ones are:
Setup 1: Vinyl DJ Two timecoded records, two turntables with phono preamps (or line-out), and two “sound inputs”. You can skip the phono amplifiers if you use the snazzy new software preamp in Mixxx, though this will not provide as clean a signal and may not work for everyone - line-level signals are preferred.
Setup 2: CDJ Two timecoded CDs, two CD decks, and two “sound inputs”.
Now, for the “sound inputs”, you have two options: You can either use a fancy DJ soundcard that has multiple stereo line inputs on it, or can use two soundcards (each with a single stereo line in). Currently, Mixxx's vinyl control has only been tested with the latter configuration. Don't use mic inputs! They're not stereo and won't work!
For best scratch performance with vinyl control, your system must be able to handle setting the latency to 10ms or less otherwise the scratch sound will start to become distorted as latencies (and lag time) increase.
For timecoded records or CDs, you can use any of the records supported by Mixxx:
Timecode Support
| Vinyl | Responsiveness |
|---|---|
| Serato CV02 Vinyl | Very high |
| Serato CV02 CD | Very high |
| Traktor Scratch MK1 Vinyl | Very high |
| Traktor Scratch MK2 Vinyl | Not supported |
| MixVibes DVS V2 Vinyl 1 | Very high |
1 introduced in Mixxx v1.11.0
At the present time, Serato records are the ones you should purchase if you're looking to buy vinyl. If you want to use CDs, you can download a free copy from Serato.
The responsiveness of Serato/Traktor records is limited only by the latency of your soundcard. This latency can be adjusted in Mixxx's preferences under the “Sound Hardware” pane. With a good soundcard which is properly configured and a fast CPU, latencies below 10 ms are possible.
Mixxx supports absolute and relative mode with all of the vinyl listed in the table above.
Note that a seemingly unresponsive effect may be caused by a feature called needle-skip prevention when spinning vinyls fast. For instance fast pullbacks seem to be badly detected because they shall be interpreted as a skipped needle and Mixxx attempts to correct the position. (To control this behaviour it can specifically be enabled or disabled in the “Vinyl Control” pane in the next version.)
Check out these videos (YouTube):
(Need more YouTube videos here, and a screenshot of the prefs dialog)
The downside to vinyl control is that it adds an extra layer of complexity to troubleshooting - Now there's a pair of turntables to worry about in addition to software problems.
To begin troubleshooting any problems you have, please do the following:
Next, verify that the signal is being received by your computer properly.
Click record and hit play on your turntable. After a few seconds, stop Sound Recorder and your turntable. Playback the sound that was just recorded. If you hear a relatively stable tone, your soundcard is probably capturing the timecode signal correctly. If you don't hear a tone, check your recording volume mixer and capture settings. Also, check that your turntable is plugged into the correct plug on your soundcard.
Start xwax with the -t option set for the type of timecode vinyl/cd you're using, -l for the path to your music files, and -d for the sound device your deck is hooked to. (E.g. xwax -t serato_cd -l ~/MusicFiles/ -d /dev/dsp ) More info. Now just start your record/CD and watch the timecode scope (crosshairs) in the upper right corner. You should see a healthy double-circle display. Adjust the input levels using a mixer control for the device (eg. alsamixer). When settled, the circle should approximately fill the timecode scope display but not be cut off. (If you don't see anything, check the mixer program to be sure the Line input is selected/enabled and turned up.)
For both: The last step to try is to launch Mixxx, and go into the “Vinyl Control” pane in the preferences dialog. Select the soundcard with the turntable attached to it under “Deck 1”, and select the timecode you're using. Click OK, then in the menu bar at the top, select “Options→Enable vinyl control”. Load a track into Mixxx's top player (Player 1) and hit play on your turntable. Mixxx should begin playing the track in Player 1.
If you'd rather watch videos on how to troubleshoot vinyl control, here you go:
If you're interested in adding support for more timecode records, your effort is best spent contributing to xwax. Any additional timecode support added to xwax will be included in Mixxx. If you're interested in fixing some of the quirks that happen or adding extra features to the vinyl control support in Mixxx, email Albert and he can help you get started working Mixxx's vinyl control code.