Karan Mhatre

2022 - Art Project - Personal

Live Coding Music with Gibber

Live coding music thumbnail

The Project

Timelines: Jan 2022 (1 week)

Project: EUsing Live Coding Platforms to create synth and noise inspired music tracks. The goal was to compose a Noise Synth album.

Team:Solo

Tools: Gibber.CC

Artists

I started by exploring what was being done in the field. I found a list of inspirational artist from whom I understood how live performances were done.

Charlie Roberts: He’s an Assistant Professor of Computer Science at Worcester Polytechnic Institute and the creator of Gibber.cc

Alex McLean: He is notable for his key role in developing live coding as a musical practice, including for creating TidalCycles

Shelly Knotts: She is a composer, performer and improvisor of live electronic, live coded and network music based in Newcastle upon Tyne, England. Part of ALGOBABEZ

Crash Server: They’re a music duo from Strasbourg, France. They use SuperCollider to make electro, noise, glitch and ambient music, and they have interesting visuals.

Sam Aaron: A live coding performer and the developer behind Sonic Pi

Dylan Beattie: He creates unique rock music using code. He’s given a lovely talk about The Art of Code.

kriyananda: Unique noise synth performances on YouTube.

Mike Hodnick: Produces performances using TidalCycles

Platforms

There’s a bunch of platforms available for live coding. Here’s a very very comprehensive list of platforms. I chose to continue my work with Gibber because it was in Javascript..

Moodboard for Expressive Typography Moodboard for Expressive Typography

Composition

I drew inspiration for Noise Synth music. There were 4 major components in most tracks,

Drums/Precussions

I started experimenting with the default drum sets on Gibber. This is a good place to start if you’re new to this. You can create rythmic beats using ‘Tidal Notations’.

d = EDrums();
d.tidal('kd');
d.tidal('kd cp');
d.tidal('kd ~ [kd,ch] ~ cp ~');
d.tidal('kd ~ [kd*6,ch] ~ ~');
d.tidal('[kd ~ kd ~ ]*3');

Here’s a great resource to understand popular beats.

I used a few beats from here to get started and adapted them to suit the vibe I was aiming for.

Bass

Next I tried adding some bass. There were a bunch of preset bass configurations to select from

bass = Synth( 'bass.hollow' )
b = Synth( 'acidBass2' )
Monosynth('bass.stab')
Monosynth('bassPad')
FM('deepbass')
Monosynth('bass')

bass.note.tidal( '0 1 4 6 0 ~ 1 ~ 7 -7 ~ 1 -7 1' )

bass = Monosynth( 'bassPad', { decay:4 })
bass.note.seq( [0,-1,-2,-4], 4 )

I found it challenging to create background bass melodies that did not overpower the complete track.

Melodies

To create melodies there were a lot of interesting synth configurations to try out. I like Chiptune type 8-bit sounds so I mainly gravitated to those.

s = Synth('pwm.short') s.note.seq(sine(3,3,4), e=Euclid(7,12)) s3 = Synth('square.perc') s4 = Synth('square.perc') s3.note.seq(sine(3,3,4), e=Euclid(7,12)) s4.note.seq(sine(6,2,4), e=Euclid(9,12)) p = FM('perc') p.note.tidal('0 2 3 <4 7*8 > 1 1 1 ~ < 1 2 1*10 3 > 2 8*8 ~')

I smashed keys until I got something that sounded like what I imagined.

Effects

There were a lot of effects but I stuck to just two so as to not over complicate things.

Reverb: It gave the sounds a large room feeling. It made it more ambient.
Delay: Added an echo. Went well for the melodies.

Live Performance

Here's my first live performance using Gibber.

Live Coding Music Performance using Gibber

I made two additional tracks and put them on SoundCloud.

Learnings and Future

This was an interesting project since I come with very little musical experience. I had to understand musical compositions and what sounds went well together. I had to read about synths. I enjoyed creating musical pieces and I might buy a Rocket Operator soon.

I will continue experimenting with sounds and hope to develop a unique style in this domain. I also want to learn how to perform live visuals along with the music.