Livecoding: Techno jam


This piece plunges into a heavy, atmospheric soundscape driven by the collision of overlapping basslines and raw industrial noise.

The melody is provided by a synth line that continuously varies a diatonic interval within a minor scale, creating a sense of subtle suspense and emotional depth. The livecoding environment allows this melodic movement to be modified in real-time, enabling dynamic, expressive shifts in the harmonic texture.

Crucially, the percussion—specifically the kick drum and snare—is not sequenced conventionally. Instead, these elements are activated only when the synth's oscillator exceeds a defined threshold, linking the rhythm directly to the intensity of the melodic line (which is also driving the filter's cutoff and resonance). This creates a highly reactive, breathing relationship between the melodic and percussive layers.

Listen with a good pair of headphones!

Techniques

Rhythmic patterns

Interesting rhythm patterns can be simply generated by using non standard beats.

Eg here we have a 5/3 downbeat, with the hi-hat playing at each 1/4. This results in two distinct syncopated beats every bar.

(at 5/3 1/4 (playk *kit-hhat3* 90))

Synth line

Generated using a varying diatonic interval on a minor scale. Which can be modified in real time for nice effects etc..

(play bass (mkint C2 (oneof 0 3 4 5) 'm ) 90 dur)
(mcc *cutoff* osc1)
(mcc *reso* osc2)

Oscillators driving the DrumKit

The kick drum and snare are activated only when the synth oscillator (driving the cutoff and resonance) goes beyond a certain threshold.

This allows to build up momentum semi automatically.

;; cyclical drums
(if> osc1 60 
  (at 1 1/2 (playk *kit-kick* 90)))

(if< osc1 60 
  (at 10/3 1/4 (playk *kit-snare* 90)))

Credits

  • Livecoding software: Extempore
  • Sounds: Ableton Live
    • syn1: Analog Lab V / Kick Glitch Hits
    • syn2: ZebraHZ / Chordination
    • syn3: Kontakt / Ethereal Earth / Trumpet Fireflies
    • syn4: Police Radio Sample

Full source on GitHub: 2024-07-techno-beat.xtm

Cite this blog post:


Michele Pasin. Livecoding: Techno jam. Blog post on www.michelepasin.org. Published on July 5, 2024.

Comments via Github:


See also: