There are a variety of sequencers on the market. Why are we developing Temper?
Temper is designed to manipulate MIDI in ways that may be difficult in other applications. It's intended to be interactive, exploratory and fun. Temper contains algorithmic composition techniques, but it's not intended to automatically generate musical passages. Instead, it's designed to let you rapidly experiment with musical ideas to find your own expression. To do this, Temper is built on three simple systems:
There are two basic ways of manipulating MIDI: Destructively, where the original MIDI sequence is altered, or non-destructively, where the original sequence is unaffected but is altered during playback. Destructive editing is provided by the tools found in the track editor, non-destructive editing is provided by the FX found in the pipeline.
Typical MIDI editors provide basic tools for adding and deleting events, moving events, and changing properties like velocity. In Temper, the tools are a gateway to an endless amount of processing on sequences, not just notes. Let's walk through an example.
(The tools described below are available in Temper A. For a complete list of tools, see Appendix A: Tools.)
The Velocirapture tool is used to generate a series of notes with varying velocity levels. By default, the velocity levels fade out in a simple sine wave shape, and you can use MIDI macro A (what's a MIDI macro?) to control the period of the sine wave.
Velocirapture works like a line drawing tool. You click down and drag with the mouse to specify the line:
By engaging the key grid, the Velocirapture tool will work in conjunction with the current key signature to produce more musical results.
While you can do experimental compositions with nothing more than Velocirapture, it can also be a starting point to further manipulations by such tools as Flip.
The Flip tool is used to flip notes in time and pitch. After using the Select tool to select multiple notes, Flip is then used to drag the notes around, flipping them on the center axes. Since you're using the mouse to drag, you can perform partial flips, but we'll just go right to the extremes. Like Velocirapture, Flip will lock to the current key signature if the key grid is on.
We can do quite a bit more with both these tools, but to go any further we need to understand shapes.
A shape is simply a mapping of one value to another. In synthesizer terms, it can be thought of as a combination of LFOs and envelopes. In addition to a variety of internal shapes, Temper provides some useful basics:
Some shapes might do nothing. For example, a linear shape is simply a mapping of each value to the same value. Starting at the bottom left, we see 0 maps to 0, at the top right we see 1 maps to 1, and at every other point the two values are the same. This shape will simply replace each value with the same value.
We can flip this shape, though: Move the starting point to 1 and the ending point to 0. This inverted shape now performs an inverted mapping, so values of 0 will become 1, values of 1 will become 0, values of 0.3 will become 0.7, etc.
If the discussion so far has seemed a little abstract, it's for a reason: The key to understanding shapes is knowing that by themselves they mean nothing. Shapes are only significant when used in a context, such as by a tool or FX. How the tool or FX uses the shape can vary completely: They can be used to set velocity levels or note values, to sculpt controllers, to adjust timing, etc.
Now that we understand the concept of shapes, let's look at them in practice.
The Flip tool can use a shape to control how much the pitch of each note is being inverted at any point along the sequence.
The MIDI macro Morph controller is set to control a morph shape for most tools. Using the Flip tool while adjusting Morph causes the notes to invert based on the basic shapes: From nothing to the sine, square and sawtooth shapes. In the following examples, the mouse hasn't moved at all, the change in notes is purely based on changing the shape with the Morph knob.
Understanding what exactly is going on is probably easiest with the square shape. Comparing the original and inverted lines, we see applying the square shape results in a mix, where the first half of notes is the inverted line and the second half is the original. This corresponds exactly to the square shape, which we see is at a maximum value of 1 for the first half and a value of 0 for the second.
This can be useful but we have one more piece: We'd like to morph between our own set of custom shapes. The easiest way to create a custom shape is with the Shapify tool.
The Shapify tool is used to take existing notes or controllers and convert them into a Temper shape. Shapify is used just like the Select tool, where you click and drag a selection to shapify it. As you're dragging the mouse, you see the current shape change based on the selected events, and after you release, you can manipulate some basic shape properties if you desire. The most important thing is to select one or more categories before you press Add Shape to add the shape to the database. The categories determine which tools will make use of the new shape. (see Appendix A: Tools for a description of which tools use which categories)
Since we're making a shape for the Flip tool, we'll select the User 1 category. As soon as Add Shape is pressed, the shape is added into the database and available in any tools that use the selected categories.
Using the Morph controller in the Flip tool will now morph between all the shapes in the User 1 category. As soon as you add a shape to the User 1 category, the default sine, square and sawtooth shapes disappear. You can add more User 1 shapes to increase your morphing options.
The Velocirapture tool also has a morph control, although it uses all shapes in the Velocity category. Like User 1, as soon as a shape is added to Velocity, the defaults go away.
Temper uses FX to perform realtime processing of MIDI and audio data. Audio is handled by any VSTs you've installed, and Temper includes some basic MIDI FX processors.
Change Value is a basic FX used to change MIDI properties, for example, inverting the velocity of all incoming notes. Because it uses a standard shape to perform the transformation it can be quite flexible.
By default, Change Value will take incoming note values (i.e. A#4) and apply a linear shape on them -- in other words, it will do nothing. As described above in Shapes, inverting the default linear shape will invert the processing, mapping the lowest note value to the highest and vice versa. Like the tools, the Change Value FX can use any shape to control the processing.
Change Value can be used for a variety of remapping transformations: On note value, velocity and release velocity, on controllers, etc.
To help keep processed sections musical, On Key is used to force all notes into a specified key. By placing it after the Change Value FX and selecting Follow track, we're guaranteed that any transformations done by Change Value are kept within the song's master key.