Improvisational Counterpoint

Transcription

Improvisational Counterpoint
Improvisational Counterpoint
(in Text Mode)
Graham Coleman
Objective
music improvisation and performance
Why Use Code?
expressive
code expresses process well
music is process
Matthew Yee-King
Tools for Livecoding
existing general purpose languages
perl, haskell, python
languages designed for computer music,
livecoding
ChucK
Supercollider
pd, desire-data
impromptu, fluxus
Supercollider
fairly sophisticated OO model
patterned after Smalltalk
separation of synthesis and control
Scheme Variants
For functional language fans:
Dave Griffeths' fluxus (graphics)
Andrew Sorenson's impromptu
ChucK
cross-platform
language support for timing operations
some built-in instruments
VM for add, replace, remove of subprocesses
ChucK Language Basics
assignment: 3 => int a;
connecting UGens: SinOsc s => dac;
timing: 1::second => now;
standard procedural stuff:
for, while, etc
dot notation ( obj.method( 1::ms ) );
Variational Gestures
We can use procedural logic to transform melodies
by standard techniques:
augmentation / diminution: modify note rate
articulation: time varying timbre
fragmentation: use % to visit subset of indices
interval expansion: multiply notes in scale or
harmonic domain
Basic Demo
Tools for Livecoding
general purpose language environments:
python (ounk), perl, haskell (sc tutorial)
scheme-based environments:
fluxus impromptu
visual programming:
pure data, desiredata, max/msp, audiomulch
visual output:
vvvv, nodebox
domain-specific environments:
ChucK (Audicle, miniAudicle, Smelt)
supercollider
More Links
tutorial for musical ChucK: ChucK tutorial
TOPLAP: Main Page Mailing List
practitioners:
Powerbooks Unplugged, slub
Future Stuff
If you are interested in:
programming livecode events, collaboration, etc
contact me:
Graham Coleman
Questions
Thank You