The reKontakte Performance Instrument
by Luke Dahl
The
reKontakte Performance Instrument is a musical instrument implemented
in ChucK and controlled using an M-Audio Trigger Finger. The
instrument is inspired by Karlheinz Stockhausen's piece Kontakte, and
my goal in creating it was to allow the performance of some of the
varied textures and timbres that occur in the piece. In
particular I wanted to recreate the famous gesture that occurs starting
at the end of Struktur IX and continuing into Struktur X, in which a
continuous tone with varying pitch gradually transforms into discrete
sonic 'blips' that continue to vary in pitch.
I also wanted the
instrument to be intuitive to use and fun to play. A number of
people have played it and found it easy to learn and capable of a variety of textures and sounds.
How to install and launch it:
To use the instrument you will need to:
- Install
Chuck and the MiniAudicle (the miniaudicle is not required but
these instructions will use it.) Both are available here: http://chuck.cs.princeton.edu/release/
- Find yourself an M-Audio Trigger Finger Drum Control Surface
- Using
the M-Audio Enigma software (one of the most confusing pieces of
software I've ever used!) install the 'Luke'sMultiAfterTouch' bank,
which is bank 12 in this preset bank: TFingerBank.xml
- Download reKontakt.ck and pulse1.wav
- Open reKontakt.ck in MiniAudicle, and set the current directory to the location of pulse.wav (this can be done in Preferences.)
- Start the virtual machine, and add the reKontakt.ck shred.
How to play it:
The
reKontakte Performance Instrument is really four parallel identical
instruments. Each column of the trigger finger controls one of
the instruments. The first column plays low pitches, the second
column plays medium low pitches, the third column playes medium high
pitches, and the fourth column plays high pitches.
Each
instrument has four different ways of being played, which are
controlled by the four rows of pads. Hitting a pad on the top row
will make one discrete sonic event, a 'bonk' kind of sound. The
second row of pads creates quickly repeating events. The velocity
with which the pad is struck sets the repetition rate, harder strikes
repeat more quickly, and if the pad is held down the pressure on the
pad controls the pitch of the instrument. The third row also
creates repeating events, but on this row aftertouch pressure controls
the repetition rate. These two rows are similar but allow the
creation of different types of sonic gestures.
The fourth row of
pads also create quickly repeating sounds. The repetition rate is
controlled by the sliders -- one slider for each of the four
instruments -- and pressure on the pad controls the pitch. This
allows for a wide variety of sounds. For example, setting the
sliders low and striking the pads creates repeating rhythms that decay
slowly. Setting the sliders high and striking creates quickly
decaying pitched sounds. Varying the pressure while the sliders
are high creates interesting, almost vocal sounding, timbres. By
holding a pad down and moving the slider sounds can be made to vary
from discrete to continuous and pitched and back.
For
each of the four instruments a pitch is chosen randomly (from the
appropriate pitch range) every time the same pad is hit. To keep
the same pitch you can hit one pad in a column then another pad in the
same column.
The volumn can be controlled with knob 4, and the
amount of reverberated sound can be set with knob 8. Knob 5
controls the amount of LFO applied to panning, and knob 5 controls the
rate of the LFO.
How it works:
All of the sounds from this instrument are generated from the sound pulse1.wav, which is a single sonic event taken from a recording of Stockhausen's Kontakte.
Part of the character of the instrument is due, I believe, to the
slightly distorted, analog tape character of this sound. This
sound is repeated at varying rates and with varying pitch to create the
sounds of the reKontakte instrument. It is easy to substitute in
a different sound and explore the sonic affordances within.The
synthesis is really quite simple in principle, and the effectiveness of
the instrument is due solely to the propitious choice of control
parameters.
The software is organized around a custom class
called kontakteBuff. There are four kontakteBuffs instantiated,
one for each instrument. Each kontakteBuff keeps track of the
synthesis parameters for a set of six SndBuf objects that create the
sound for that instrument. When sounds are repeated the sound
comes from one of the six SndBufs in sequence. This minimizes the
chances of clicks due to a buffer being set to start playing a new
sound before it has finished the previous.
Each kontakteBuf
object responds to messages from a shred midiCtl, which processes midi
messages coming from the TriggerFinger controller.
A useful chuck file:
tFinger.ck
is a ChucK file that simply parses incoming midi messages from an
M-Audio Tringer Finger controller that is set to bank 12 in the preset
bank, TFingerBank.xml. It
processes afterotuch pressure from each pad separately. You may find it
useful as a starting point for making Trigger Finger-controlled ChucK
patches.