The different ways to install Qtractor and ensure your audio production environment is ready to make serious sounds.
Chapter 1, Introduction to Qtractor
Chapter 2, Installation
Chapter 3, Post-Installation Optimizations
Qtractor is a full-featured Digital Audio Workstation (DAW); a multi-track audio and MIDI recorder, editor, and mixer. Qtractor is free open-source software, licensed under the GPL, being developed by reknowned programmer Rui Nuno Capela.
The functionality of Qtractor is contained within a graphical desktop environment that will be familiar to users of other popular multi-track recording/editing applications on any computer operating system, and follows the same design principles with many of the same or similar elements.
In addition to recording digital audio and MIDI, Qtractor provides an environment for multi-track clip-oriented composing techniques common in modern music-making and aims to be intuitive and easy to use, yet powerful enough for the serious recording enthusiast.
Note
Qtractor is not what is known as a “tracker” type of audio/MIDI application, although it has the potential to function in that way if needed. When used merely as an audio and/or MIDI recorder (a MIDI recorder was historically called a “sequencer”) or arranger, Qtractor is non-destructive, which means that the underlying files that contain the audio or MIDI data are not altered when those files are apparently cut into pieces, duplicated, pulled or pasted into a different order in time, or manipulated in any number of ways within the main Window (GUI interface) of Qtractor. However, when used as an audio or MIDI recorder, for example, or when editing previously recorded MIDI data in the dedicated MIDI editor, Qtractor’s actions can be destructive in the sense that newly recorded data (or altered MIDI data) replaces previously recorded data on the same track.
Qtractor’s target platform is Linux, using the ALSA (Advanced Linux Sound Architecture) and JACK (the Jack Audio Connection Kit) as the supporting infrastructure for recognizing sources of digital audio and MIDI (Musical Instrument Digital Interface) data, communicating with those sources and routing the data to and from various locations and programs (applications, including Qtractor) both inside and outside the computer and involving both software and hardware interfaces.
Suggestions of technical requirements for Qtractor are:
PC running a distribution of the GNU+Linux operating system with a Kernel of 2.6.38.4 or higher for best realtime performance (older kernels require realtime patches from your distribution or from kernel.org)
CPU capable of running reasonably modern software (the better your CPU, the better performance you will see in realtime audio effects and synthesis)
A reasonable amount of RAM (an open Qtractor project requires RAM; the more you have, the more complex your projects can be and the faster they will respond)
A sound card; the basic sound card that shipped with your computer is perfectly acceptable, although if you require simultaneous recording of multiple tracks, a card or audio interface with distinct inputs will be required
Ample harddrive space for samples and audio files used in your projects.
Attitude. Not required, but if you plan on being a rock star, then you should try to develop an rebellious attitude, and resolutely reject mainstream software
The Qtractor project welcomes all collaboration and review from the Linux audio developer and user community in particular, and the public in general.
See qtractor.sourceforge.net for contact information.
The docbook sources for this user manual are available via git from gitorious.org/slackermedia
Installing Qtractor can be done in two ways: from your distribution’s software repository, or by building from source code. For most users, installing from your distribution’s repositories is the right choice, as it offers the easiest install and ensures timely and reliable updates.
To install software from your distribution’s repository, open the software installer for your distribution (often called Add/Remove Software or sometimes a Software Store).
Search for Qtractor, and mark it for installation and proceed; there is no need to intall additional packages since the installer will automatically install any software required for Qtractor to run.
If you absolutely require the latest features in a just-released or not-yet released version of Qtractor, or you simply prefer to build your programs manually, you may build Qtractor from source code.
In order to build from source, you must have a build environment, and the essential dependencies that Qtractor requires. Depending on your distribution, the names of the installable build tools will vary, but the software components themselves are:
g++ - the GNU C++ Compiler
gcc - the GNU C Compiler; not strictly required in this case, but good to have in a build environment, and in some distributions this may bring in other useful dependencies
Autoconf -
Automake - the GNU Makefile generator
Qt4 (core,gui,xml) - C++ class library and tools for cross-platform development and internationalization, available from your distribution’s software repository (be sure to install all “development” components) or directly from trolltech.org/products/qt
libsndfile - C library for reading and writing files containing sampled sound, available from your distribution (be sure to install all “development” components) or directly from mega-nerd.com/libsndfile
LADSPA - Linux Audio Developer’s Simple Plugin API; available from you distribution’s repository (be sure to install all “development” components) or from ladspa.org
Additional support libraries may be installed to enhance the abilities of Qtractor:
libvorbis - the Ogg Vorbis encoder and decoder by Xiph
libmad - high-quality MPEG audio decoder, available from your repository or from underbit.com/products/mad
libsameplerate - the secret rabbit code, a C library for audio sample rate conversion, available from your distribution’s repository or from mega-nerd.com/libsndfile
librubberband - the Rubber Band Audio Time Stretcher, an audio time-stretching and pitch-shifting library, available from your repository or breakfastquay.com/rubberband
liblo - Lightweight OSC implementation (needed for DSSI GUI support), available from your repository or liblo.sourceforge.net
DSSI - an API for soft synth plugins with custom user interfaces dssi.sourceforge.net
VST-SDK - Steinberg’s Virtual Studio Technology; this SDK permits the use of Linux-native plugins with Qtractor. To install VST-SDK:
Establish a developer account at steinberg.net/en/company/3rd_party_developer.html , confirm the registration, and log in
Download VST 2.4
Unzip the source directory and copy the files to the appropriate directory; usually /usr/local/include
su -c 'cp vstsdk2.4/pluginterfaces/vst2.x/aeffect* /usr/local/include/'
Stable releases of Qtractor can be downloaded directly from qtractor.sourceforge.net/qtractor- index.html#Downloads
Note
If you intend to develop Qtractor then you will want to run “bleeding edge” code. This is not recommended for a production system and should be used only for development purposes. Check out the source code from its CVS repository via anonymous (pserver) access:
At the command line, checkout the code via SVN:
svn co https://qtractor.svn.sourceforge.net/svnroot/qtractor/trunk qtractor-svn
Prepare the configure script on the newly created qtractor source tree directory:
cd qtractor-svn
make -f Makefile.svn
Build and install.
After downloading Qtractor, decompress and extract the archive:
tar -xf qtractor-0.x.x.tar.gz
Change directory into the resulting qtractor
directory.
Once inside the qtractor
directory, the usual building
commands apply:
./configure && make
To see all configuration options before entering the command sequence
above, type ./configure --help
After typing the configure
and
make
commands and waiting until the
program has finished being compiled, become an administrator of your
system (using either the sudo
or
su
command to become, temporarily, the
root
user) and finish the installation by
entering:
make install
The executable binary code (in otherwords, the Qtractor application itself) and associated desktop and icon files are copied to common, standard system locations.
There are some considerations after you have installed Qtractor which may help you optimize your system for its best possible audio performance.
Previous to the Linux Kernel 2.6.38.4, a realtime kernel was a must-have component in audio production. Since 2.6.38, new options have developed to provide a seamless audio production experience, depending largely on what your needs are from your system.
If you are not sure whether you’ll need realtime, it is safe to assume that you will need either:
A 2.6.38.4 or greater kernel regardless of your expected workload
A realtime kernel if a 2.6.38.4 or better kernel is not conveniently available from your distribution
An optimized realtime kernel if you anticipate live recording and multitracking
To discover what kernel your computer is currently running, look in KInfoCenter (in KDE4) or System Information (in Gnome3).
Or simply open a terminal:
uname -r
If your computer is running a kernel previous to 2.6.38.4, then you should either update your kernel, or install a realtime version of your kernel.
To upgrade the Linux kernel, use your distribution’s repository,
searching for the terms realtime
or
rt
.
If your distribution does not have repositories, or realtime kernels,
then you can of course download the source code and compile the kernel
yourself. The same guiding principles apply; as long as you are building
2.6.38.4 or above, then a simple
make oldconfig
will render a modestly
pre-emptive kernel suitable for near-realtime use. For extreme
low-latency, apply realtime patches, available from kernel.org/pub/linux/kernel/projects/rt
In order for Qtractor to run, JACK must be running in the background. JACK is a kind of patchbay for Linux (technically a “sound server”), enabling you to route sound in and out of Qtractor and other sound 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 Qtractor window, then quit Qtractor and start JACK manually.
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 qjackctl.sourceforge.net
If necessary, launch QJackCtl and click the Start button.
This should instate realtime privileges and begin a global, synchronized timecode clock that will allow Qtractor to use all available inputs and outputs just like a mixing board would in the studio.
To view the status of JACK, click the Status button and review the resulting report. JACK should be reported as running, in realtime mode.
If you are experiencing unexpected results with QJackCtl, then here are some things to check:
JACK does not indicate realtime mode in the Status window, on a system using the PAM security model.
Click the Setup button to open preferences. Activate Realtime in the left column, and then quit QJackCtl while you configure your system further.
Make sure you have a realtime-capable (ie, 2.6.38.4 or greater,
or an RT-optimized kernel of any variety) kernel installed and that
applications have permission to utilize the realtime mode. On
distributions using PAM, look in
/etc/security/limits.conf
and ensure that there is a user
group being granted realtime (or rtprio
in
PAM terminology) privileges. If
rtprio
is being granted to a group, then
you should make sure that you are in that group. For instance, if the
group audio
is being granted realtime
privileges then execute
cat /etc/group | grep audio
and look to
see that your userinput is listed as a member of the audio group. If
not, execute
usermod -a -G audio youruserinput
as root
to add your user to the audio group. Warning If
limits.conf
does not exist, then your system does not use
PAM. If no group is given realtime priority, create a
group and add yourself to the group. This must be done with root
privileges: groupadd realtime usermod -a -G realtime yourUserName Then
add realtime priority permissions to the group (and accordingly any user
in that group): @realtime hard rtprio 20 @realtime soft rtprio
10
JACK does not indicate realtime mode in the Status window, on a system not using the PAM security model.
Click the Setup button to open preferences. Activate Realtime in the left column, and then restart QJackCtl while you configure your system further.
To enable realtime priority for your user applications, install set_rlimits from your repository or directly from physics.adelaide.edu.au/~jwoithe
As root, open /etc/set_rlimits.conf.new
in your
favourite text editor. Add two lines: @audio /usr/local/bin/jackd nice=-1 rtprio=80
memlock=100000 @audio
/usr/local/bin/qtractor nice=-1 rtprio=80 memlock=100000 Save the file
as /etc/set_rlimits.conf
Create a custom launcher so that when you start your realtime
applications, they are started in the syntax
set_rlimits qtractor
. In KDE, do this by
right-clicking on the K Menu and edit the launch
commands for QJackCtl and Qtractor. In
Gnome, edit as root the .desktop
file for the applications
(ie, /usr/share/applications/qtractor.desktop
) such that
the Exec=
line executes
set_rlimits qtractor
JACK does not start when Qtractor is launched.
Your distribution may not have configured JACK to automatically start upon Qtractor’s launch.
The easiest workaround for this is to launch QJackCtl manually first, and then launch Qtractor.