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