Archive for the ‘composition documentation’ Category

In response to Russell Snyder’s request for my code to generate double harmonics (natural) on the viola d’amore, I’ve abstracted the following from my piece 24-7: freedom fried. Apologies for the light commenting only. I’ve not tested this for other string instruments but it should be possible to pass new tuning data along with new nodes and get it to work. The function itself should be useful, as it returns lists of lists of harmonics for each string, but the CMN code parses this list and creates notated output for reference (e.g. harmonics)

I’ve been working on the structure of a flexible-length and musician-tweaked piece for flute and computer since August. The performance software is ready (something like this) so I’ve written the performance notes. These include lots of detail on the generative structure of the piece.

The title of this piece is taken from the poem “Final Notions” by Adrienne Rich
(1929-):

It will not be simple, it will not take long
It will take little time, it will take all your thought
It will take all your heart, it will take all your breath
It will be short, it will not be simple

It will touch through your ribs, it will take all your heart
It will not take long, it will occupy all your thought
As a city is occupied, as a bed is occupied
It will take your flesh, it will not be simple

You are coming into us who cannot withstand you
You are coming into us who never wanted to withstand you
You are taking parts of us into places never planned
You are going far away with pieces of our lives

It will be short, it will take all your breath
It will not be simple, it will become your will

The mood of the piece picks up on the simplicity and directness of language,
the repetitions, and the almost breathless speed (in my reading at least) of
the poetic meter.

Deceptively simple on the page, “you are coming into us who cannot withstand
you” gains its impetus from the combination of small, simple rhythmic units
which form larger, sometimes repeating sequences. These are usually placed in polymetric
opposition to similarly constructed contrapuntally combined sequences. The
tempi are quick, the energy level is high, and the perception of multiple
pattern streams moving at different rates is the main feature of the music.
The most common polymetric combination is four against three. The technique for
constructing the sequences is new; I call it rhythm chains.

However many such units there are, there must be a matching number of opposing
units towards which we transition over the course of the whole piece. The
transition between the two unit collections is handled by the Fibonacci
transition algorithm. In “you are coming”, the transition is from exactly such
simple binary rhythms as described above to ternary rhythms i.e. those
characterised by triplets.

The simple one-beat units are intended to form faster moving parts
counterpointed by slower moving units of two or three beats. The technique is
therefore essentially two-part contrapuntal, though this can be scaled up to
any number of parts–in this piece, eight. The grouping of an arbitrary number
of slower moving units into a sequence is determined by a given harmonic
rhythm: this may change during the piece. The repetition of both unit and
sequence, with or without the repetition of their associated notes, creates
identifiably recurring material which, through the additional insertion of
rests and new contrapuntal combinations, constantly varies an essentially
consistent, flowing musical structure. Variation is provided by the algorithmic
control of rests in two forms: through the interaction of multiple cycles of
rests, and the definition of “activity levels”; together these determine the
relative mix of rests to notes, which can vary from very sparse to
unbroken. Both approaches are controlled through the use of curves which map
over the whole structure.

Another characteristic, new for me, is a general avoidance of long-term
crescendo and diminuendo–these do exist in the piece, but rarely. In order to
develop dynamically, I instead use a new technique called “popcorn dynamics”,
whereby most notes remain at the same dynamic level for a while until one note
is suddenly louder (perhaps only marginally) than the others. This begins a
chain reaction, the end result of which is that all notes are at the louder
dynamic. The analogy of course is popcorn kernels cooking away in a pan until
one explodes, this being followed a little later by another, then another, and
more and more until all are popped. When applied to dynamics, this process can
work in the reverse direction too, i.e. from loud to quiet, as well as within
every dynamic gradation, e.g. from pp to mp, ff to mf, p to mf etc.

Downloads

This was made with Kontakt 3 standard samples using the MIDI file generated before any interventions/edits. I didn’t do any fancy MIDI editing to distinguish between arco and pizzicato in the strings (they’re pizz. all the way through) so this really is quite a simple demo.

Essentially, “don’t flinch” for guitar and computer is a three-part mensural
canon, but similar to late Mediaeval and Renaissance isorhythmic techniques,
melodic material is repeated along with a rhythmic sequence of differing
length. This is one of the simplest algorithms for a piece I’ve ever written,
so I thought it would make a good candidate for my first blog post on the
topic.

A basic 13-note scale ranging over an octave and a minor 6th (i.e. not an
octave repeating scale) is mapped over the full MIDI range starting from C0
(middle C being C4). With the guitar beginning in the third octave, an (also)
13-note melodic pattern is repeated 18 times, each time starting on a different
note. The transposition is determined by an offset curve mapped over the
duration of the piece and generally, but not linearly, moving from the lowest
to the highest registers of the guitar.

The same process runs in two other voices: a higher keyboard type voice, two
octaves higher, and moving four times as fast; and a bass line, moving at the
same speed as the guitar but in a lower octave and with accompanying chords.

Each voice also selects or rejects notes from the sequence according to a
fixed-seed random procedure controlled by a curve. Each voice uses the same
curve, which begins with 100% note inclusion, moves non-linearly down to 40% at
70% through the piece, and back up to 100% at the end. This, along with the
additive and subtractive rhythmic techniques (see below), accounts for the
transition from unbroken continuity to rather long stretches of short
punctuations or phrases separated by silence.

A voice consists of single notes or two-note chords (diads). The frequency of
the diads is controlled by a double cycle of lengths 17 and 19. This means that
if the note count is a multiple of either of these two numbers, a diad will be
created instead of a single note. The choice of note is determined by the same
pitch selection algorithm as for the guitar, but with the degree pattern
reversed and wrapped by one element e.g. wrap 1 2 3 4 5 6 7 8 9 10 by 1 –> 2 3
4 5 6 7 8 9 10 1.

Rhythms

Unlike a lot of contemporary music, including my own earlier work, I’m working
more and more these days with extremely simple rhythms, often involving nothing
more complex than a triplet. The general aim in doing this is to invest my
music with a renewed sense of pulse and perhaps even meter, though meter plays
no significant role in this piece. A driving pulse is perhaps also not so
evident here but the techniques used lead to the much more metrically and pulse
driven music found in, for example, “you are coming into us who cannot
withstand you”, for eight piece ensemble, from 2011.

The rhythms are derived from a six-element sequence repeated as many times as
necessary to accommodate the number of melodic sequences. Rhythmic values are
modified by an arithmetic procedure which adds or subtracts a 1/16th note to
various rhythms in the list depending on which part of the piece we’re in; this
contributes to the transition from unbroken to broken rhythmic flow as
described above. In addition, the three voices generated here use the rhythms
1) unaltered (guitar); 2) reversed (bass and chords); 3) wrapped by 4 (high
keyboard).

Chords

The bass line is rhythmically doubled by mainly three- to four-note harmonies,
extending to a six notes by the end. Chords are selected according to a simple
Lindenmayer sequence of eight rules/chords. In keeping with my obsession with
transition, each chord is presented in two variations, the second of which is
more cluster-like than the first. Over the course of the piece there is a
move from more open to more closed, cluster-based harmonies.

Post-generation modifications

After generating the piece and reading the MIDI file into Sibelius to create
the score, the normal guitar pitches were modified according to my goal of
using a bottleneck and other extended techniques. There is an overall
transition, though again not linear, from using the bottleneck continuously to
not using it at all. This is accomplished on a note-by-note basis using my
Fibonacci transition algorithm; this essentially splices in and swaps new
event types for old. A similar procedure was used to move from non-tremolo to
tremolo plucking techniques.

In addition, extended techniques for the guitar were added ad libitum,
including different plucking positions, from near the bridge to on the
fingerboard; tremolo with and without a plectrum; glissandi; exaggerated
vibrato with and without the bottleneck; various single and double harmonics;
pitch bends; and string rattles created by delicately touching a vibrating open
string with either the fingernail or the bottleneck.

The bottleneck sound was utmost in my mind from the very beginning of working
on this piece. I have a very strong and fond memory of watching Ry Cooder play
the guitar with a bottleneck on the now defunct UK TV music show “The Old Grey
Whistle Test” when I was about three or four years old. The sound of this has
remained with me my whole life and is strongly associated with the guitar for
me personally. Its connection to old blues recordings was further strengthened
during the composition of this piece when Yvonne Zehner, for whom it was
written, sent me ad hoc recordings she’d made of these techniques on a standard
PC. The poor quality of the PC’s soundcard, with all its crackles and band
limited spectral content, led to a recording that sounded not unlike blues
records from the 1930s, despite the fact that they were made in 2011 (no
criticism of Yvonne intended: it’s the sound card that’s at fault).

Use of the computer in performance

Viewed historically, this is essentially an instrument-plus-tape piece. The
computer is used only to trigger stereo sound files, sometimes at the push
of a pedal, other times once the onset of a guitar note is detected (but after
a gate is opened with another pedal, in order to avoid false triggerings).

The piece is definitely out of the ordinary in having what is essentially a
conventionally notatable computer part. Most electronic accompaniments in
pieces of this kind consist mainly of sounds that could only be made– perhaps
especially rhythmically–with computers or other electronic equipment. I was
attracted in this piece to the idea of creating an almost acoustic instrumental
trio, but having the luxury of continuously modifying, refining, and spectrally
shaping two of the voices through digital production techniques.

I will be curious to see how chamber music-like Yvonne’s approach to the piece
is. Ideally I would imagine her playing with the computer much in the same way
she would with other musicians. Naturally, I’m aware that the computer here
offers no sophisticated score following techniques which would allow tempo
fluctuations etc. I did investigate score following, but in order to take real
advantage of this I would have had to use MIDI sequences driving a sampler or
synthesiser. I know that I wouldn’t have been content with the output of these
without severe modifications and the cross fading of many different sound banks
per contrapuntal voice. So I elected instead to generate as many different
versions of each voice as I needed and then process them much as I would any
other audio data. The cutting of the final mix into shorter sound files that
are then triggered by Yvonne during the performance seemed to be the best
solution given my aims, and the desire for temporal flexibility at particular
points.

The two main voices in the computer then i.e. the high keyboard and the bass
line with chords, were generated with standard samples and software
synthesisers from Native Instruments, and the Ultra Analog VA-1 software
synthesiser by Applied Acoustics Systems. In addition, several sound files were
mixed in, including a recording of myself improvising on tenor saxophone;
myself reciting Rich’s poem; recordings of sheep; and Artaud’s “Pour en finir
avec le jugement de dieu”. The latter was used purely for its sonic and not its
semantic content.

Common Lisp code

If you’re fluent in Lisp the following might be useful. To be run it requires
modules and classes from my algorithmic composition package “slippery chicken”
(to be released soon, I hope) but reading the comments and code should give a
good idea of how the piece was made.