Building from source

I get lots of build errors, too many to explain

Check that your system meets the requirements for compiling from source. Some libraries are optional, but only if you use ./configure correctly. If you are using Ubuntu Linux, the packages required can be installed using (as root):

# apt-get install build-essential libasound2-dev libsdl-dev libsdl-ttf2.0-dev
# apt-get install mpg123 ffmpeg

/usr/bin/ld: cannot find -lSDL_ttf

Install the SDL_ttf library specifically. Despite the name, this isn't always included as part of libSDL and is often in a separate package.

Starting the program

Software just won't load

Read the error message in the terminal carefully. This should be reasonably descriptive in working out the problem.

Check you have the right libraries available on your system. Use ldd xwax to see if any are missing.

"Failed to get realtime priorities"

xwax needs to increase the scheduling priority of the playback thread. This is to enable low-latency audio (eg. 1ms buffers). This normally requires root priviledges (using su or sudo) or a modification to rtprio in the limits.conf file. See the documentation for the particular distribution of Linux you are using (Arch Linux, Ubuntu). A custom build or patched kernel is not normally required.

I get some kind of ALSA audio device error

First, read the error as it usually gives a good indication of what is wrong.

You need to give a valid ALSA device name. This varies depending on the style of audio interface. The command aplay -l gives a list of available devices by card, device, subdevice. Take a look at the examples in the xxxxxxx section.

If your device doesn't support 2 channel signed 16-bit audio then it may be necessary to use an ALSA 'plug' to do a transparent conversion. Substituting hw for plughw in the device name is one way to do this.

Why the limit of 3 decks?

The core of xwax supports as many decks as you can throw at it. Sadly there aren't enough keys on the keyboard(!) Hopefully a future release with MIDI control will go beyond this limit.

Loading music tracks

Errors or no activity when importing a track

Check that you are providing a correct importer script, and that the programs it calls are available on your system (eg. mpg123, cdparanoia etc.). Open the import script in an editor to see the requirements, and again check the information displayed in the terminal.

Everything is all in red, not green!

It's most likely that you're scratching silence, and importing the track has failed. See above.

Track loads, but won't play

Check there is audio coming through the input. The should be a strong circle in the timecode scope. Without this, xwax has no incoming audio to decode. If there is no display at all, check your audio mixer settings are using the correct capture device (eg. line in).

If there's a display in the timecode scope, but not a clean circle, check the condition of the stylus, turntable balance and cables. Also check xwax is connect to the right audio and not some music from elsewhere.

Audio device problems

The audio is skipping

First, check the terminal output for any errors and explanation. It's likely that if there's a problem it will be happening frequently with lots of output (eg. 'xruns').

Make sure xwax has successfully prioritied the playback thread (see the getting started guide). Since v1.0, xwax will not start without this.

Try increasing the device buffer sizes (-m for ALSA devices, -f and -b for OSS devices). See xwax -h for a description of these flags.

I have to use very high values for -m

The loss in performance starts to be noticable at around -m 10. If you find you're having to use very high values then it's likely that the playback thread is not prioritised, for some reason (see the getting started guide).

If you have done this and are still having problems, then make sure you are using a 'preempt' kernel which supports low-latency operations. The documentation on your Linux distribution is a good place to start to find out about this.

Vinyl problems

When I drop the needle to the middle of the record, the music plays from the same point

This behaviour is similar to the 'relative positioning' of some other systems. It happens when the timecode position cannot be read from the vinyl, but speed and direction can.

Ensure that you see a number in the deck status, next to the timecoder name (eg. 'serato_2a:'. If this is intermittent, the vinyl might be in poor condition — check for a clean circle in the timecode scope. If you see nothing at all, check you have the right vinyl (ie. Serato 2nd Edition) and are using the right side. You can set the timecodes you would like to use using the -t argument, and cycle between them using the keyboard (see man xwax.

It's playing backwards

Check your cabling, it's likely that the left and right channels have been swapped.

It's skipping around

Look for a clean circle in the scope display to show the condition of the audio input. If timecode values are being mis-read then xwax may seek momentarily to random locations in the track.