xwax - Man Page

Digital vinyl on Linux

Synopsis

xwax [options]

Description

xwax is vinyl emulation software for Linux. It allows DJs and turntablists to playback digital audio files (MP3, Ogg Vorbis, FLAC, AAC and more), controlled using a normal pair of turntables via timecoded vinyls.

Options

The ordering of options is important. Most options apply to subsequent music libraries or decks, which can be given multiple times. See the Examples below.

-l path

Scan the music library or playlist at the given path.

-t name

Use the named timecode for subsequent decks. See -h for a list of valid timecodes. You will need the corresponding timecode signal on vinyl to control playback.

-33

Set the reference playback speed for subsequent decks to 33 and one third revolutions per minute. This is the default.

-45

Set the reference playback speed for subsequent decks to 45 revolutions per minute.

-c

Protect subsequent decks against certain operations during playback.

-u

Allow all operations on a deck during playback. This is the inverse of the -c option, and is the default.

--phono

Adjust the noise thresholds of subsequent decks to tolerate a cartridge-level signal connected to a line-level audio interface. This is a 'software pre-amp'. Unless your audio path has low noise, this will give worse results or may not work at all; a true phono pre-amplifier is always preferred.

--line

Set noise thresholds of subsequent decks to standard audio levels. This reverses the effect of the --phono option, and is the default.

-i path

Use the given importer executable for subsequent decks.

-s path

Use the given scanner executable to scan subsequent music libraries.

--dummy

Create a deck which is not connected to any audio device, used for testing.

-k

Lock into RAM any memory required for real-time use. This includes audio tracks held in memory which can be large. Use ulimit -l to raise the kernel's memory limit to allow this.

-q n

Change the real-time priority of the process. A priority of 0 gives the process no priority, and is used for testing only.

-g [nxn][+n+n][/f]

Change the geometry of the display in size, position and scale (zoom) respectively. The size and position is passed to SDL, which may use it to set the display mode, or size of an X window. See the Examples.

--no-decor

Request to the window manager to create a 'frameless' window which does not have the regular controls such as title bars and buttons. This can be useful in conjunction with the -g flag for dedicated xwax installations.

-h

Display the help message and default values.

Alsa Device Options

The following options are available only when xwax is compiled with ALSA support.

-a device

Create a deck which uses the given ALSA device (eg. plughw:0).

--rate hz

Set the sample rate for subsequent decks. The default is to prefer 48000Hz, but use 44100Hz if that is not available. To maintain best performance, only sample rates implemented by the hardware are available.

--buffer samples

Set the ALSA buffer size for subsequent decks. Smaller is better for lower latencies and greater responsiveness. Set too low and audible glitches will occur, with reports of underruns to the console.

Jack Device Options

The following options are available only when xwax is compiled with JACK support.

-j name

Create a deck which connects to JACK and registers under the given name.

xwax does not set the sample rate for JACK devices; it uses the sample rate given in the global JACK configuration.

Oss Device Options

The following options are available only when xwax is compiled with OSS support.

-d pathname

Create a deck which uses the given OSS device (eg. /dev/dsp).

--rate hz

Set the sample rate for subsequent decks. The default for OSS devices is 48000Hz.

-b n

Set the number of OSS buffers for subsequent decks.

-f n

Set the OSS buffer size (2^n bytes).

Hardware Controller Options

The following options are available only when xwax is compiled with ALSA support.

--dicer device

Use one or two Dicer controllers connected as the given ALSA device (eg. hw:Dicer). See the section Novation Dicer Controls for more information.

Adding a hardware controller results in control over subsequent decks, up to the limit of the hardware.

Keyboard Controls

The playback of each deck (direction, speed and position) is controlled via the incoming timecode signal from the turntables. The keyboard provides additional controls.

"C-" and "S-" means a keypress is combined with the 'Control' or 'Shift' key, respectively.

Record selection controls:

cursor up, cursor down

Move highlighted record up/down by one.

page up, page down

Scroll the record listing up/down by one page.

left cursor, right cursor

Switch to the previous/next crate of records.

tab

Toggle between the current crate and the 'All records' crate.

C-tab

Toggle sort mode between: artist/track name, BPM and 'playlist' order. Playlist order is the order in which records were returned from the scanner.

C-S-tab

Re-scan the currently selected crate.

To filter the current list of records type a portion of a record name. Separate multiple searches with a space, and use backspace to delete.

Deck-specific controls:

Deck 0Deck 1Deck 2
F1F5F9Load currently selected track to this deck
F2F6F10Reset start of track to the current position
F3F7F11Toggle timecode control on/off
C-F3C-F7C-F11Cycle between available timecodes

The "available timecodes" are those which have been the subject of any -t flag on the command line.

Audio display controls:

+, -

Zoom in/out the close-up audio meters for all decks.

Novation Dicer Controls

The Novation Dicer provides hardware control of cue points. The controls are:

cue mode: dice button (1-5)

Jump to the specified cue point, or set it if unset.

loop-roll mode: dicer button (1-5)

"Punch" to the specified cue point, or set it if unset. Returns playback to normal when the button is released.

mode button + dice button (1-5)

Clear the specified cue point.

The dice buttons are lit to show that the corresponding cue point is set.

Examples

2-deck setup using one directory of music and OSS devices:

xwax -l ~/music -d /dev/dsp -d /dev/dsp1

As above, but using ALSA devices:

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

2-deck setup using a different timecode on each deck:

xwax -l ~/music -t serato_2a -a hw:0 -t mixvibes_v2 -a hw:1

As above, but with the second deck at 45 RPM:

xwax -l ~/music -t serato_2a -a hw:0 -t mixvibes_v2 -45 -a hw:1

Default to the same timecode, but allow switching at runtime:

xwax -l ~/music -t serato_2a -t mixvibes_v2 -a hw:0 -a hw:1

3-deck setup with the third deck at a higher sample rate:

xwax -l ~/music --rate 48000 -a hw:0 -a hw:1 --rate 96000 -a hw:2

Using all three device types simultaneously, one deck on each:

xwax -l ~/music -a hw:0 -d /dev/dsp1 -j jack0

Scan multiple music libraries:

xwax -l ~/music -l ~/sounds -l ~/mixes -a hw:0

Scan a second music library using a custom script:

xwax -l ~/music -i ./custom-scan -l ~/sounds -a hw:0

Control two decks with Dicer hardware:

xwax --dicer hw:Dicer -a hw:0 -a hw:1

Use a high resolution and enlarge the user interface:

xwax -g 1920x1200/1.8 -a hw:0

Homepage

http://xwax.org/

Author

Mark Hills <mark@xwax.org>