Week 10 - Livecoding


OUR PERFORMANCE

For this week’s homework, we were tasked with creating a brief livecoding set of about 5 minutes in teams of two–one musician and one artist, if you will. John and I paired up together and dubbed our little band ‘The Johns’ and got right to work. John will be doing the visuals and the other John will be doing the music.

I’ve taken this picture right at the start of our experimentation. I’m trying to make interesting drums.

(Back after much experimentation)

Got this set of drums to play around with. Wanted an LCD Soundsystem vibe and had great help from one of Strudel’s example sketches in making these tracks(namely with seeing how groove patterns work.

//DRUMS

//set1
$: s("oh*16")
  .bank("RolandTR909")
  .decay(sine.range(.2,.4))
  .dist("1:.3")
  .mul(gain("[<0!3 1> .2 1 <0!3 .2>]*4")) //groove
  .mul(gain("[.2 1!3]*4")) //side chain
  .hpf(800)
  .room(.1)
  .hush()

$: s("bd bd bd bd")
  .bank("RolandTR909")
  .hpf(200)
  .dist(1.25)
  .room(1)
  .hush()

//set2
$: s("oh*16")
  .bank("RolandTR909")
  .mul(gain("[<0!3 2> .4 1 <0!3 .2>]*4"))
  .mul(gain("[.3 1!4]*4"))
  //.hush()
$: s("bd sd bd sd")
  .bank("RolandTR909")
  .hpf(200)
  .dist(1.25)
  .room(1)
  //.hush()
$: s("sd*4")
  .bank("RolandTR909")
  .mul(gain("[<0!3 2> .4 1]*2"))
  //.hush()

//set3 - different feel
$: s("[sd hh oh bd]*4")
  .bank("RolandTR909")
  .dist("1.25")
  .mul(gain("[<0!3> .2 0.25]*2"))
  .hpf(200)
  .room(0.75)
  .hush()
$: s("[[bd|~] sd]*2")
  .bank("RolandTR909")
  .dist("1:.75")
  .hpf(100)
  .room(1.25)
  .hush()

Next, we’re going to add two bass track and two melody tracks.

Got carried away while working but I’m very happy with what I’ve done. Shuffling through strudel revealed a simple way to write a melody line–using euclidLegato(). Essentially, it allows you to set a certain amount of hits/notes to trigger within a specific amount of bars. In the code I will post below, you’ll see I’ve used it in practically everything.

After making the drums, I started to really want to aim for replicating an LCD Soundsystem song. I think I sort of started off right but as I added more synths to the track, I definitely ended up creating some electronic pop dance song (at least I think. Could also be video game music).

Here’s what I’ve made. Play around with different drum/melody arrangements!

//DRUMS

//set1
$: s("oh*16")
  .bank("RolandTR909")
  .decay(sine.range(.2,.4))
  .dist("1:.3")
  .mul(gain("[<0!3 1> .2 1 <0!3 .2>]*4")) //groove
  .mul(gain("[.2 1!3]*4")) //side chain
  .hpf(800)
  .room(.1)
  .hush()

$: s("bd bd bd bd")
  .bank("RolandTR909")
  .hpf(200)
  .dist(1.25)
  .room(1)
  .hush()

//set2
$: s("oh*16")
  .bank("RolandTR909")
  .mul(gain("[<0!3 2> .4 1 <0!3 .2>]*4"))
  .mul(gain("[.3 1!4]*4"))
  //.hush()
$: s("bd sd bd sd")
  .bank("RolandTR909")
  .hpf(200)
  .dist(1.25)
  .room(1)
  //.hush()
$: s("sd*4")
  .bank("RolandTR909")
  .mul(gain("[<0!3 2> .4 1]*2"))
  .hpf(200)
  //.hush()
//OPTIONAL BUT GREAT
$: s("bd bd bd bd")
  .bank("RolandTR909")
  .hpf(200)
  .dist(1.25)
  .room(1)
  //.hush()


//SYNTHS

//melody1
$: note("<ab db>/2")
  .sound("supersaw")
  .euclidLegato(9,16)
  .lpf(800)
  .lpenv(6)
  .dist("2:.4")
  .echo(2, 1/16, .7)
  .mul(gain("[.5 1!3]*4")) //side chain
  .add(note("<[0 3]*4 [7 10]*4>"))
  //.hush()

//melody2
$: note("<ab f c eb>/4")
  .sound("sine")
  .euclidLegato(6,16)
  .hpf(1000)
  .dist("2:.8")
  .mul(gain("[1 2!3]*4"))
  .add(note("<[0 5]*4 [5 10]*4>"))
  .room(1)
  //.hush()

//bass1
$: note("<db eb ab>/4")
  .sound("sawtooth")
  .euclidLegato(6,16)
  .hpf(100)
  .dist("2:.8")
  .mul(gain("[2 .5!3]*4"))
  .add(note("<[0 10]*3 [5 10]*6>"))
  //.hush()

// bass2 or melody? idek
$: note("<ab db>/2")
    .transpose(-12)             
    .sound("sawtooth")
    .euclidLegato(6,16)         
    .hpf(120)                   
    .dist("2:.7")               
    .mul(gain("[2 .6!3]*4"))    
    .add(note("<[0 10 5 10]*8 [5 10 3 10]*4>"))
    //.hush()

Get Drawing, Moving and Seeing with Code - Spring 2025

Comments

Log in with itch.io to leave a comment.

I think this works pretty well and you’ve built up a nice bag of tricks/musical patterns you can use in a set. Great work.