Considering the numerical nature of MIDI events, it can be tempting to apply mathematical transformations to our MIDI regions by using mathematical operations. Ardour makes it very easy and powerfull with the Transform tool.

MIDI transformation
MIDI transformation

Accessing the Transform tool is done by right clicking the MIDI region >name_of_the_region > MIDI > Transform…

To act on a property, it must be selected in the Set field, then the target value must be changed using the two following fields. To add more operands the "+" sign should be clicked to create new lines. These can be removed using the "-" sign on the right of the newly created lines.

In the picture above, the Transform tool has been used to add a bit of humanization, by slightly changing the velocity of each note of the region, by a random number between -19 and +19 from it's original velocity. So three operations are applied:

Each note will trigger a calculation of its own, so its velocity will be increased by a random number between 1 and 20, then decreased by a random number between 1 and 20.

The properties that can be computed are:

and the calculation may be based on the following properties:

The mathematical operators can be:

All these operations can be very handy, as long as ther is a mathematical way to achieve the targeted goal. Beware though of odd "border cases": division by zero (which does nothing), using the note's index and forgetting it starts at 0 and not 1, etc.

Very interesting results can nevertheless be created, like humanizing (randomizing the velocity, start time and duration of all the notes), creating arpeggios, automating tedious tasks, transposing, etc.