User Events
Perform Time
An Example


Decor is a way of attaching shapes to notes. Decor shapes can currently be used to create controller events. Once the shape is attached, Temper will automatically regenerate the controller events as the note is moved and resized, scaling the shape as necessary.

Note decor can be used for a variety of applications: You can apply custom envelopes that will stay locked to the note location and duration; you can create fade ins and fade outs that alter existing note shapes; you can create complex controller landscapes that are manipulated as easily as moving notes around; using perform time you can create lead-ins with filter swells or other effects that don't disrupt your arrange view.

Attach a decor shape to a note by expanding the Decor section of the Note inspector and pressing the + button. This will open a menu with a single option -- whatever controller tab is currently active in the controller strip. Selecting it will attach a decor that generates the selected type of controller.

a single note -- notice the Decor section in the Note inspector
expand the decor tab to see the decor options, press the + button...
...and a default shape is attached, generating the appropriate controllers

With a decor shape attached, you are now free to move or resize the note and the controllers will stay locked in place.

Since this is the standard Temper shape view, you can also manipulate the shape...

...or replace it with any shapes in the library or a custom shape.


When you begin stacking multiple notes (i.e. chords), Temper applies overlap rules to determine how the controllers generated by each overlapped note interact.

To determine an overlap, Temper evaluates the notes from bottom to top. In synthesizer terms, the bottom note can be thought of as the oscillator, always generating a signal, while notes above it can be oscillators or filters, only modifying the signal, depending on the mode.

The default mode is to evaluate all notes as oscillators, but apply any overlapping areas as filters. In this mode, using a bipolar shape will shift the values for any notes below the current (positive values in the shape shift up, negative values shift down), and using a unipolar shape will multiply the values, allowing you to do for example fade-in effects on the notes below the current.

You can change the mode to a pure filtering one by selecting the Settings button and enabling the Overlaps Filter option. When this mode is on, the note will not generate any controller data, only modify the data of any note shapes below it.

two notes, each with a decor... the smaller note is overlapping the larger, altering the shape
we can adjust the properties of the note to change the final shape

Alternatively, we can have subsequent shapes perform a filtering instead of a shift: Switch the polarity to get this effect. This is useful for layering a fade in/out on top of an existing set of controllers.


You can draw directly on top of generated controllers with the Pencil tool. Any events you draw take precedence over any being generated, although you can still move a note and the generated events still exist.


Temper has the concept of perform time, a way of shifting notes so that they play back at a different time then they're displayed. One use for this is to provide a lead in to a phrase while still keeping the phrase nicely measure-aligned in the arrange view. When a note with a decor is perform time shifted, all of the controllers are also shifted. This lets you apply controller effects to shifted notes.

Note that user controller events can not be shifted -- in the controller strip, what you see is exactly when the events will perform.

the note is performance shifted -- notice how the controllers have moved as well


Each note has two decor options: You can choose to play or hide the note, and use the velocity to scale the shape or not.

When you choose to hide the note, it will not appear in the arrange view and will not be sent to any synths. In this mode, the decor object is used literally to simply generate controllers. This can be useful for monophonic synths -- starting a new note might interrupt the state of the patch.

Choosing velocity scale will cause all generated controllers to be scaled by the current note velocity. If the note velocity is 0, then the controllers will all be 0. If the note velocity is 127 then the controllers will be generated exactly like the appropriate shape..

the shorter notes are velocity scaled -- note how they make more of an impression as the velocity increases


Let's take a quick look at one possible example: We've taken the measure constructed in the previous sections, duplicated it to a second measure, then above the entire thing added another note with a linear shape decor to perform a fade in for the entire two measures.

Since the entire controller sweep is built up from generated shapes, it's a trivial matter to rearrange the notes for different accents and effects.