Friday, November 4, 2011

Living the Dream - LIVE Electronic Music

As mentioned in a previous post, I have long dreamed about being able to play electronic music live. I've finally done it!

Here's the audio (freely downloadable if you want to listen later, and I may put it on the beats reality podcast too).
Haszari's First Ever Truly Live Set by haszari

A Rudimentary Approach

As far as live electronic music goes, this is a somewhat primitive performance. There are four songs, each has approximately 3-4 parts, and there are a small number of effects/parameters available for me to tweak. Also I'm relying heavily on a great-sounding dub delay effect which can feedback; I've used it to fill things out, give things dynamics and shape, and also used it (screaming feedback like a guitar amp) for short-term sound effects.

Also, of the four songs, 2 are built from short loops of (my own) previously recorded material - i.e. the notes are not being sequenced live, and there is no synthesiser producing the notes live.

Another limitation is that there are no stabs or manually-played samples/notes/effects; everything is in some kind of pattern which is triggered quantised. (The main reason for this is I ran out of time.)

Limitless Possibility

But I'm really excited about what is happening in this live set. Even though I've heavily used samples, I had a huge amount of control available to me live, and more importantly, it was easy and fun to perform with no plan in an underground bunker (through my low rent sound system, running the whole night off a single power outlet). I had a lot of flexibility, nothing much was planned. What did I have control over?
  • Within each song, I had a level fader for each part, meaning the songs were mixed (in a primitive sense) live. These faders could be set up differently depending on the part, for example one synth strings part had the fader pre-reverb.
  • Each part had at least one other parameter on a knob; this could be a filter cutoff for a synth part, or a fader between two drum sounds for a drum part. 
  • All parts had one or more (looped) patterns, which could be triggered/untriggered (quantised to an appropriate interval) with a button. In the case of multiple patterns, a button allowed me to navigate up/down to select the pattern to play next time around.
  • Some parts had a triggerable variation or fill - for example, hold down a button to play a randomised (schizofrenic funk drummer) fill until the button is released.
  • Each song was assignable to a global (DJ-ish) channel - with a level fader, 3-band EQ, and a send to the global dubdelay. Assigning a song also made its parts available - i.e. I could only trigger parts etc when a song was "loaded" into a channel.
  • Although I only had two songs' worth of hardware control, this was live-mappable and I could easily manage (parts of) all four songs playing at once if I want to.
Of course this was all implemented in handy SuperCollider. I spent a bit over a month or so of occasional evenings and bits-of-weekend developing things and jamming it out. Most of my time was spent on infrastructure - things like setting up the code to live-map a song to a hardware channel, implementing a simplistic EQ/band compressor for the channel strip, factoring out the dub-delay effect so all songs can opt-in to using it, etc.

What made this really exciting and fun for me is that I could treat this like a software project. I could start small, implement a simple beat that I could drop & interact with live, building in more complexity later. It felt like prototyping - sketching out a framework of how things should work, and revisiting different aspects later until I had something much more complex, organic and live up and running.

I may post again with more detail about how SuperCollider supports writing and performing like this - so comment if you want to find out more about something.