14. Motifs, rows, lists and transformations
▶ Open in Aratu to hear and change the examples
Short named ideas used many times: motifs, twelve-tone rows, melody lists, and the transformations that change them without rewriting them.
Motifs
motif name = … names a few beats, without bar lines, and the name is used
in their place. A motif may be defined before or after where it is used, may
use other motifs, and while it plays the editor lights the notes in its
definition.
key: C major
motif riff = [e4 d c d]
melody = | riff riff+1 riff.inv riff.retro || Write | The motif |
|---|---|
riff+2, riff-1 |
two degrees up, one down, in the key (key:; C major when there is none) |
riff+3st |
three semitones up |
riff.inv |
inverted around its first note |
riff.retro |
its notes backwards, in the same rhythm |
riff.ri |
the retrograde inversion; it combines with +n: riff.ri+2 |
riffx4 |
four times |
A note outside the scale, moved by degrees, keeps its distance from the scale note below it: C# one degree up is D#.
Twelve-tone rows
row name = … keeps a row: numbers from 0 to 11 (0 is C) or note names,
with or without octaves. The row gives the pitches and a rhythm written with
o gives their places, before from:
row serie = 0 11 3 4 8 7 9 5 6 1 2 10
melody = | o o [o o] o | o _ [o o] o | O o o o | from serie.RI3 octave 4Each o takes the next note, and the row starts again when it runs out, as
in isorhythm (O is an accented o). The forms are P, I, R and
RI, each from 0 to 11 semitones up: serie.P0 is the row as written, and
so is serie alone. octave N puts every note in octave N. After from
a motif works too (its notes, in order), or a vector written there:
from [0 4 7]. A twelve-note row that repeats a note gets a warning, and
the Rows tab, beside the messages in Play, shows each row's 12×12
matrix, with the forms' names to click.
Melody lists
list name { } keeps melodies, one per line, with bar lines; they may use
motifs and rows.
list temas {
| e4 d c d | e e e _ |
| d4 d d _ | e g g _ |
}
melody = temas.1temas.2 picks the second (counted from 1), temas.all plays them all in
order and temas.random draws a whole one each time round, always the same
order for the same seed. Changing the number while it plays changes the
melody at the next bar. On stage, buttons choose each list's melody, and
Alt+1 to Alt+9 choose it for the line where the cursor is.
Each bar of a line can be a melody from the list too:
bass = | temas.1 | temas.3 | temas.2 |, mixed with written bars if you
like, and temas.all in place of a bar puts them all, in order. A list that
names itself stops, with a message.
Transformations
Short verbs change a part, a line or a pattern without rewriting it:
| Verb | Effect |
|---|---|
hh.rotate 1 |
shifts the pattern by one part |
hh.density 50% |
keeps about half of the hits |
drums.velocity 0.8 |
plays softer |
bass.transpose +12 |
an octave up |
melody.invert |
turns the intervals upside down |
melody.retrograde |
plays it backwards |
melody.ri |
the inversion backwards |
melody.augment |
doubles the note values |
melody.diminish |
halves the note values |
The names are the ones motifs and rows take: .inv or .invert,
.retro or .retrograde, .ri. transpose counts semitones and may say
so with 3st, as motifs do.
melody = | c4 d e g | a g e d |
melody.transpose +7