If Qtractor is not available from your Linux distribution's package manager / repository and nor can you find a standalone package (such as a .deb package for Debian, Ubuntu or other Debian-based system or an .rpm package for Red Hat, Fedora, SUSE, etc.), then you will have to build it from source. Doing so requires you have both a C++ compiler (such as g++, the GNU C++ compiler) as well as several other dependencies, the most important of which are listed below.
Those with experience in compiling Linux/UNIX software using autoconf should find the build process straightforward. Building Qtractor is fairly easy but both the compilation process and setting up a build environment (a collection of programs necessary for compiling software) can be a bit daunting to those new to Linux. You don't need to be a programmer to compile software but you will at least need to know the basics of using the Linux command line and how to use your distributions package manager.
In order to compile Qtractor you are required to have at least all the packages listed under section 2.2.1 installed. Everything listed under section 2.2.2 is optional but recommended to get the most out of Qtractor.
Note that some Linux distributions (such as Arch) include the development files in their packages whereas other distributions split packages up into binary and dev components. For example, the ALSA library under Debian and Ubuntu is contained in the package libasound2 but its development files are contained within libasound2-dev.
If you are compiling Qtractor under a Debian or Ubuntu-based distro you can install all the required build dependencies with one command by running:
sudo apt-get build-dep qtractor
Qt 4 (core, gui, xml) - C++ class library and tools for cross-platform development and internationalization
JACK Audio Connection Kit
ALSA - Advanced Linux Sound Architecture
libsndfile - C library for reading and writing files containing sampled sound
LADSPA- Linux Audio Developer's Simple Plugin API
libvorbis (enc, file) - Ogg Vorbis audio compression
libmad - High-quality MPEG audio decoder
libsamplerate - The secret rabbit code, C library for audio sample rate conversion
librubberband - Rubber Band Audio Time Stretcher, an audio time-stretching and pitch-shifting library
liblo - Lightweight OSC implementation (needed for DSSI GUI and NSM support)
DSSI - An API for soft synth plugins with custom user interfaces
VST-SDK - Steinberg's Virtual Studio Technology plugin format. Note that Qtractor can still use most VST plugins when using the included VeSTige reverse-engineered VST headers instead.
LV2 - Audio Plugin Standard, the extensible successor of LADSPA
liblilv - Lightweight LV2 implementation stack
NSM - Non Session Management
Qtractor is considered to be in its beta stage of development but is already fully functional. The latest official releases are publicly available from the qtractor.sourceforge.net project web site:
The latest "bleeding-edge" source code can be obtained from the qtractor git repository with the following command:
git clone http://git.code.sf.net/p/qtractor/code qtractor-git
configure script on the just created
qtractor-git source tree directory:
cd qtractor-git make -f Makefile.git
You should now be ready to configure, build and install Qtractor.
NOTE: After initially checking out of the source code, if you want to update to the latest version in future, you can do so with the following command from within the
The installation procedure follows the autoconf standard. From within the Qtractor source directory, run:
./configure [--prefix=<prefix>] make
NOTE: To see all configuration options before entering the command sequence above, type
and optionally as root:
This procedure will end installing the following files:
<prefix>/bin/qtractor <prefix>/share/applications/qtractor.desktop <prefix>/share/icons/hicolor/32x32/apps/qtractor.png <prefix>/share/locale/qtractor_*.qm
Just launch <prefix>/bin/qtractor and you're off, hopefully! Note that the default installation path prefix is /usr/local .
VST is the "Virtual Studio Technology" effect and instrument plugin format developed by Steinberg Media Technologies GmbH. Using the official VST headers could result in higher plugin compatibility than using the reverse-engineered VeSTige headers included with Qtractor. Steinberg VST support is not very easy to accomplish and is suggested only for experienced users.
Due to licensing issues for this proprietary software, one must download the VST SDK (software developers kit) from the third-party developers section of the Steinberg Media Technologies GmbH website. Ensure you download either the 2.3 or 2.4 VST SDK. Do not use VST 3.0. It will not work!
In order to download the VST SDK zip archive you will have to accept the license and supply some personal data, then download and unpack the pertinent program header files, which are found in one of the directories listed below.
VST SDK 2.3:
VST SDK 2.4:
It is recommended that you copy those files into a standard "include" directory (eg. /usr/local/include or /usr/include), in which case the Steinberg VST header discovery process will be handled "automagically" by the ./configure script. Otherwise you'll need to supply the path yourself, like so:
Qtractor searches for VST plugins within /usr/local/lib/vst and /usr/lib/vst. If you wish to use VST plugins installed anywhere else then you will need to add and export their location to your VST_PATH environment variable.
To set the VST_PATH permanently, you will have to add the above line to the file where your distribution declares environment variables. This is usually achieved by adding it to /etc/environment or creating a new .sh file under /etc/profile.d .
A number of Linux VST plug-ins can be found on the following web sites:
If you find a bug in Qtractor, you may be asked to provide some debugging information. This short guide will explain how to build Qtractor with debugging enabled, making it easier to pinpoint the problematic code.
Rebuild it all from scratch, with:
./configure --enable-debug && make
Enable core dumps in a shell session:
ulimit -c unlimited
From the same shell command line, run the program until it crashes. You'll see something like this in the output when it happens:
Segmentation fault (core dumped)
Locate the dumped core file. Depending on your environmental settings it might be just named core or something like core.1234 (1234 is the process-id number of the crashing program) located on the last directory the program was current.
Load the core dump file into gdb:
gdb ./qtractor /path/to/core
At the gdb prompt just enter:
gdb> thread apply all bt
Qtractor keeps its settings and configuration file in
Normally, there is no need to manually edit this file. Most of Qtractor's options can be adjusted from the Options window under the View menu.
In order to use Qtractor, JACK must be running in the background. JACK is a kind of patchbay for Linux (technically a "sound server"), enabling you to route audio and MIDI data between Qtractor and other JACK applications.
Some distributions may configure Qtractor such that JACK starts automatically when Qtractor is launched; others may not. If you launch Qtractor from your application menu and receive JACK errors in the message log at the bottom of the main workspace, quit Qtractor, start JACK manually, then launch Qtractor again.
The easiest way to start JACK is with QJackCtl ("Q JACK Control"), a control panel and global, synchronized timecode display. If this is not installed, install it from your distribution's repository or from the project's site.
If necessary, launch QJackCtl and click the Start button. This should begin a global, synchronized timecode clock that will allow Qtractor to use all available inputs and outputs just like a studio mixing board.
QJackCtl in operation
Qtractor can record both digital audio and MIDI data, but it does not magically know what audio or MIDI data you wish to record; you must route audio and MIDI data to Qtractor manually. This can be done with QJackCtl, via the command line or using Qtractor's Connections window, pictured below.
Qtractor depends upon ALSA and JACK to utilize your audio hardware. Qtractor uses ALSA to communicate with MIDI hardware and JACK is used for routing audio to and from various hardware and software "ports".
Qtractor's Connections window, showing both the Audio and MIDI tabs. "Readable" ports are sources of data (where audio or MIDI data can come from eg a microphone input or a MIDI keyboard) while "writeable" ports are places that data can be routed to such as a track, an audio output or a MIDI synthesizer