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 (no Qt3 nor KDE dependencies).
- 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.
- 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 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
Qtractor's still in some alpha stage of development, but already
functional. The bleeding-edge development source tree is readily available
from the sourceforge's public Subversion repository.
However there has been several so called pre-releases that might be representative
of the project's shallowed milestones.
2013-03-19 - The India Romeo
- Dropped old audio ramping spin-locks as its glitching reduction
weren't that effective anymore.
- Audio bus and track gain may now be set for amplification again,
from +0dB up to +6dB, while using the Mixer strip sliders/faders
(an old function found missing ever since pre-TYOQA).
- Basic LV2 X11 UI support has been added through libSUIL but only
really effective if plugins doesn't support the LV2 External UI
extension in addition which takes precedence on any case.
- Improved precision tolerance on the Tempo Map / Markers dialog.
- Reinstated and fixed (old) warning and impending re-conversion on
loading session files which the original sample-rate differs from
current audio device engine (aka. JACK).
- LV2 Plugin State/Preset name discrimination fix (after a ticket
by Jiri Prochaszka aka. Anchakor, thanks:)
- Linked/ref-counted audio clips must not overlap and now must have
a buffer-size worth of a gap between each other.
- Something fishy has been detected in the SSE (not so) optimized
code from SoundTouch's-inspired WSOLA time-stretching.
- Splitting clips apart is now easier than ever: a brand new entry
enters the main menu scene: Edit/Split (Ctrl+Y) splits up clips
according to current range/rectangular selection.
- Audio clip offsets are now properly corrected when time-stretching
is applied via Shift/Ctrl+dragging any of the clip edges.
- One semi-colon typo was hiding proper descrimination of peak files
used to draw distinct waveforms of time-stretched audio clips.
- Track automation curves are now also affected by Edit/Insert/Range
- Finally, some visual feedback is shown while audio track export
is running, in he form of a main status progress bar.
- New user option: save backup versions of existing session files.
- Default session directory now set to regular file's path on load.
- A convenient minimum slack duration has been fixed for MIDI SysEx
- LV2 Time/position information is now asynchronously fed back into
their parameter (control input) ports when designated.
- LV2 State is now properly restored for plugins inserted on buses,
probably solving the Calf Fluidsynth SoundFont information missing
on buses ticket, reported by Albert Graef, thanks.
- Fixed an immediate null pointer crash on creating a parentless new
group while on the files organizer widget.
- Preparations for future Qt5 migration.
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.
Plenty, after all this is still alpha software ;).
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)
- Yann Colette (fr)
- Massimo Callegari (it)
- Takashi Sakamoto (ja)
- Alexandre Prokoudine (ru)
This project has also a freshmeat.net entry.
rncbc aka Rui Nuno Capela
rncbc at rncbc dot org