For
each composition a stable set of operations is used on the melody generated by
the phoneme stream. The transformations to the note-event row are listed in bold,
beneath each of these lists is an explanation of the effect of the
transformation. This explanation should give a fair idea of the effect of the
transformations applied to the other pieces. The "COMPOSE" and
"CANON" parameters for each piece are listed below.
Using the "COMPOSE" algorithm
Pitch multiplication modulus transposition
1 12 60
This
results in the pitches generated from the note row falling between MIDI note 60
and MIDI note 71.
Velocity multiplication modulus transposition
1 70 20
This
results in the velocities generated from the note row falling between MIDI
velocity 20 and MIDI velocity 69. This is all the possible MIDI velocities used
in the note row with 20 added to them.
duration multiplication modulus transposition
1 4 81
This
results in the durations generated from the note row falling between 1 and 48.
inter-onset time multiplication modulus transposition
1 12 1
This
results in the inter-onset times generated from the note row falling between 1
and 12.
duration multiplication 99
This
multiplies the resultant duration by 99. For example: if the resultant duration
were 10 then the pitch attached to that duration would last for 990 msecs.
inter-onset time multiplication 99
This
multiplies the resultant inter-onset time by 99. For example: if the resultant
inter-onset time were 10 then the time distance to the next note would be 990
msecs.
Using the "CANON" algorithm
note separation 0
This
selects which note-events will be selected to produce the accompaniment. By
using a value of 0 each note-event is selected, which means that the interval
between every pitch is being used to create the harmony
interval multiplication 4.0
This
multiplies the interval between the selected pitches, in this case an interval
of -2 will be multiplied to result in an interval of -8.
harmony type left
to right
Here
the resultant intervals are applied to the selected pitches in a linear
fashion, the intervals added to the selected note-events are entered from left to
right and then discarded. The interval table below gives an example:
Intervals-3000
4-300
-24-30
5-24-3
25-24
Notice
that -3 is discarded as it no longer fits in the gamut of four numbers. This
results in chord/arpeggios that have a close affinity to the melody because the
intervals used to create the chord/arpeggios are temporally close to the same
intervals of the melody.
arpeggio inter-onset time multiplication 1,
2, 3, 4
Here
the inter-onset time between the selected note-event events is multiplied by 1,
2, 3, and 4. In this case the first accompaniment note-event is heard at an
inter-onset time from the original note equal to the original inter-onset time,
the second accompaniment note-event is heard at an inter-onset time of twice
the original inter-onset time from the original note, the third accompaniment
note-event is heard at an inter-onset time of three times the original
inter-onset time from the original note and the fourth accompaniment note-event
is heard at an inter-onset time of four times the original inter-onset time.
By
multiplying the inter-onset times in this way the accompaniment is spread over
a wide temporal space. This smears the obviousness of the interval based
harmony.
Using the "COMPOSE" algorithm
pitch multiplication modulus transposition
1 70 24
This
results in the pitches generated from the note row falling between MIDI note 24
and MIDI note 94.
velocity multiplication modulus transposition
1 70 5
This
results in the velocities generated from the note row falling between MIDI
velocity 5 and MIDI velocity 75.
duration multiplication modulus transposition
1 70 0
This
results in the durations generated from the note row falling between 70 and 0,
allowing the possibility of a note having no duration.
Here
all the possible MIDI pitches, velocities, durations and inter-onset times of
the note row are used.
inter-onset time multiplication modulus transposition
1 70 0
This
results in the inter-onset tomes generated from the note row falling between 70
and 0, allowing the possibility of an inter-onset time of 0.
duration multiplication 45
inter-onset time multiplication 15
Using the "CANON" algorithm
note separation 6
Roughly
every third, not sixth, pitch is accepted, this is because the pitches are
repeated, first to trigger a MIDI note on message then to trigger a MIDI note
off message. Occasionally a note on will occur before the previous note's note
off message is sent, this creates the possibility of more or less than three
pitches occurring before one is selected for the chord.
interval multiplication 0.25
This
means that the interval size used to generate the intervals for the
chord/arpeggios is multiplied by 0.25. The result is that a melody interval
with an absolute value below 4 will generate an interval of 0, a melody
interval with an absolute value between 4 and 8 will generate a chord/arpeggio
interval with an absolute value of 1, a melody interval with an absolute value
between 9 and 12 will generate a chord/arpeggio interval with an absolute value
of 2, and so on. When the intervals are computed numbers after the decimal
point are disregarded.
harmony type left
to right
arpeggio inter-onset time 0,
0, 0, 0
Because
all the inter-onset times are multiplied by 0 the arpeggios are heard as
chords.
Using the "COMPOSE" algorithm
pitch multiplication modulus transposition
1 24 48
velocity multiplication modulus transposition
21 20 5
Here
the possible velocities are all multiplied by 2 creating possible velocities
ranging from 0 to 138. The velocities are then placed within a modulus of 120
and then 5 is added to the result, creating an amplitude range from 5 to 125
duration multiplication modulus transposition
1 12 0
inter-onset multiplication modulus transposition
1 8 0
duration multiplication 125
Resulting
in 12 possible note durations, from 1/16 notes to a dotted 1/4 notes at mm =
60.
inter-onset time multiplication 62.5
Resulting
in 12 possible note inter-onset times, from 1/32 notes to a dotted 1/8 note at
mm = 60.
Using the "CANON" algorithm
note separation 0
interval multiplication 0.75
This
means that the melody interval size used to generate the intervals for the chord/arpeggios
is multiplied by 0.75. This results in chord/arpeggio intervals that do not
have a static co-respondence to the melody intervals. Three examples are: a
melody interval with an absolute value below 4 will generate an interval of 3,
a melody interval with an absolute value of 12 will generate a chord/arpeggio
interval with an absolute value of 9, a melody interval with an absolute value
of 24 will generate a chord/arpeggio interval with an absolute value of 18, and
so on.
harmony type roll
Here
the resultant intervals are applied to the selected pitches in a looping
fashion, the intervals added to the selected note-events enter from left to
right and then return to the right to left. This results in more open sounding
chord/arpeggios as the intervals selected for the chord/arpeggios oscillate
from between being temporally closer to the same intervals of the melody and
being temporally farther from those intervals of the melody.
arpeggio inter-onset time 0,
0, 0, 0,
Resulting in the arpeggios being heard as simultaneities.