Depends on Qt 4.x
|Submitted: Apr 14 2007|
Updated: Mar 19 2013
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.
- 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
- LADSPA, DSSI, native VST and LV2 plug-ins 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.
0.5.8 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 commands.
- 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 messages.
- 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.
0.5.7 2012-12-27 The Hotel Sierra
- Loop and punch in/out ranges may now get set simultaneously, may even overlap each other. However, punch in/out range recording will always prevail over any loop recording takes.
- LV2 Worker/Schedule now supporting multi-instance vs. single-UI scenarios.
- LV2 Options and Buf-size extension support added.
- Fixed an off-by-one-tick bug on MIDI file input which was leaving spurious zero-length runt notes at the end of a MIDI clip, if a note-on coincides with the ending/split point (on ticket issued by Jonathan H. Pickard, thanks).
- Good old SLV2 library support for LV2 plug-ins (libslv2) is now irrevocably deprecated, or better said, completely wiped-out from the LV2 host code, now considered extinct.
- LV2 UI parameter updates are now asynchronously detached from the source GUI widget thread, in attempt to improve cross-GUI-toolkit responsiveness, specially focused on LV2 plugins with a GTK based UI (eg. amsynth, triceratops, etc.).
- Make sure LV2 UI parameters (input control ports) get updated when loading a genuine LV2 state preset.
- Improved the (custom) tempo spin-box widget signal(ing) processing and dispatching.
- Show proper pointing cursor and location tool-tip while dragging any of the time ruler markers (including latest location markers/bar).
- On saving as an archive/zip session file (suffix .qtz) include only those files that are actually referenced by live clips arrangement.
- Ongoing integration of location markers infrastructure (time-scale and MIDI-file support).
- Free-hand/linear retouching of event values, while on the MIDI clip editor's view pane below the main piano-roll (eg. note velocities), is now possible provided the target events are selected, otherwise the usual painting edit sub-mode applies (cf. menu Edit/Select Mode/Edit Draw).
- The MIDI clip editor now senses which target view pane has focus for general selection commands (cf. Edit/Select/None, All, Invert, Range) whether the main piano-roll or the event value (velocities) view.
- Mouse middle-button clicking is back in business on main track-view and on MIDI clip editor views (piano-roll) as an immediate play-head (re)positioning command or merge/reset the edit-head/tail cursors if Shift/Ctrl keyboard modifiers are pressed.
- Formerly protected, class qtractorClip::FadeFunctor is now public in an shot-in-the-dark attempt to fix clang builds (as reported by Jekyll Wu, thanks).
- Override all sub-classed widgets mouse-pointer event handlers to be isolated from base widget style and/or window management.
0.5.6 2012-10-02 The Golf Tango
0.5.5 2012-06-15 The Foxtrot Uniform
0.5.4 2012-03-01 The Echo Victor
0.5.3 2011-12-28 The Delta Whisky
0.5.2 2011-12-16 The Charlie X-ray
0.5.1 2011-10-05 The Bravo Yankee
0.5.0 2011-07-22 The Alpha Zulu (TYOQA)