Qtractor An Audio/MIDI multi-track sequencer
What's Qtractor ?
Qtractor is an Audio/MIDI multi-track sequencer application written
in C++ with the Qt4 framework.
Target platform is Linux, where the Jack Audio Connection Kit
(JACK) for audio, and the Advanced Linux Sound Architecture
(ALSA) for MIDI, are the main infrastructures to evolve as a fairly-featured Linux desktop audio
workstation GUI, specially dedicated to the personal home-studio.
Qtractor is free, open-source software, distributed under the terms of the
GNU General Public License (GPL)
version 2 or later.
Project page: http://sourceforge.net/projects/qtractor
Click on image to see more screenshots...
- Multi-track audio and MIDI sequencing and recording.
- Developed on pure Qt4
C++ application framework.
- Uses JACK for audio
and ALSA sequencer for MIDI
as multimedia infrastructures.
- Traditional multi-track tape recorder control paradigm.
- Audio file formats support: OGG (via libvorbis),
MP3 (via libmad, playback only),
WAV, FLAC, AIFF and many, many more (via libsndfile).
- Standard MIDI files support (format 0 and 1).
- Non-destructive, non-linear editing.
- Unlimited number of tracks per session/project.
- Unlimited number of overlapping clips per track.
- XML encoded session/project description files (SDI).
- Point-and-click, multi-select, drag-and-drop interaction
(drag, move, drop, cut, copy, paste, paste-repeat, delete, split, merge)
- Unlimited undo/redo.
- Built-in mixer and monitor controls.
- Built-in connection patchbay control and persistence (a-la QjackCtl).
- LADSPA, DSSI, native VSTi and LV2 plug-in support.
- Unlimited number of plug-ins per track or bus.
- Plug-in presets, programs and chunk/configurations support.
- Unlimited audio effect send/return inserts per track or bus.
- Audio/MIDI clip fade-in/out (linear, quadratic, cubic).
- Audio/MIDI clip gain/volume, normalize, export.
- Audio/MIDI track and plugin parameter automation (dynamic curves,
sample&hold, linear and spline modes).
- Audio clip time-stretching (WSOLA-like or via librubberband), pitch-shifting (via librubberband) and seamless sample-rate conversion (via libsamplerate).
- Audio/MIDI track export (mix-down, merge).
- Audio/MIDI metronome bar/beat clicks.
- Unlimited tempo/time-signature map.
- Unlimited location/bar markers.
- MIDI clip editor (matrix/piano roll).
- MIDI instrument definitions (a-la Cakewalk(tm) (*.ins));
SoundFont (*.sf2) and MIDI Names XML (*.midnam) files also supported.
- MIDI controller mapping/learn/assignment (mixer and plug-in parameters).
- MIDI system exclusive (SysEx) setups.
- JACK transport sync master/slave.
- JACK session support.
- NSM (Non session management) support.
- MMC control surface enabled.
- MIDI Song Position cueing support.
- Configurable keyboard shortcuts.
The software requirements for build and runtime are listed as follows:
Optional (opted-in at build time):
- 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/or NSM support)
- DSSI, An API for soft synth plugins with custom user interfaces
- VST SDK, Steinberg's Virtual Studio Technology
- LV2, Audio Plugin Standard, the extensible successor of LADSPA
- liblilv, Lightweight LV2 implementation stack
- NSM, Non Session Management
Qtractor's already in some kind of beta stage of development and hence fully functional.
Though, the bleeding-edge development source tree is readily available from the sourceforge's public
2014-03-21 - The Byte Bald Beta
- New user option added: on whether to save plugins automation
values with higher resolution as possible, using 14-bit NRPN:
cf. View/Options.../Plugins/Experimental/High resolution
plugin automation (default=off).
- Generic native plugin dialogs now shows an additional "About"
last page where authorship credits are due.
- A new user preference option is now in place for whether to
use desktop environment's own native file requester/browser
dialogs (View/Options.../Display/Dialogs/Use native dialogs).
- A bit of slack have been introduced to put "Follow Playhead"
(aka. auto-scroll view mode) on hold, while doing in-flight
selection edit moves.
- Fixed some user interface related annoyances while on the MIDI
Controllers mappings (ie. View/Controllers...).
- Fixed port origin on MIDI RPN/NRPN 14-bit controllers input.
- A discretionary plug-in unique identifier have been devised for
when more than one from the same type are inserted on a bus or
track chain, avoiding destructive clashing of automation data.
- Horizontal scrolling shift+mouse-wheel direction now reversed.
- LV2 Dyn(amic)-manifest support is now optional (default=off);
cf. View/Options.../Plugins/Experimental/LV2 Dynamic Manifest
- The following options, although decieved on View/Options... as
global configuration options, were always and still are proper
session instance properties: (JACK) Transport mode, MMC mode,
MMC device, MIDI SPP and MIDI Clock modes, are now shown there
reflecting the current open session state.
- A couple of run-time circumventions have been hacked in, both
strictly related to when NSM session management is in charge:
1) the new session template feature is disabled (was aborting
initial NSM new client additions); 2) the native (as from the
desktop environment eg. KDE) file browser/requester dialogs are
disabled (were taking too long to list the current directory on
first time invocation).
- Update current automation/curve nodes selection while changing
horizontal (time axis) zoom levels.
- One liner's attempt to make it consistent behaviour on resizing
and moving multiple selected notes or events while on the MIDI
clip editor (aka. piano-roll; after a ticket request from Daniel
MacDonald aka. danboid, thanks).
- Introducing tiny quarter-note/crotchet/seminima/beat icon on all
snap-to-beat selection items get a new icon :).
- Corrected some audio buffering boundary conditions that were
causing dead-loops/freezes while merging some audio clips.
- Session auto-save period was chronically reduced to one third
of its user setting; non critical but fixed now.
Previous and older pre-releases, including the change log,
are also available here.
You can browse all files available for download, including binary packages, at
Qtractor Files on SourceForge.net.
The installation procedure follows the standard for source distributions.
Once under the extracted source directory:
and optionally as root:
This procedure will end installing the following files:
Just launch prefix
/bin/qtractor and you're off (hopefully).
Note that the default installation path prefix is
Qtractor holds its settings and configuration state per user,
in a file located as
Normally, there's no need to edit this file, as it is recreated and
rewritten everytime qtractor is run.
Probably plenty still, Qtractor maybe considered on beta stage already.
Qtractor is open source free software. For bug reports, feature
requests, discussion forums, mailling lists, or any other matter related
to the development of this piece of software, please use the
Sourceforge project page.
You can also find timely and closer contact information on my
personal web site.
A new Qtractor quick start guide and user manual
has been updated for version 0.5.x by Seth Kenlon & Klaatu.
The older user manual for version 0.3.0 and before,
have been co-authored by James Laco Hines and Stephen Doonan.
Qtractor logo/icon is an original work of Andy Fitzsimon, borrowed from
the public domain openclipart.org gallery.
A special mention should also go to the translators of Qtractor, of course:
- Pavel Fric (cs)
- Guido Scholz (de)
- Yann Colette (fr)
- Massimo Callegari (it)
- Takashi Sakamoto (ja)
- Alexandre Prokoudine (ru)
This project has also a freecode.com entry.
( formerly freshmeat.net )
rncbc aka Rui Nuno Capela
rncbc at rncbc dot org