SAPO Codebits 2008
SAPO Codebits 2008
Qtractor
Qtractor
An Audio/MIDI multi-track sequencer
An Audio/MIDI multi-track sequencer Rui Nuno Capela
Rui Nuno Capela
rncbc.org rncbc.org http://qtractor.sourceforge.net http://qtractor.sourceforge.net November 2008 November 2008
What is Qtractor ? (1)
What is Qtractor ? (1)
Yet another Audio / MIDI sequencer ?
Yet another Audio / MIDI sequencer ?
Yes ;-)
Yes ;-)
Multi-track recorder paradigmMulti-track recorder paradigm GNU / LinuxGNU / Linux
JACKJACK
ALSA SequencerALSA Sequencer C++C++
Qt 4Qt 4 GPLGPL
2008-11-14
Qtractor - SAPO Codebits 2008 - rncbc.org 3
What is Qtractor ? (2)
What is Qtractor ? (2)
● Home-studio DAW GUIHome-studio DAW GUI
● Intuitive and easy to use (hopefully)Intuitive and easy to use (hopefully) ● Music-making playgroundMusic-making playground
● Not for the erudite (no score editor)Not for the erudite (no score editor)
● Techno-boy bedroom studio, anyone?Techno-boy bedroom studio, anyone? ● Not a revolution, will evolve . . .Not a revolution, will evolve . . .
Who is behind ?
Who is behind ?
Hobby work of one developer
Hobby work of one developer
● me, rncbc a.k.a. Rui Nuno Capelame, rncbc a.k.a. Rui Nuno Capela
LAD Portfolio LAD Portfolio ● QjackCtlQjackCtl ● QsynthQsynth ● QsamplerQsampler A
2008-11-14
Qtractor - SAPO Codebits 2008 - rncbc.org 5
But why ?
But why ?
● Just for funJust for fun
● The motive . . .The motive . . .
Long time enthusiasm on electronic musicLong time enthusiasm on electronic music
● The skill . . .The skill . . .
A half-life on programming (>20y)A half-life on programming (>20y)
● The moment . . .The moment . . .
An extraordinary event alignment occurred in An extraordinary event alignment occurred in
the whole Universe . . .
the whole Universe . . .
So that was it !
Where can get it ?
Where can get it ?
qtractor.sourceforge.net
qtractor.sourceforge.net
● AlphaAlpha still, but... still, but...
● Fully functional (no Fully functional (no not-implemented-yetsnot-implemented-yets)) ● What You See Is What What You See Is What IsIs Working Working
● Bugs'R'UsBugs'R'Us ● WIPWIP
Open for Business (no money involved)
Open for Business (no money involved)
2008-11-14
Qtractor - SAPO Codebits 2008 - rncbc.org 7
What do I need ? (1)
What do I need ? (1)
Requirements
Requirements
MandatoryMandatory
Qt 4 (core, gui, xml)Qt 4 (core, gui, xml)
JACKJACK
ALSAALSA
libsndfilelibsndfile
What do I need ? (2)
What do I need ? (2)
Requirements
Requirements
OptionalOptional
libvorbis (enc, file)libvorbis (enc, file) libmadlibmad
libsampleratelibsamplerate librubberbandlibrubberband DSSI (SDK)DSSI (SDK)
2008-11-14
Qtractor - SAPO Codebits 2008 - rncbc.org 9
Featuritis (1)
Featuritis (1)
● Multi-track audio and MIDI sequencing and Multi-track audio and MIDI sequencing and
recording.
recording.
● Developed on pure Qt4 C++ application Developed on pure Qt4 C++ application
framework (no Qt3 / KDE dependencies).
framework (no Qt3 / KDE dependencies).
● Uses JACK for audio and ALSA sequencer Uses JACK for audio and ALSA sequencer
for MIDI, as multimedia infrastructures.
for MIDI, as multimedia infrastructures.
● Traditional multi-track tape recorder control Traditional multi-track tape recorder control
paradigm.
Featuritis (2)
Featuritis (2)
● Audio file formats support: OGG (libvorbis), Audio file formats support: OGG (libvorbis),
MP3 (libmad, playback only), WAV, FLAC,
MP3 (libmad, playback only), WAV, FLAC,
AIFF and many, many more (libsndfile).
AIFF and many, many more (libsndfile).
● Standard MIDI files support (format 0 and 1).Standard MIDI files support (format 0 and 1). ● Non-destructive, non-linear editing.Non-destructive, non-linear editing.
● Unlimited number of tracks per Unlimited number of tracks per
session/project.
session/project.
● Unlimited number of overlapping clips per Unlimited number of overlapping clips per
track.
Featuritis (3)
Featuritis (3)
● Built-in mixer and monitor controls.Built-in mixer and monitor controls.
● Built-in connection patch-bay control and Built-in connection patch-bay control and
persistence (QjackCtl;).
persistence (QjackCtl;).
● LADSPA, DSSI and native VSTi plug-ins LADSPA, DSSI and native VSTi plug-ins
support.
support.
● Unlimited number of plug-ins per track or Unlimited number of plug-ins per track or
bus.
bus.
● Plug-in presets, programs and Plug-in presets, programs and
chunk/configurations support.
Featuritis (4)
Featuritis (4)
● Audio/MIDI clip fade-in/out (linear, quadratic, Audio/MIDI clip fade-in/out (linear, quadratic,
cubic).
cubic).
● Audio/MIDI clip gain, normalize, export.Audio/MIDI clip gain, normalize, export. ● Audio clip time-stretching (WSOLA-like, Audio clip time-stretching (WSOLA-like,
librubberband).
librubberband).
● Audio clip pitch-shifting (librubberband).Audio clip pitch-shifting (librubberband).
● Audio clip seamless sample-rate conversion Audio clip seamless sample-rate conversion
(libsamplerate).
(libsamplerate).
● Audio/MIDI track export (mix-down, merge).Audio/MIDI track export (mix-down, merge). ● Audio/MIDI metronome bar/beat clicks.Audio/MIDI metronome bar/beat clicks.
Featuritis (5)
Featuritis (5)
● MIDI clip editor (piano-roll / matrix editor).MIDI clip editor (piano-roll / matrix editor). ● MIDI instrument definitions (Cakewalk(tm))MIDI instrument definitions (Cakewalk(tm)) ● JACK transport sync master.JACK transport sync master.
● MMC control surface enabled.MMC control surface enabled.
Screenshot!
Screenshot!
2008-11-14
Qtractor - SAPO Codebits 2008 - rncbc.org 15
Monolith (1)
Monolith (1)
OS kernel Audio Audio driver driver MIDI MIDI driver driver AxMonolith (2)
Monolith (2)
OS OS kernel kernel Audio Audio driver driver MIDI MIDI driver driver Ax Ax P1 P1 P3P3 P2 P2 P4P4 Pn Pn2008-11-14
Qtractor - SAPO Codebits 2008 - rncbc.org 17
Pipe Mania (1)
Pipe Mania (1)
Linux Linux kernel kernel ALSA ALSA driver driver JACK JACK A1 A1 A3A3 A2 A2 A4A4 An An ALSA ALSA sequencer sequencerPipe Mania (2)
Pipe Mania (2)
Linux Linux kernel kernel ALSA ALSA driver driver JACK JACK A1 A1 A3A3 A2 A2 A4A4 An An P1 P1 P3P3 P2 P2 Pn Pn P1 P1 P3P3 P2 P2 Pn Pn ALSA ALSA sequencer sequencer2008-11-14
Qtractor - SAPO Codebits 2008 - rncbc.org 19
Studio Setup (1)
Studio Setup (1)
DAW DAW Analog Audio Analog Audio Digital Audio Digital Audio MIDI / MMC MIDI / MMC MIDI MIDI USB USBStudio Setup (2)
Studio Setup (2)
DAW DAW Synth / Sampler Synth / Sampler Analog Audio Analog Audio Digital Audio Digital Audio MIDI / MMC MIDI / MMC MIDI MIDI USB2008-11-14
Qtractor - SAPO Codebits 2008 - rncbc.org 21
Studio Setup (3)
Studio Setup (3)
DAW DAW Synth/Sampler Synth/Sampler Recorder/Sequencer Recorder/Sequencer Analog Audio Analog Audio Digital Audio Digital Audio MIDI / MMC MIDI / MMC MIDI MIDI USB USBEvil Flow Diagram
Evil Flow Diagram
...
...
in
in InputInput outout
Bus
Bus monitormonitor OutputBusOutputBus
...
...
Input
Input
Bus
Bus monitormonitor OutputBusOutputBus in in outout = Volume / Pan = Volume / Pan Plug-insPlug-ins R R M M S S = Record = Record = Mute = Mute = Solo = Solo Track Track R R MM SS monitor monitor Clips Clips Track Track R R MM SS monitor monitor Clips Clips Track Track R R MM SS monitor monitor Clips Clips Track Track R R MM SS monitor monitor Clips Clips
2008-11-14
Qtractor - SAPO Codebits 2008 - rncbc.org 23
What's missing ? (1)
What's missing ? (1)
● Loop recording (takes)Loop recording (takes)
● Dynamic curves / Automation (volume, pan, Dynamic curves / Automation (volume, pan,
plug-in parameters, controllers)
plug-in parameters, controllers)
● Auto-cross fadingAuto-cross fading ● Location markersLocation markers ● LV2 Plug-insLV2 Plug-ins
What's missing ? (2)
What's missing ? (2)
● MIDI Time Code / SMPTEMIDI Time Code / SMPTE ● MIDI Clock syncMIDI Clock sync
● OSC interfaceOSC interface
● Integrated scripting (angelscript?)Integrated scripting (angelscript?) ● Tempo and time signature mapTempo and time signature map
2008-11-14
Qtractor - SAPO Codebits 2008 - rncbc.org 25
Q & A
Q & A
Qtractor
Qtractor
An Audio/MIDI multi-track sequencer
An Audio/MIDI multi-track sequencer
http://qtractor.sourceforge.net
http://qtractor.sourceforge.net
Qtractor is free / open-source software; you can redistribute it and / Qtractor is free / open-source software; you can redistribute it and / or modify it under the terms of the GNU General Public License
or modify it under the terms of the GNU General Public License
version 2 or later.
version 2 or later.
It is being possible through the knowledgeable, direct and / or It is being possible through the knowledgeable, direct and / or indirect collaborative efforts of the Linux Audio Developers and
indirect collaborative efforts of the Linux Audio Developers and
Users communities.
Users communities.
Thank you all.