For the peformance we wanted to go in with a theme. We decided to center our performance around a drum and bass vibe, however, when we met up and started our first jam session, it all kind-of deviated and became more of a robo-core or break core type of sound and we decided to just let our creative juices flow.

Mohamed was in charge of the hydra and P5 visuals, while Aadil and I were handling the Tidal parts. We decided that this was probably the best workflow as a group because going back and forth from coding in Haskell to Javascript resulted in us doing alot of run time errors and keeping track of the syntax was quite difficult.

We used tried to play and experiment with cutting up whole samples and to try to create some sharp and distinct sounds that we thought would go well with a DnB energy. While for the visuals we tried to flow into something more distorted and bring out a sense of entropy.

Here is our final code from the last Jam:

setcps(0.75)

d9 $ ccv "127 30 60 5" # ccn "0" # s "midi"

d10 $ fast 1 $ ccn "1*128" # ccv (range 200 400 sine)  # s "midi"

d1 $ splice 27 ("8 3 4!1 2*2 4*6 4!4") $ s "ade"
   # lpf (range 200 400 sine)
  # pan "<1 ,-1>"
# gain 1

d2 $ slow 2 $ "jvbass" <| n (run 16) # lpf (range 200 400 sine)

d4 $ s "hh27"<| n (run 8) # lpf 1000

d5 $ sometimes (off 0.125 (# speed 2))
   $ jux (# nudge 0.03)
    $ s "superhoover(<3 5>, 8, <0 1 0 0 3>)"
    # gain 0.8 # hpf 200 # n "<0 1 2 3 4>" # speed 2 
  # krush 1 # lpf (range 200 800 sine) # amp 0.7

d6 
$ sometimesBy 0.15 (chop 50)
$ sometimesBy 0.3 (jux rev)
$ every 4 rev
$ every 4 (#pan 0) 
$ every 5 (# speed (smooth "1 1 1  0.98 0.96 0.93 1.4 1.9")) 
$ s "[[~ notes:28*16 | ~ amencutup*6], [notes:2(5,8) | notes:7*8]]"
# speed "[0.5 1 1 1.26 2 0.25 1]/5"

d7 $ jux rev $ loopAt 16 $ chop 128 $ s "bev:1" # room 0.5
   # gain 1.2 # legato 2 

d5 silence
d6 silence
d3 silence
d1 silence
d2 silence
d4 silence

--cc
d9 $ fast 4 $ 
  ccn "0*16" 
  # ccv "[0 127]*8"
  # s "midi"

--dnb
d7 $ palindrome $ sound "[<amencutup:0 amencutup:1*4> <amencutup:2*2 amencutup:3>] [<amencutup:1*4 amencutup:7> <amencutup:6 amencutup:5*2>] [amencutup:2*4 <amencutup:4 amencutup:3*2>] [<amencutup:5*2 amencutup:4*2> <amencutup:6*2 amencutup:1>]" # speed 2 # release 0.1 # lpf (range 200 600 saw)
shape(4).color(0.8,0.3,0.3).rotate(()=>cc[1]).scale(()=>cc[0]).modulate(noise(3,0.1)).diff(o0,cc[1]).out()

hush()

let p5 = new P5()
p5.hide() 
s0.init({ src: p5.canvas }) 
p5.frameRate(30);
p5.pixelDensity(1);
let glitchDensity = 0; 
let glitchInstability = 0; 
let primaryHue = 180; 
p5.draw = () => {
  glitchDensity = cc[0]
  glitchInstability = cc[1];
  p5.background(0, 0, 0, p5.map(glitchInstability, 0, 1, 30, 10)); 
  p5.noFill();
  p5.strokeWeight(p5.map(glitchInstability, 0, 1, 1, 3)); // go from 1 to 3
  let numElements = p5.floor(p5.map(glitchDensity, 0, 1, 2, 150)); //go from 1 to 150
  for (let i = 0; i < numElements; i++) {
    let x = p5.random(p5.width);
    let y = p5.random(p5.height);
    let w = p5.random(5, 50) * (1 + glitchDensity);
    let h = p5.random(5, 50) * (1 + glitchDensity);
    let angle = p5.random(p5.TWO_PI) * glitchInstability; 
    let hueShift = p5.map(p5.sin(p5.frameCount * 0.05 + i * 0.1), -1, 1, -30, 30) * glitchInstability;
    let currentHue = (primaryHue + hueShift) % 360;
    let saturation = p5.map(glitchInstability, 0, 1, 50, 100);
    let brightness = p5.map(glitchDensity, 0, 1, 70, 100);
    let alpha = p5.map(glitchDensity, 0, 1, 150, 250);
    p5.push();
    p5.translate(x+p5.random(-10,10)*glitchInstability, y+p5.random(-10,10)*glitchInstability);
    p5.rotate(angle);
    p5.stroke(currentHue, saturation, brightness, alpha);
    p5.rect(0,0,w,h);
    p5.pop;
  }
}
src(s0)
  //.pixelate(()=> 5 + cc[1]*20 + cc[0]*30 , ()=> 5 + cc[1]*20 + cc[0]*30 )
  //.kaleid(()=> 1 + Math.floor(cc[0]*6))
  //.modulate(o0, ()=> ccActual[1]*0.05 )
  //.colorama(()=> 0.1 + ccActual[1]*0.3)
  .out() 


hush()

Here is the link to the video:


https://youtu.be/6-CaoJkZ2Ow

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>