Getting started with xwax

Getting xwax up and running isn't difficult at all, as long as you have a working Linux system and soundcard. If you're having problems, consult the troubleshooting page.

Building from source

Download the source code and read the INSTALL file for instructions. You're likely to end up with something like:

$ tar xvzf xwax-1.0.tar.gz
$ cd xwax-1.0
$ make PREFIX=/usr/local ALSA=yes
$ su
# make PREFIX=/usr/local ALSA=yes install

Compilation errors are most likely the result of missing libraries. See the troubleshooting page and read that INSTALL file again. If you don't want to build from source, there may be an unofficial package for your Linux distribution.

Starting the software

Once installed, xwax runs from the command line. The arguments to the program setup audio devices, music directories etc.. To get started, try a single deck using ALSA:

$ xwax -l ~/music -a hw:0

For lowest latency, xwax will increase the scheduling priority of the audio playback thread. Since xwax 1.0, this is required and xwax will not start without it. See the troubleshooting guide if you encounter this.

Once you have a basic setup, you can give extra devices for more decks and other options, eg.

$ xwax -t serato_2b -l ~/music -l cdtracks -a hw:1 -a hw:2

What you're actually doing in the command above is:

xwaxRunning the xwax command
-t serato_2bUsing Serato 2nd Edition, side B timecode (see xwax -h for available timecodes)
-l ~/musicA path to a directory containing music tracks
-l cdtracksA path to a directory containing the virtual music tracks (which instruct the importer to extract from audio CD)
-a hw:1Audio device for first deck
-a hw:2Another audio device for second deck

As you will have seen above, some of the parameters can be specified multiple times; eg. if you have many disjoint directories of music. For a list of command line options use xwax -h or man xwax.

The display

xwax screenshot with explanation

Checking input audio

With the software running, placing the needle on the timecode vinyl should give a healthy circle display in the timecode scope, like above.

The only adjustment which you may need is to set the input levels using a mixer control for the device (eg. alsamixer). When settled, the circle should approximately fill the timecode scope display. The rest of the timecode control is self-calibrating.

Don't be alarmed that the scope goes all over the place when you scratch or mix, or even just touch the record — this is normal.

Keyboard controls

Track selection

Use the up/down cursor keys to highlight a track from the record library. Use page-up/page-down scroll one screen at a time.

Type a portion of a track name, using the letter and number keys to search the record library. Use backspace to delete.

Highlight the chosen track and use the F1, F5 or F9 keys to import to a chosen deck, and begin mixing/scratching!

Deck controls

Deck 0Deck 1Deck 2
F1F5F9 Load currently selected track to this deck
F2F6F10 Reset start of track to the current position
F3F7F11 Toggle timecode control on/off
Ctrl-F3Ctrl-F7Ctrl-F11 Cycle between available timecodes

Turntable control is automatically disconnected when the end of the record is reached (ie. the music will continue to play). Replace the needle back near the start of the record and press the reconnect button.

Other controls

=Zoom in audio display
-Zoom out audio display

Example commands

These examples are not guaranteed, but should serve as a good reference to see how things are achieved on similar systems. In particular, the examples below skip the internal soundcard and use the second audio device (hw:1).

For a more comprehensive set of examples covering the full setup and not just audio devices, see man xwax.

The Stanton ScratchAmp v1 contains two separate audio interfaces. ALSA 10.0.15 is required:

$ xwax -m 2 -a hw:1 -a hw:2

Same as above, using kernel OSS emulation

$ xwax -d /dev/dsp1 -d /dev/dsp2

The Rane SL-1 (Serato Scratch Live interface) is a single ALSA 'card' with multiple devices. The driver is new with ALSA 10.0.15:

$ xwax -a hw:1,0 -a hw:1,1

The Echo Layla 3G has all analogue channels on a single device, so it is necessary to call xwax with subdevices. In this example, there are three decks (tested on ALSA 10.0.15):

$ xwax -a hw:1,0,0 -a hw:1,0,2 -a hw:1,0,4