From Fedora Project Wiki

< User:Crantila‎ | FSC

Revision as of 02:57, 26 June 2010 by Crantila (talk | contribs) (added the "Use-Case Demonstration")

Address: User:Crantila/FSC/Sequencers/Qtractor

Features and Strengths

This is what Qtractor is good for. It seems to me that Qtractor wants to meld Ardour and Rosegarden.

When to Use Qtractor


When to Avoid Qtractor


Requirements and Installation

Is this available from RPM Fusion and Planet CCRMA? Hmm... I wonder which to use

Software Requirements

  • libvorbis
  • libmad
  • jack-audio-connection-kit
  • slv2
  • rubberband
  • libogg
  • liblo
  • libsndfile
  • libsamplerate

There are no large dependencies. If you have not yet installed QjackCtl for JACK (jack-audio-connection-kit), then it is recommended that you do so at this time. See the JACK portion of this guide for more information.


  • In PackageKit or KPackage kit, install qtractor, or run su -c 'yum install qtractor'


This probably isn't necessary, but it's nice to know.

Go to 'View > Options' to see the configuration window.

"Audio" Tab:

  • Capture/Export:
    • You can choose the file type, and sample format or quality, for exportation of audio.
    • The default choice is OGG Vorbis at "4" quality.
    • Standard ".wav" format is called "WAV Microsoft"
    • Standard ".aiff" format is called "AIFF Apple-SGI"
    • Many options are available, but I recommend FLAC, which is FLOSS, lossless, and compressed.
    • A higher number for sample format will yield greater quality:
      • CD Audio has 16-bit samples,
      • Most audio is recorded, and hardware supports, 24-bit samples,
      • Sample sizes larger than "Signed 24-Bit" are only practically useful if your hardware supports those sample sizes.
  • Playback:
    • Sample-rate converter type:
      • Sinc (Best Quality)
      • Sinc (Medium Quality)
      • Sinc (Fastest)
      • Zero Order Hold
      • Linear
    • Transport mode:
      • Full
      • Master
      • Slave
      • None
    • Automatic time-stretching
    • WSOLA time-stretching
    • WSOLA quick seek
    • Dedicated audition/pre-listening player outputs (provided in JACK; Ardour does this by default; it's useful for this)
  • Metronome
    • Enable audio metronome
      • File (bar)
      • File (beat)
    • Dedicated audio metronome outputs (also like Ardour... right?)

"MIDI" Tab:

  • Capture/Export
    • File format:
      • SMF Format 1
      • SMF Format 0
    • Quantize: aligns events to beats as closely as specified.
      • None
      • Beat
      • Beat/2
      • Beat/etc.
  • Playback
    • Queue timer (resolution):
      • (default)
      • system timer (1000Hz)
      • PCM playback-0-0-0 (slave), etc. ???
  • Control
    • MMC:
      • None
      • Input
      • Output
      • Duplex
    • Device: "(Any)" or 0-127
    • SPP: None, Input, Output, Duplex
    • Dedicated MIDI control input/output (like Rosegarden)
  • Metronome
    • Enable MIDI metronome
    • Channel: (default 10)
    • Note (bar): choose percussion instrument, velocity, duration
    • Note (beat): choose percussion instrument, velocity, duration
    • Dedicated MIDI metronome output

"Display" Tab: Pretty much self-explanatory

"Plugins" Tab: Allows you to choose directories for LADSPA, LV2, and DSSI plugins, adding multiple directories of each kind. Also,

  • Instruments
    • Dedicated audio outputs (check-box): ????

Configuring MIDI Channel Names

So that Qtractor knows your "instruments" and patch names and stuff, you'll need to import your SoundFont (if you're using Qsynth) !!

  1. Go to 'View > Instruments'
  2. Click "Import"
  3. Navigate to /usr/share/soundfonts
  4. Import whichever SoundFonts you would like to use (like the default FluidR3 GM).
  5. This is all tha Qtractor needs for general configuration.
  6. For each MIDI track that you have, either at creation or later by accessing the "Track Properties" window (for example, by right-clicking on the track's info-box in the left column and then "Track Properties")
    1. If it says "(No instrument)" then choose a SoundFont and change to that.
    2. The "Bank Select Method" can normally be left alone.
    3. Choose a bank (they all have different programs/sounds).
    4. Choose a program (this is the actual sound).
    5. Click "OK" to accept the new settings.

Using Qtractor


Qtractor is very similar to Rosegarden and Ardour. To understand the basics of all three DAWs (Digital Audio Workstations), use the Ardour tutorial's _whatever_ section. It mostly applies to this.

Using JACK with Qtractor

Qtractor includes the important part of QjackCtl's interface, so it is not necessary to run both programs together. However, you may wish to use other features of QjackCtl, like its ability to save a "patch bay." Mention that they're programmed by the same person/people, I think.

To get Qtractor's implementation of QjackCtl's "Connections" window, you'll have to click on the "Connections" button on the toolbar, or 'View > Connections' or F8. Qtractor's "MIDI" tab is equivalent to QjackCtl's "ALSA" tab.

When you start Qtractor, it automatically starts JACK, unless it is already started.

=== Miscellaneous ===\ !! When creating a MIDI track, the "omni" check-box determines whether that track will accept input from any MIDI channel, or just the one to which it's assigned !!

!! To move the transport to a particular point, shift-click in the measure number !!

!! You can change whether you want to follow the transport by auto-scrolling, with the button on the toolbar !!

!! In the matrix editor and the main screen, when you want to scroll left-right, hold control and use the mouse's scroll wheel !!

!! In matrix editor, "Tools" to adjust velocity is "Resize" and you can set it absolutely !!

Exporting MIDI and Audio Together

To export MIDI tracks with audio in Qtractor:

Play through the file in Qtractor, while routing the MIDI output into a track that's being recorded in Qtractor... effectively converting the MIDI to audio so that when you export the audio, it will all be done together. Also explain why you have to do this. Also, it's probably better to re-record the audio AND the MIDI, because then you will have the proper balance applied in a single audio track.

  1. Create a new, empty audio track in Qtractor.
  2. Check the the following is connected to Qtractor's master bus:
    • All of Qtractor's audio output that you want in the final recording.
    • All of your MIDI synthesizer's output ("all of Qsynth's output") that you want in the final recording.
    • Nothing else.
  3. Move Qtractor's transport to the start of the session.
  4. Arm the new track onto which you intend to record.
  5. Un-arm all other tracks.
  6. Arm Qtractor's transport.
  7. Press "Play" on the transport, and wait as the session plays through.
  8. Unfortunately, for this part, there is no way to go faster than real-time.
  9. Qtractor will not automatically stop the transport upon reaching the end of the previously-recorded material.
  10. When Qtractor reaches the end of the previously-recorded material, stop the transport, un-arm the new track, and create a saved copy of the Qtractor file... or export it immediately, I'm not sure...

Using the Blue Place-Markers

Here are some things you can do with the blue place-markers:

  • Mark one particular place:
    1. Move the cursor to the place you want to mark.
    2. Left-click and hold on the location
    3. Drag the cursor to the right just a little bit.
    4. Two blue markers will appear.
    5. Instead of leaving them separate, move the second blue marker over top the first one.
    6. Release the mouse button.
    7. The arrows should be converged.
  • Mark a range:
    1. Move the cursor to the place where you want the left-most marker.
    2. Left-click and hold.
    3. Drag the cursor to the location where you want the right-most marker.
    4. Release the button.
    5. The blue markers should mark the particular range.
  • Move one of the markers:
    1. ja
    2. aj
  • Something else?

Using the MIDI Matrix Editor's "Tools"


Use-Case Demonstration

I've created a demonstration of what a first-time user might try as their first project with Qtractor. The following sequences demonstrate the decision-making, and the various features that could be learned. This does not attempt to show a generic method for creation, but rather the specific way that I created a new composition with the inspiration stated below.


The goal of this demonstration is to illustrate Qtractor's ultimate strength: combining audio and MIDI tracks. I decided to start with a portion of one of my favourite compositions, and to composer a MIDI "alter-ego" to go along with it. The piece is listed below in "Requirements."

Since that particular movement is a "theme and variations" movement, it starts with a theme, then continues with varied versions of that theme. The theme is in two parts, each of which is repeated once. Beethoven uses several compositional techniques that are typical of his time period, and achieves a consistently similar, but consistently new, movement.

We are no longer bound by the aesthetic rules of Beethoven's time. Something about the notation editor also being different.


  • The recording of the sonata that I used, or else your times will be off a little.
  • Qsynth.

Getting Qtractor Ready

  1. Open QjackCtl, and start JACK.
  2. Open Qsynth, and configure it with one instance, using the default FluidR3 SoundFont.
  3. Open Qtractor
  4. Configure the MIDI tracks to cooperate with the default FluidR3 SoundFont.
  5. Switch to QjackCtl and ensure the proper connections:
    • Qtractor's MIDI out (on "ALSA" page) is connected to Qsynth's MIDI in
    • Qsynth's audio out is connected to system in (the speakers)
    • Qtractor's audio out is conencted to system in (the speakers)
    • No other connections are necessary.

Import the Audio File

  1. Create a new audio track.
  2. Right-click on the audio track, and go to "Clip" (a "Clip" in Qtractor is equivalent to a "Region" in Ardour) then "Import"
  3. Locate the audio file that you want to import (in this case, I imported a recording of the second movement of beethoven's Op.57 piano sonata, "Appassionata."
  4. If the clip doesn't start at the beginning of the track, then click and drag it to the beginning.

Marking the First Formal Area

In addition to the transport, Qtractor has two blue place-markers, which sometimes merge into one. The best way to learn the behaviour of the blue place-markers is by using them. They are intended to mark a range in the work area ("main screen").

  1. We're keeping the standard tempo of 120 beats per minute, and the metre is 4/4
  2. Start from the beginning, and listen until the end of the first formal section, which I've decided is about the fourth beat of measure 12 (use the ruler to see).
  3. Mark that point with the blue arrow.
  4. Mark the beginning of the formal area by left-clicking at the beginning of the session. If the transport is at the beginning, then it will hide a blue marker placed at the beginning.
  5. Create a new clip, by clicking 'Edit > Clip > New'
  6. The clip editor will appear.

Creating my Theme

I want something simple, to match the simple-sounding chorale at the beginning that is the theme of this movement. What could be simpler than a moment of sound, followed by some moments of silence?

  1. In the MIDI matrix editor window, click on the "Edit mode" tool, which looks like a pencil with no other markings.
  2. I decided to place a note every three beats (one beat is marked by one vertical line), on the beat, lasting for one sixteenth note.
    1. Click the pencil where you want the note to appear. A box will appear. If you drag the box to the right, then the note will sound for longer.
    2. I put all of the notes on the same pitch, but it doesn't matter whether you put them on the same pitches or not - they will be changed later.
    3. I also made a mistake when I was inputting the notes, so there's one place where they are only two beats apart instead of three. This didn't matter to me, but it might matter to you.
    4. Continue inputting notes until you have filled the whole pre-selected region (between the blue markers). Qtractor will let you continue beyond that point, so you need to keep an eye on the marker yourself.
    5. To scroll sideways, you can hold down either Shift or Ctrl and use your mouse's scroll wheel.
  3. Move to transport just before the end of the segment you added: use Shift-click.
  4. Listen to the end to ensure that your segment ends with or before the end of the first formal area.
  5. Close the matrix editor window.
  6. Use the main window to view the MIDI segment which you just inputted. The vertical lines represent barlines, and the darker rectangles represent notes.
  7. If the MIDI segment extends beyond the last note that you inputted, click-and-drag the end so that there isn't much over-hang. If you accidentally adjust it too far and remove notes, then simply drag the segment back out - the notes should still be there.
  8. Return to the matrix editor by double-clicking on the MIDI segment.
  9. Select all of the notes that you have inputted so far:
    • Press 'Ctrl+A', or
    • Click-and-drag to select, or
    • Use 'Edit > Select > Select All'
  10. Randomize the pitches:
    1. Go to 'Tools > Randomize'
    2. Ensure that "Randomize" is checked
    3. Ensure that "Note" is checked (this means "pitch")
    4. Choose a percentage.
    5. Click "OK" to apply.
    • You may need to experiment with the percent of randomization that you allow. Greater randomization means a lower chance of repetition, but it also means that the pitches will be spread within a smaller range.
    • If you want to re-try the randomization, use 'Edit > Undo Randomization', and then use the Randomize tool again.
    • If you like what happens to most of the pitches, you can select and move a few of them either individually or together. To adjust pitches as a group, select the ones that you want to move (either by click-and-drag select or by 'ctrl+click' select), and 'ctrl+drag' them to the desired new location.
  11. Now you need to adjust the volume of the pitches. There are two ways to do this:
    • You can select all of the pitches, then use the "Resize" MIDI tool, adjusting the "Value" property.
    • You can select all of the pitches, then use the value editor portion of the matrix editor window. This is at the bottom of the matrix editor window, and the height of each pitch shown here tells you the volume at which it will play. To adjust all of the pitches at once, Ctrl+click-and-drag to adjust the height as desired. Be careful when doing this that you don't change the horizontal position, which will change the time that the notes sound.
    • I would suggest at volume of approximately "32," but this depends on your taste. Also, I adjust the volume of some pitches to be louder when the audio file is louder.
  12. When you are satisfied with your pitches and volumes, start the transport from the beginning, and listen to the entire segment that you just created. You may wish to change the section again, or simply to move on to the next step in the tutorial.

Repeat the Theme

The beginning of this composition opens with a thirteen-measure (in this Qtractor session) segment that is immediately repeated. If, like me, you chose to create a thirteen-measure theme, you will either need to create a second MIDI segment to cover Beethoven's repeat, or you can do what I did, and copy-and-paste to get an exact repetition of your theme.

To repeat your theme exactly:

  1. Click on the first MIDI segment to select it, then copy it with 'Edit > Copy' or 'Ctrl+C'
  2. Paste it with 'Edit > Paste' or 'Ctrl+V'
  3. The cursor will turn into a clipboard icon, and a rectangle will appear to its right. This rectangle represents the clip that is going to be pasted, but first you must select a place to put it.
    1. Move the cursor so that the rectangle appears just after the end (right-most edge) of the first MIDI clip.
    2. You can use the scrollbar arrows to scroll the main window, but it can be difficult, because the cursor has changed.
      • You can also scroll the main window by holding Ctrl and using your mouse's scroll wheel.
      • You can also scroll by carefully moving the mouse cursor to the edge of the main-part-thing.
    3. It is not important to get the rectangle exactly where it will stay, but just near where it needs to go.
    4. Left-click when you have placed the rectangle where you want it.
  4. Position the transport so that you can listen to the transition from the end of the first clip into the beginning of the second clip. Press "Play" on the transport control to listen, then stop it when you are done.
  5. If you need to adjust the position of the second clip, then click-and-drag it into the desired position. Re-listen to verify that you placed the clip where you want it to stay.

Compose the Next Part

It's difficult to explain, but this part feels more chord-focussed to me, even though it's very similar to the first part. I decided to show this by using the same generative idea as the first part, but with two simultaneous pitches instead of one. At the end of the segment, I included a brief gathering of "randomized" pitches, with longer durations than before. There is no particular reason that I included this chord-like incident, but it felt like the right thing to do.

  1. Listen to the next portion of the audio file, and mark off the next formal section that you want to use (mine is from Qtractor's measure 25 to beat to of measure 38). The portion that I chose is also repeated, like the first part.
  2. Place the blue markers at the beginning and end of the segment that you chose.
  3. Create a new MIDI clip.
  4. Create the notes separated by three beats, as in the last segment. This time, be sure to add two notes at the same time, by ensure that they are aligned vertically. Again, it doesn't matter which pitches you choose, because they will be randomized.
  5. Select all of the pitches, and randomize them by using the "Randomize" MIDI tool.
  6. Depending on how the pitches are randomized, each pair of notes will probably end up in one of the following situations:
    • They are too close or share a particular intervallic relationship that makes them sound like one note.
    • They are too far or share a particular intervallic relationship that makes them sound like two notes.
    • They share a particular intervallic relationship that makes them sound like one chord built of two equal chords.
    Depending on your aesthetic preferences, you may wish to change some of the notes so that one or some of these situations are avoided.
  7. I created the tone cluster at the end by clicking arbitrarily across bar 37. It happened to create six notes with the pitches G, E, C-sharp, F-sharp, G-sharp, and B. I could have used the "Randomize" MIDI tool, but chose not to.
  8. Then I carefully click-and-dragged the right-most end-point of each pitch, so that they all eneded at the same time: the first beat of measure 38.
  9. When you're done, you may need to copy-and-paste the segment.

Qtractor's Measures 52 to 75

You already know everything that you need to create this segment, so I will simply explain the artistic reasoning.

This corresponds to the "first variation" in the audio file. Since variations are based on the theme, the rest of my sections are all somehow based on my theme section. Here, I derived inspiration from the music again: there is a note (generally) every three beats like the theme, but I extended it to take up two beats, at the end of which another note briefly sounds. This is like Beethoven's technique in the first variation. Although I ignored them in the theme, there are small transitions between the inner-sections of Beethoven's theme, and I chose to add them into my first variation (you can see it in Qtractor's measure 69).

Qtractor's Measures 75 to 97

You already know everything that you need to create this segment, so I will simply explain the artistic reasoning.

This section corresponds to the part that we created in the "Compose the Next Part" section above. I decided to combine the idea of this first variation with the idea of that "Next Part." As you see, the result here is much like measures 52 to 75, but with more simultaneous pitches, as in the "Next Part."

At this point, my MIDI accompaniment really begins to take on its own rhythm and personality, competing with the audio file representing Beethoven's idea. Compared to the Beethoven, the randomized pitches of the MIDI part sound child-like and trivial. This might send listeners the message that MIDI is simply trivial and child-like, when compared to "real classical music," and this is a perfectly valid interpretation.

However, what I intended to communicate was this: Beethoven wrote a lot of piano music, much of which is still enjoyed by people today. Nobody will ever be able to re-create the magic of Beethoven, and I feel that it would be silly to try; this is why I let the music sound silly, rather than attempting to make it sound serious. I also feel that taking inspiration from composers such as Beethoven is an excellent way to create new art for ourselves, which is why I am deriving certain cues directly from the music (mostly vague stylistic ones), but ignoring others (like the idea that pitches should be somehow organized).

Qtractor's Measure 97

This is a three-beat transitional passage, which I added for no particular reason but to fill a pause in the audio track.

Qtractor's Measures 98 to 119

I used one new technique while composing this section: copy-and-paste within the matrix editor. You can see this around the beginning of measure 103, where the same pitch-classes are heard simultaneously in a high and low octave. I created the upper register first, then selected the notes that I wanted to copy. I used 'Ctrl+C' and 'Ctrl+V' to create the copy. Like when copy-and-pasting clips in the main window, the cursor icon changes to a clipboard, and an outline of the to-be-pasted material is shown so that you can position it as desired. As you will see, you can paste the copy onto any pitch level, and at any point in the measure. What is kept the same is the pitch intervals between notes, and the rhythms between notes.

I also used the copy-and-paste technique with the three stepwise-descending-notes figure in this passage. After building the initial note of each set of four, I randomized those, and copy-and-pasted the three descending notes after. This way, I was able to randomize part of the melody, but avoid randomizing another part.

In this passage, I kept the "a note followed by three beats of rest" idea, then added onto the melody by taking two cues from the audio file. The first was the increasing surface rhythm of the upper part, which gave rise to the "three-descending-notes" figures. The second was the fact that the chords are still going on underneath that melody, so I added a second randomized set of notes underneath my upper part. At the end of the passage I continued the trend that I started with a finishing flourish that picks up sustained notes.

Qtractor's Measures 119 to 139

This passage does not introduce new techniques, but uses some trick manipulation of volume that are explained at the end of the section.

This passage sounds much busier because I increased the space between primary notes from three beats to two. I divided the octaves into four approximate ranges. The lowest has randomized pitches lasting one beat, which begin on beats that don't have a "primary note." There is no parallel in Beethoven's music at this point.

The next higher range is meant to mirror the melody in this part of the audio file, which is slightly lower than it was before. The highest range is connected to this, because Beethoven wrote some parts of the melody much higher than the other parts.

The second-highest range reflects the quickly-moving accompanimental part in the upper register of the piano.

Sorting out the volumes for this passage posed a small challenge, because of the much greater number of notes than in previous passages. Thankfully, the parts are mostly well-separated from each other in the matrix editor. I was able to use click-and-drag selection to select each range separately, and adjust its volume using both the "Resize" MIDI tool, and 'Ctrl+click-and-drag' in the volume adjustment space at the bottom of the matrix editor window.

My sustained-note flourish at the end of this passage was a feeble attempt to establish A Major tonality in the highest register that I used.

Qtractor's Measures 139 to 158

There are no new techniques used in this section.

I maintained two-beat spacing of primary notes, and began with only two/three registers. The lowest register is just an occasional reinforcement of the uppermost, as in the audio file at this point. I used copy-and-pasting to create the quickly-moving, middle line.

As the section progresses, the middle line gains a simultaneous addition. This eventually becomes more adventurous, at first jumping into a very high register, then leading downwards towards its place in the next section, in the lowest register.

Qtractor's Measures 158 to 176

There are no new techniques in this section. I made extensive use of copy-and-pasting, and especially of partial randomization: adding the first note of a flourish, randomizing it, then copy-and-pasting the rest of the flourish into place at the appropriate pitch-level.

At this point, I had basically dropped any obvious reference to my theme, as happens in the Beethoven score. Of course, its influence is still there: every four beats, my middle voice repeats the same pitches, and sustains them for the next four beats. Also, the upper voice in my part shares the same sort of "single repeated pitch" idea that makes up Beethoven's upper voice. There is also a weak rhythmic similarity between the two.

Near the end of the first sub-section (measures 164-166 inclusive), I included a long, downward 12-tone scale, which was inspired by the much smaller downward scale in Beethoven's piece.

The next sub-section is an exact repeat of ideas, but with different pitches, a smaller pitch range, and a slightly different ending.

Qtractor's Measures 177 to the End

There are no new techniques used in this section.

This part of piece was intended to mirror Beethoven's score quite obviously. The only real bit of trickery that I played was looking at Beethoven's score, and incorporating particular notes: the chord in measure 212 is composed of the same pitches that are used in the chord in the audio file in measure 210. It sounds very different because of the "real piano vs. MIDI piano" issue, and because the tuning of the piano in the recording is different than the tuning of the MIDI piano. Also, the chord in the second beat of measure 213 is the first chord of the movement following the one recorded in the audio file. By including this (then "resolving" it, then re-introducing it), I intend to play with the expectations of a listener that may already be familiar with Beethoven's sonata.