From Fedora Project Wiki
This Is out of Date
The most recent revisions of the Musicians' Guide are now available from the git repository.

Features and Strengths

Qtractor is a relatively new application, created and maintained by the same developers who are responsible for QjackCtl and QSynth (both covered in other chapters of this Guide). It offers much more flexibility than Audacity, but is still easier to use than Ardour or Rosegarden. As such, it serves as the perfect starting-point for people first discovering software-based DAWs.

But Qtractor is much more than just a starting-point: its simplicity is its greatest strength. Ardour and Rosegarden, may offer more features, but Qtractor takes much less time to learn. After the initial learning-curve, you will be able to complete almost every audio or MIDI project with Qtractor. Its interface offers simple, intuitive, point-and-click interaction with clips, integrated control of JACK connections, MIDI control integration with external devices and other MIDI-aware software, and support for LADSPA, DSSI, native VSTi, and LV2 plug-ins. With development progressing very quickly, Qtractor is becoming more stable and usable by the minute. The simple interface allows you to focus on creating music to suit your creative needs.

Beginners and advanced users alike will be pleased to see how Qtractor can work for them.

Requirements and Installation

Knowledge Requirements

Although Qtractor is one of the simplest software-based DAWs currently available in Fedora Linux, its interface may not be straight-forward unless you have previous experience with DAW software. Reading the Common Elements chapter of this Guide will provide enough background information for you to use Qtractor, Ardour, and Rosegarden.

Software Requirements

!! Input standard Spiel about JACK !!

In addition to JACK, if you intend to use Qtractor for recording audio, your system's audio interface should be configured with microphones, as desired. Your system's audio interface should also be configured for audio output, either with speakers, or preferably with headphones. Headphones will allow you to listen to a session as it is recorded.

If you intend to use Qtractor for recording MIDI, then your system's MIDI interface should be configured with MIDI input devices, as desired. If you intend to use Qtractor for sequencing and synthesizing MIDI signals into audio signals, then you will need a MIDI synthesizer. Both hardware- and software-based MIDI synthesizers are compatible with Qtractor. FluidSynth is a good, software-based MIDI synthesizer, and it is discussed in this part.

Installation

!! Qtractor may or may not be available from a standard Fedora repository in Fedora 14. This assumes that it is. !!

You can install Qtractor either using the PackageKit or KPackageKit applications, or by running the following command in a terminal:

su -c 'yum install qtractor'

If you will be using Qtractor with a SoundFont-compatible, software-based MIDI synthesizer (such as FluidSynth/QSynth), you should tell Qtractor about the SoundFont. See the !!"Configuring MIDI Channel Names"!! section. You can install the FluidSynth/QSynth synthesizer by following the instructions !!here!!.

Configuration

"Qtractor" will work by itself, without further configuration. The options described here are for the settings you are most likely to want to discuss. To open the "Options" window, from the menu select 'View > Options'. !! Change to Click on "View > Options" to open the "Options" window. !!

"Options" Window: "Audio" Tab

The Capture/Export setting allows you to choose the format in which "Qtractor" stores its audio clips when recorded or exported. You will be able to choose a file type, such as "WAV Microsoft" for standard ".wav" files, "AIFF Apple-SGI" for standard ".aiff" files, or the preferable "FLAC Lossless Audio Codec," format. FLAC is an open-source, lossless, compressed format for storing audio signals and metadata. See the FLAC website for more information. You will also be asked to select a quality setting for lossy compressed formats, or a sample format for all lossless formats. The sample format is sometimes called "bit rate," which is described here. If you don't know which sample format to choose, then "Signed 16-Bit" is a good choice for almost all uses, and will provide you with CD-quality audio. Most non-speciality hardware is incapable of making good use of higher sample formats.

Setting the Transport mode will allow you to adjust the behaviour of the transport.

  • None : allows "Qtractor's" transport to operate independently
  • Slave : allows "Qtractor's" transport to accept instructions sent by JACK's transport, which can be controlled by QjackCtl or another application.
  • Master : allows "Qtractor's" transport to send instructions to JACK's transport, which can be viewed by QjackCtl, or used by another application.
  • Full : is equivalent to "Master" and "Slave" modes simultaneously; "Qtractor's" transport will both send and accept instructions.

If you are using "Qtractor" alone, or if you don't know which to choose, then "None" is a good choice. This setting can be adjusted at any time, if you later decide to link the transport in multiple applications.

The Metronome section allows you to use a (short) audio file as the metronome sound, rather than the standard, MIDI-based metronome. You can choose the same file for "beat," and "bar," if you prefer. The Dedicated audio metronome outputs option will output the audio metronome's signal through separate outputs in JACK. This is Ardour's default behaviour.

"Options" Window: "MIDI" Tab

Adjusting the "File format" allows you to change how MIDI clips are stored. You will not need to adjust this unless required by an external application. The Wikipedia article about MIDI has further information about file formats.

"MMC" stands for "MIDI Machine Control," and it allows multiple MIDI-connected devices to interact and control each other. Setting the Transport mode to a setting other than "None" allows it be controlled by MMC messages.

  • None : will have "Qtractor" ignore incoming MMC messages, and not provide outgoing MMC messages
  • Input : will have "Qtractor" follow incoming MMC instructions, but not provide outgoing MMC messages
  • Output : will have "Qtractor" ignore incoming MMS messages, but provide outgoing MMC messages
  • Duplex : will have "Qtractor" follow incoming MMC instructions, and provide outgoing MMC messages

You can also select a particular MIDI device number with which Qtractor will interact; if you do this, it will ignore MMC messages from other devices, and not send MMC messages to other devices. Enabled the Dedicated MIDI control input/output will provide JACK with MIDI inputs and outputs that will be used by "Qtractor" only for MMC messages. "Qtractor" will not send or receive MMC messages sent on other inputs or outputs if this option is enabled. "SPP" stands for "Song Position Pointer," and helps MIDI-connected applications to keep track of the current location in a session (in other words, where the transport is). This should probably be set to the same setting as "MMC." If you don't know which of these settings to use, then setting "MMC" to "None" is a good choice. This setting can be adjusted at any time, if you later decide to link applications with MMC messages.

The default metronome sound is provided by the "MIDI Metronome," and you can adjust its settings here. In particular, you may wish to provide a "Dedicated MIDI metronome output," to help you separate the metronome's signal.

Configuring MIDI Channel Names

If you're using "FluidSynth" with "QSynth," you should tell "Qtractor" about the SoundFont that you're using. When you do this, you enable "Qtractor" to help you choose instruments ("patches").

  1. From the menu, select 'View > Instruments' !! change to Click on "View > Instruments" !!
  2. In the Instruments window, click "Import."
  3. Navigate to /usr/share/soundfonts
  4. Select the SoundFonts that you would like to use. The default is the "FluidR3 GM" SoundFont, but you can choose multiple SoundFonts to use simultaneously.
  5. Close the Instruments window to return to the main "Qtractor" window.

Using Qtractor

The "Tutorial" section teaches you how to use Qtractor by example. This section is designed to serve as a reference while you complete the tutorial, and for refreshing your memory afterwards.

!! These sections will need to be ordered somehow !!

Using JACK with Qtractor

Qtractor and QjackCtl are programmed and maintained by the same developers. For this reason, Qtractor offers a QjackCtl-like interface to modify JACK's connections. Furthermore, Qtractor preserves all of the connections with every Qtractor file, so there is no need to use QjackCtl's "patch bay" feature (which does the same thing). However, if you wish to change JACK's settings, you will need to use QjackCtl.

To view the JACK Connections window within Qtractor, press [F8] on the keyboard, or select 'View > Connections' from the menu. !! change to or click on "View > Connections" !! Pressing [F8] on the keyboard will hide the window again. Note that Qtractor's "MIDI" tab is equivalent to QjackCtl's "ALSA" tab.

Qtractor automatically starts JACK, unless it is already running.

Exporting a Whole File (Audio and MIDI Together)

Qtractor can export all of a session's audio clips as one audio file - !! change to comma instead of - !! but it cannot export the MIDI clips directly into that audio file. This is because Qtractor does not synthesize audio from MIDI signals, but uses an external MIDI synthesizer to do this. Thankfully, there is a relatively simple way to overcome this, allowing both audio and MIDI to be exported in the same audio file: use Qtractor to record the audio signal produced by the MIDI synthesizer. This procedure only works if you use a MIDI synthesizer (like FluidSynth) which outputs its audio signal to JACK.

  1. Create a new, empty audio track in Qtractor (from the menu, select 'Track > Add Track') !! Change to To create a new, empty audio track in Qtractor, click on "Track > Add Track" !!
  2. Ensure that your MIDI synthesizer is set up correctly to produce output in the usual method (through your speakers).
  3. Use Qtractor's "Connections" window (press [F8] on the keyboard) to ensure that the output from your MIDI synthesizer is routed to the input for the newly-created audio track.
  4. Move Qtractor's transport to the start of the session.
  5. Ensure that only the newly-created audio track is armed for recording.
  6. Arm Qtractor's transport for recording.
  7. Press Play on the transport, and wait as the session plays through.
  8. When you have reached the end of the session, stop the transport. Qtractor will not automatically stop the transport.
  9. Export the file as you normally would (from the menu, select 'Track > Export Tracks > Audio'). !! change to To export the file as you normally would, click on "Track > Export Tracks > Audio" !!

After the audio version of the MIDI signal is recorded, and you have exported the session, you may wish to delete the new audio track.

Using the Blue Place-Markers

In addition to the transport, Qtractor provides two other place-markers. They are blue. Here are some things you can do with the blue place-markers:

  • 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.
  • 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.
  • Move one of the markers:
    1. Place the cursor over the triangular top of the marker, located in ruler at the top of the track pane.
    2. The cursor should change to show a double-ended, horizontal arrow.
    3. Left-click and drag the mouse.
    4. The blue place-marker should follow the mouse. If it doesn't, then try again. It is sometimes difficult to select the place-marker.

Using the MIDI Matrix Editor's "Tools"

Qtractor's matrix editor for MIDI clips offers a collection of useful tools, available from the Tools menu in the matrix editor window. These tools only operate on MIDI notes selected in the matrix editor window before the tool window is opened. Regardless of which tool you select from the menu, the same options are available to you each time the window is opened. It is possible to use multiple tools at a time.

Be careful: the names of the tools may be misleading.

Here is an explanation of what the tools do:

  • Quantize: This tool can be used to regulate how often MIDI notes are allowed to begin, and how long they are allowed to last. They are marked in divisions of a beat.
    • Time: The default setting, "Beat/4" will allow notes to begin only on every sixteenth note subdivision. If a note begins somewhere else, it will be moved to the nearest sixteenth note subdivision. For example, a note that begins on the first 32nd note of a measure would be moved to begin on the first beat instead.
    • Duration: The default setting, "Beat/2" will allow notes to last only in multiples of eighth notes. If a note lasts for shorter or longer than an eighth note multiple, it will be adjusted to the closest duration that is an eighth note multiple. For example, a sixteenth note would be adjusted to an eighth note.
    • Swing: This regularizes a "swing" effect on the rhythm. You will have to experiment with the settings to find one that works for you.
    • Common settings, described in simple meter where a quarter note gets the beat:
      • Beat : quarter-note duration
      • Beat/2 : eighth-note duration
      • Beat/3 : eighth-note triplet duration
      • Beat/4 : sixteenth-note duration
      • Beat/6 : sixteenth-note sextuplet duration
      • Beat/8 : thirty-second note duration
  • Transpose: This tool adjusts either the pitch (vertical axis) or the time (horizontal axis) of the selected MIDI notes.
    • Pitch: Transposes the notes by this many semitones. Positive values transpose to a higher pitch-level, !! remove comma !! and negative values transpose to a lower pitch-level.
    • Time: Adjusts the starting time of MIDI notes, without affecting duration or pitch. This is most usefully measured as "BBT" (meaning "Bars, Beats, and Ticks" - each is separated by a decimal point), but can also be measured as time or frames.
  • Normalize: This adjusts the loudness of the selected MIDI notes, called "velocity." There are three ways to use the tool. The value specified in the "MIDI Tools" window is used as the highest allowable velocity; all other velocity values are adjusted proportionally.
    1. Adjust "Percent" only: This allows you to set the velocity to a percentage of the maximum velocity.
    2. Adjust "Value" only: This allows you to supply a specific value for the velocity. Possible values range from 0 to 127.
    3. Adjust "Percent" and "Value" together: This allows you to specify a percentage of the indicated value. If you set "50%" and "32," for example, the resulting velocity will be "16," which is 50% of 32.
  • Randomize: This tool adjusts the selected parameters to pseudo-random values. The values are only pseudo-random for two reasons: computers cannot produce truly random numbers, only numbers that seem random to humans; the percentage value allows you to specify how widely-varied the results will be. A lower percentage setting will result in MIDI notes that are more similar to the pre-randomized state than if the MIDI notes were randomized with a higher percentage setting. The following parameters can be randomized:
    • Note, which means pitch.
    • Time, which means the time of the beginning of the note.
    • Duration, which means duration.
    • Value, which means loudness (velocity).
  • Resize: This tool allows you to explicitly specify the duration or velocity of some MIDI notes. Setting the Value field will set the velocity (loudness) of all selected notes to that setting. Valid settings are from 0 (quietest) to 127 (loudest). Setting the Duration field will set the duration (length) of all selected notes to that setting. Duration is most usefully measured as "BBT" (meaning "Bars, Beats, and Ticks" - each is separated by a decimal point), but can also be measured as time or frames.

Miscellaneous Tips

If you wish to scroll horizontally in Qtractor's tracks pane or the matrix editor, hold down the [Ctrl] ("Control") key on the keyboard as you adjust your mouse's scroll-wheel.

Qtractor files should be saved in an otherwise-empty folder. Unlike Ardour, Audacity, and Rosegarden, Qtractor will not create a new sub-folder automatically, but will instead store all of a session's clips in the same folder as the the Qtractor file itself.

Transport

You can move Qtractor's transport to a particular point in a session by holding [Shift] on the keyboard as you use the mouse to click on that point.

You can choose whether or not you want the track pane to automatically scroll as the transport moves by selecting from the menu 'Transport > Follow Playhead'. !! change to by clicking on "Transport > Follow Playhead" !!

MIDI

When creating a MIDI track, you can use the "omni" check-box to allow the track to respond to input from any MIDI channel. If the check-box is unselected, the track will respond only to signals on its assigned MIDI channel.

In the matrix editor window, you can adjust the "velocity" (loudness) of a note by using the "Resize" MIDI Tool (see !!"Using the Matrix Editor's MIDI Tools,"!! above)

If you find it difficult to work with Qtractor's matrix editor, but you find it easy to work with LilyPond, you can use this to your advantage. LilyPond will output a MIDI-format representation of your score if you include a "midi" section in the "score" section. It should look something like this:

\score
{
   ...
   \midi { }
}

You can import LilyPond's MIDI output by running the following command from Qtractor's menu: 'Track > Import Tracks > MIDI'. !! change to You can import LilyPond's MIDI output by clicking on "Track > Import Tracks > MIDI" !! You will then be able to adjust and use the MIDI track like any other MIDI track in Qtractor.

Tutorial

I've created a demonstration of what a first-time user might try for 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.

Inspiration

The goal of this demonstration is to illustrate a particular strength of Qtractor: combining audio and MIDI tracks. I decided to start with a portion of one of my favourite compositions, and to compose a MIDI-based "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. We are also using a very different style of notation with Qtractor - the matrix editor does not even resemble standard Western musical notation.

Another interesting aspect of this piece is that, unless you have access to the same audio recording that I used, you will not be able to experience the piece as I do. Playing the MIDI alone gives a completely different experience, and it is one that I knew would happen. This sort of "mix-and-match" approach to music-listening is more common than you might think, but rarely is it done in such an active way; normally, the "extra sound" of listening to music is provided by traffic, machines like furnaces and microwave ovens, and even people in a concert hall or auditorium with you. The fact that my audio files cannot be legally re-distributed forced me to add a conscious creative decision into every listening of the piece.

Requirements

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 !! on !! 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,  !! remove comma !! 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' !! change to Click on "Edit > Select > Select All" !!
  10. Randomize the pitches:
    1. Go to 'Tools > Randomize' !! change to Click on "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' !! change to click on "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, !! remove comma !! 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, !! remove comma and add your !! 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' !! change to and then copy it by clicking on "Edit > Copy" !! or [Ctrl+C]
  2. Paste it with 'Edit > Paste' !! change it to To paste it click on "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 ended 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, !! remove comma !! 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 accompaniment 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, !! remove comma !! 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, !! remove comma !! 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.

This page is a draft only
It is still under construction and content may change. Do not rely on the information on this page.

Address: User:Crantila/FSC/Sequencers/Qtractor

Features and Strengths

Qtractor is a relatively new application, created and maintained by the same developers who are responsible for QjackCtl and QSynth (both covered in other chapters of this Guide). It offers much more flexibility than Audacity, but is still easier to use than Ardour or Rosegarden. As such, it serves as the perfect starting-point for people first discovering software-based DAWs.

But Qtractor is much more than just a starting-point: its simplicity is its greatest strength. Ardour and Rosegarden, may offer more features, but Qtractor takes much less time to learn. After the initial learning-curve, you will be able to complete almost every audio or MIDI project with Qtractor. Its interface offers simple, intuitive, point-and-click interaction with clips, integrated control of JACK connections, MIDI control integration with external devices and other MIDI-aware software, and support for LADSPA, DSSI, native VSTi, and LV2 plug-ins. With development progressing very quickly, Qtractor is becoming more stable and usable by the minute. The simple interface allows you to focus on creating music to suit your creative needs.

Beginners and advanced users alike will be pleased to see how Qtractor can work for them.

Requirements and Installation

Knowledge Requirements

Although Qtractor is one of the simplest software-based DAWs currently available in Fedora Linux, its interface may not be straight-forward unless you have previous experience with DAW software. Reading the Common Elements chapter of this Guide will provide enough background information for you to use Qtractor, Ardour, and Rosegarden.

Software Requirements

!! Input standard Spiel about JACK !!

In addition to JACK, if you intend to use Qtractor for recording audio, your system's audio interface should be configured with microphones, as desired. Your system's audio interface should also be configured for audio output, either with speakers, or preferably with headphones. Headphones will allow you to listen to a session as it is recorded.

If you intend to use Qtractor for recording MIDI, then your system's MIDI interface should be configured with MIDI input devices, as desired. If you intend to use Qtractor for sequencing and synthesizing MIDI signals into audio signals, then you will need a MIDI synthesizer. Both hardware- and software-based MIDI synthesizers are compatible with Qtractor. FluidSynth is a good, software-based MIDI synthesizer, and it is discussed in this part.

Installation

!! Qtractor may or may not be available from a standard Fedora repository in Fedora 14. This assumes that it is. !!

You can install Qtractor either using the PackageKit or KPackageKit applications, or by running the following command in a terminal:

su -c 'yum install qtractor'

If you will be using Qtractor with a SoundFont-compatible, software-based MIDI synthesizer (such as FluidSynth/QSynth), you should tell Qtractor about the SoundFont. See the !!"Configuring MIDI Channel Names"!! section. You can install the FluidSynth/QSynth synthesizer by following the instructions !!here!!.

Configuration

"Qtractor" will work by itself, without further configuration. The options described here are for the settings you are most likely to want to discuss. To open the "Options" window, from the menu select 'View > Options'. !! Change to Click on "View > Options" to open the "Options" window. !!

"Options" Window: "Audio" Tab

The Capture/Export setting allows you to choose the format in which "Qtractor" stores its audio clips when recorded or exported. You will be able to choose a file type, such as "WAV Microsoft" for standard ".wav" files, "AIFF Apple-SGI" for standard ".aiff" files, or the preferable "FLAC Lossless Audio Codec," format. FLAC is an open-source, lossless, compressed format for storing audio signals and metadata. See the FLAC website for more information. You will also be asked to select a quality setting for lossy compressed formats, or a sample format for all lossless formats. The sample format is sometimes called "bit rate," which is described here. If you don't know which sample format to choose, then "Signed 16-Bit" is a good choice for almost all uses, and will provide you with CD-quality audio. Most non-speciality hardware is incapable of making good use of higher sample formats.

Setting the Transport mode will allow you to adjust the behaviour of the transport.

  • None : allows "Qtractor's" transport to operate independently
  • Slave : allows "Qtractor's" transport to accept instructions sent by JACK's transport, which can be controlled by QjackCtl or another application.
  • Master : allows "Qtractor's" transport to send instructions to JACK's transport, which can be viewed by QjackCtl, or used by another application.
  • Full : is equivalent to "Master" and "Slave" modes simultaneously; "Qtractor's" transport will both send and accept instructions.

If you are using "Qtractor" alone, or if you don't know which to choose, then "None" is a good choice. This setting can be adjusted at any time, if you later decide to link the transport in multiple applications.

The Metronome section allows you to use a (short) audio file as the metronome sound, rather than the standard, MIDI-based metronome. You can choose the same file for "beat," and "bar," if you prefer. The Dedicated audio metronome outputs option will output the audio metronome's signal through separate outputs in JACK. This is Ardour's default behaviour.

"Options" Window: "MIDI" Tab

Adjusting the "File format" allows you to change how MIDI clips are stored. You will not need to adjust this unless required by an external application. The Wikipedia article about MIDI has further information about file formats.

"MMC" stands for "MIDI Machine Control," and it allows multiple MIDI-connected devices to interact and control each other. Setting the Transport mode to a setting other than "None" allows it be controlled by MMC messages.

  • None : will have "Qtractor" ignore incoming MMC messages, and not provide outgoing MMC messages
  • Input : will have "Qtractor" follow incoming MMC instructions, but not provide outgoing MMC messages
  • Output : will have "Qtractor" ignore incoming MMS messages, but provide outgoing MMC messages
  • Duplex : will have "Qtractor" follow incoming MMC instructions, and provide outgoing MMC messages

You can also select a particular MIDI device number with which Qtractor will interact; if you do this, it will ignore MMC messages from other devices, and not send MMC messages to other devices. Enabled the Dedicated MIDI control input/output will provide JACK with MIDI inputs and outputs that will be used by "Qtractor" only for MMC messages. "Qtractor" will not send or receive MMC messages sent on other inputs or outputs if this option is enabled. "SPP" stands for "Song Position Pointer," and helps MIDI-connected applications to keep track of the current location in a session (in other words, where the transport is). This should probably be set to the same setting as "MMC." If you don't know which of these settings to use, then setting "MMC" to "None" is a good choice. This setting can be adjusted at any time, if you later decide to link applications with MMC messages.

The default metronome sound is provided by the "MIDI Metronome," and you can adjust its settings here. In particular, you may wish to provide a "Dedicated MIDI metronome output," to help you separate the metronome's signal.

Configuring MIDI Channel Names

If you're using "FluidSynth" with "QSynth," you should tell "Qtractor" about the SoundFont that you're using. When you do this, you enable "Qtractor" to help you choose instruments ("patches").

  1. From the menu, select 'View > Instruments' !! change to Click on "View > Instruments" !!
  2. In the Instruments window, click "Import."
  3. Navigate to /usr/share/soundfonts
  4. Select the SoundFonts that you would like to use. The default is the "FluidR3 GM" SoundFont, but you can choose multiple SoundFonts to use simultaneously.
  5. Close the Instruments window to return to the main "Qtractor" window.

Using Qtractor

The "Tutorial" section teaches you how to use Qtractor by example. This section is designed to serve as a reference while you complete the tutorial, and for refreshing your memory afterwards.

!! These sections will need to be ordered somehow !!

Using JACK with Qtractor

Qtractor and QjackCtl are programmed and maintained by the same developers. For this reason, Qtractor offers a QjackCtl-like interface to modify JACK's connections. Furthermore, Qtractor preserves all of the connections with every Qtractor file, so there is no need to use QjackCtl's "patch bay" feature (which does the same thing). However, if you wish to change JACK's settings, you will need to use QjackCtl.

To view the JACK Connections window within Qtractor, press [F8] on the keyboard, or select 'View > Connections' from the menu. !! change to or click on "View > Connections" !! Pressing [F8] on the keyboard will hide the window again. Note that Qtractor's "MIDI" tab is equivalent to QjackCtl's "ALSA" tab.

Qtractor automatically starts JACK, unless it is already running.

Exporting a Whole File (Audio and MIDI Together)

Qtractor can export all of a session's audio clips as one audio file - !! change to comma instead of - !! but it cannot export the MIDI clips directly into that audio file. This is because Qtractor does not synthesize audio from MIDI signals, but uses an external MIDI synthesizer to do this. Thankfully, there is a relatively simple way to overcome this, allowing both audio and MIDI to be exported in the same audio file: use Qtractor to record the audio signal produced by the MIDI synthesizer. This procedure only works if you use a MIDI synthesizer (like FluidSynth) which outputs its audio signal to JACK.

  1. Create a new, empty audio track in Qtractor (from the menu, select 'Track > Add Track') !! Change to To create a new, empty audio track in Qtractor, click on "Track > Add Track" !!
  2. Ensure that your MIDI synthesizer is set up correctly to produce output in the usual method (through your speakers).
  3. Use Qtractor's "Connections" window (press [F8] on the keyboard) to ensure that the output from your MIDI synthesizer is routed to the input for the newly-created audio track.
  4. Move Qtractor's transport to the start of the session.
  5. Ensure that only the newly-created audio track is armed for recording.
  6. Arm Qtractor's transport for recording.
  7. Press Play on the transport, and wait as the session plays through.
  8. When you have reached the end of the session, stop the transport. Qtractor will not automatically stop the transport.
  9. Export the file as you normally would (from the menu, select 'Track > Export Tracks > Audio'). !! change to To export the file as you normally would, click on "Track > Export Tracks > Audio" !!

After the audio version of the MIDI signal is recorded, and you have exported the session, you may wish to delete the new audio track.

Using the Blue Place-Markers

In addition to the transport, Qtractor provides two other place-markers. They are blue. Here are some things you can do with the blue place-markers:

  • 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.
  • 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.
  • Move one of the markers:
    1. Place the cursor over the triangular top of the marker, located in ruler at the top of the track pane.
    2. The cursor should change to show a double-ended, horizontal arrow.
    3. Left-click and drag the mouse.
    4. The blue place-marker should follow the mouse. If it doesn't, then try again. It is sometimes difficult to select the place-marker.

Using the MIDI Matrix Editor's "Tools"

Qtractor's matrix editor for MIDI clips offers a collection of useful tools, available from the Tools menu in the matrix editor window. These tools only operate on MIDI notes selected in the matrix editor window before the tool window is opened. Regardless of which tool you select from the menu, the same options are available to you each time the window is opened. It is possible to use multiple tools at a time.

Be careful: the names of the tools may be misleading.

Here is an explanation of what the tools do:

  • Quantize: This tool can be used to regulate how often MIDI notes are allowed to begin, and how long they are allowed to last. They are marked in divisions of a beat.
    • Time: The default setting, "Beat/4" will allow notes to begin only on every sixteenth note subdivision. If a note begins somewhere else, it will be moved to the nearest sixteenth note subdivision. For example, a note that begins on the first 32nd note of a measure would be moved to begin on the first beat instead.
    • Duration: The default setting, "Beat/2" will allow notes to last only in multiples of eighth notes. If a note lasts for shorter or longer than an eighth note multiple, it will be adjusted to the closest duration that is an eighth note multiple. For example, a sixteenth note would be adjusted to an eighth note.
    • Swing: This regularizes a "swing" effect on the rhythm. You will have to experiment with the settings to find one that works for you.
    • Common settings, described in simple meter where a quarter note gets the beat:
      • Beat : quarter-note duration
      • Beat/2 : eighth-note duration
      • Beat/3 : eighth-note triplet duration
      • Beat/4 : sixteenth-note duration
      • Beat/6 : sixteenth-note sextuplet duration
      • Beat/8 : thirty-second note duration
  • Transpose: This tool adjusts either the pitch (vertical axis) or the time (horizontal axis) of the selected MIDI notes.
    • Pitch: Transposes the notes by this many semitones. Positive values transpose to a higher pitch-level, !! remove comma !! and negative values transpose to a lower pitch-level.
    • Time: Adjusts the starting time of MIDI notes, without affecting duration or pitch. This is most usefully measured as "BBT" (meaning "Bars, Beats, and Ticks" - each is separated by a decimal point), but can also be measured as time or frames.
  • Normalize: This adjusts the loudness of the selected MIDI notes, called "velocity." There are three ways to use the tool. The value specified in the "MIDI Tools" window is used as the highest allowable velocity; all other velocity values are adjusted proportionally.
    1. Adjust "Percent" only: This allows you to set the velocity to a percentage of the maximum velocity.
    2. Adjust "Value" only: This allows you to supply a specific value for the velocity. Possible values range from 0 to 127.
    3. Adjust "Percent" and "Value" together: This allows you to specify a percentage of the indicated value. If you set "50%" and "32," for example, the resulting velocity will be "16," which is 50% of 32.
  • Randomize: This tool adjusts the selected parameters to pseudo-random values. The values are only pseudo-random for two reasons: computers cannot produce truly random numbers, only numbers that seem random to humans; the percentage value allows you to specify how widely-varied the results will be. A lower percentage setting will result in MIDI notes that are more similar to the pre-randomized state than if the MIDI notes were randomized with a higher percentage setting. The following parameters can be randomized:
    • Note, which means pitch.
    • Time, which means the time of the beginning of the note.
    • Duration, which means duration.
    • Value, which means loudness (velocity).
  • Resize: This tool allows you to explicitly specify the duration or velocity of some MIDI notes. Setting the Value field will set the velocity (loudness) of all selected notes to that setting. Valid settings are from 0 (quietest) to 127 (loudest). Setting the Duration field will set the duration (length) of all selected notes to that setting. Duration is most usefully measured as "BBT" (meaning "Bars, Beats, and Ticks" - each is separated by a decimal point), but can also be measured as time or frames.

Miscellaneous Tips

If you wish to scroll horizontally in Qtractor's tracks pane or the matrix editor, hold down the [Ctrl] ("Control") key on the keyboard as you adjust your mouse's scroll-wheel.

Qtractor files should be saved in an otherwise-empty folder. Unlike Ardour, Audacity, and Rosegarden, Qtractor will not create a new sub-folder automatically, but will instead store all of a session's clips in the same folder as the the Qtractor file itself.

Transport

You can move Qtractor's transport to a particular point in a session by holding [Shift] on the keyboard as you use the mouse to click on that point.

You can choose whether or not you want the track pane to automatically scroll as the transport moves by selecting from the menu 'Transport > Follow Playhead'. !! change to by clicking on "Transport > Follow Playhead" !!

MIDI

When creating a MIDI track, you can use the "omni" check-box to allow the track to respond to input from any MIDI channel. If the check-box is unselected, the track will respond only to signals on its assigned MIDI channel.

In the matrix editor window, you can adjust the "velocity" (loudness) of a note by using the "Resize" MIDI Tool (see !!"Using the Matrix Editor's MIDI Tools,"!! above)

If you find it difficult to work with Qtractor's matrix editor, but you find it easy to work with LilyPond, you can use this to your advantage. LilyPond will output a MIDI-format representation of your score if you include a "midi" section in the "score" section. It should look something like this:

\score
{
   ...
   \midi { }
}

You can import LilyPond's MIDI output by running the following command from Qtractor's menu: 'Track > Import Tracks > MIDI'. !! change to You can import LilyPond's MIDI output by clicking on "Track > Import Tracks > MIDI" !! You will then be able to adjust and use the MIDI track like any other MIDI track in Qtractor.

Tutorial

I've created a demonstration of what a first-time user might try for 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.

Inspiration

The goal of this demonstration is to illustrate a particular strength of Qtractor: combining audio and MIDI tracks. I decided to start with a portion of one of my favourite compositions, and to compose a MIDI-based "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. We are also using a very different style of notation with Qtractor - the matrix editor does not even resemble standard Western musical notation.

Another interesting aspect of this piece is that, unless you have access to the same audio recording that I used, you will not be able to experience the piece as I do. Playing the MIDI alone gives a completely different experience, and it is one that I knew would happen. This sort of "mix-and-match" approach to music-listening is more common than you might think, but rarely is it done in such an active way; normally, the "extra sound" of listening to music is provided by traffic, machines like furnaces and microwave ovens, and even people in a concert hall or auditorium with you. The fact that my audio files cannot be legally re-distributed forced me to add a conscious creative decision into every listening of the piece.

Requirements

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 !! on !! 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,  !! remove comma !! 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' !! change to Click on "Edit > Select > Select All" !!
  10. Randomize the pitches:
    1. Go to 'Tools > Randomize' !! change to Click on "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' !! change to click on "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, !! remove comma !! 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, !! remove comma and add your !! 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' !! change to and then copy it by clicking on "Edit > Copy" !! or [Ctrl+C]
  2. Paste it with 'Edit > Paste' !! change it to To paste it click on "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 ended 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, !! remove comma !! 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 accompaniment 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, !! remove comma !! 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, !! remove comma !! 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.