I originally had a very different idea in mind for my composition project, but after everything happening around us, I found myself lacking inspiration and creativity. To combat that, I decided to go through the dirt samples again. I went back to our class basics and ran lines on the class examples of week 2. This led me to combine sounds I liked and then figure out how to put them together into a nice beat. I was aiming for something groovy. A lot of my process involved trying to sound out a tune I like, then trying to translate that into Tidal.

I think a lot of the time in class we tend to shift towards more EDM or Tech music, but I found myself enjoying myself more with groovier beats as they sound more like songs I often listen to. After I had almost finalized my sounds, I needed to tackle visuals. For my visuals, I was thinking of contrasts, and one of the artists that I listen to, Kaytranada, tends to have album covers with a lot of contrast, so that was something I wanted to incorporate.

As for song structure, I would say I followed A-B-C-A, but I wouldn’t say I have a classic build or drop within my composition. I was kind of testing the different sounds until I found something I liked listening to, essentially playing it by ear, mostly. Every time I attempted the classic build, then drop structure, I felt like it was too generic, and I thought that might’ve been due to me not listening to a lot of EDM, so I decided to do a composition with a music style I am more familiar with, and would enjoy playing around with more.

Tidal Code:

--a 
d1 $ slow 3 $ sound "[bd sn sn][bd bd sn]" # gain 0.7 # room 0.5
d7 $ ccv "[0 20 64 127]" # ccn "0" # s "midi"

d3 $ struct "t(3,8)" $ sound "hc*4" # gain 0.7 # room 0.4
d9 $ struct "t(3,8)" $ ccv "[0 64 127 64]" # ccn "1" # s "midi"

d2 $ slow 2 $ s "padlong" # gain 0.5


d4 $ s "pluck" <| n (run 8) # gain 0.8 # room 0.4
d8 $ ccv "[0 20 20 64 64 127]" # ccn "2" # s "midi"

--b
d1 $ fast 2 $ sound "bd*4" # gain 0.7  # room 0.4
d7 $ fast 2 $ ccv "[127 0 127 0]" # ccn "0" # s "midi"

d2 $ sound "sn*4" # gain 0.7 # room 0.7
d9 $ struct "t(3,8)" $ ccv "[127 127 0 127]" # ccn "1" # s "midi"

d3 $ struct "t(3,8)" $ sound "hc*8" # gain 0.7 # room 0.4
d9 $ struct "t(3,8)" $ ccv "[64 127 64 127]" # ccn "1" # s "midi"

d6 $ struct "t(3,8)" $ sound "bass3" <| n "[c2 c2 c2 c2]" # gain 0.7 # room 0.9
d11 $ struct "t(3,8)" $ ccv "[0 127 0 127]" # ccn "3" # s "midi"

d4 $ s "pluck" <| n (run 11) # gain 0.9 
d8 $ struct "t(3,8)" $ ccv (segment 8 (range 0 127 saw)) # ccn "2" # s "midi"

d5 $ s "msg" <| n (run 4) # gain 0.9 # room 0.4


-- c
d1 $ slow 3 $ sound "[bd sn sn][bd bd sn]" # gain 0.6 # room 0.5
d7 $ ccv "[0 20 0 20]" # ccn "0" # s "midi"

d2 $ struct "t(3,8)" $ sound "hc*4" # gain 0.6 # room 0.4
d9 $ struct "t(3,8)" $ ccv "[0 127 0 127]" # ccn "1" # s "midi"

-- a
d3 $ slow 2 $ s "padlong" # gain 0.5
d10 $ ccv "[64 127 64 0]" # ccn "3" # s "midi"

d4 $ s "pluck" <| n (run 8) # gain 0.8 
d8 $ ccv (segment 8 (range 0 127 saw)) # ccn "2" # s "midi"

d6 silence 
d5 silence


hush

Hydra Code:

osc(() => 150 + cc[0]*50, 0.05 + cc[3]*0.05, 1)
  .rotate(() => time*0.5 + cc[3]*0.2)      
  .scale(() => 1 + cc[1]*0.5)             
  .color(() => cc[0], () => cc[1], () => cc[2])
  .modulate(
    noise(() => cc[0]*10 + cc[2]*5 + cc[3]*5, 0.3)
  )  .layer(
    osc(() => 80 + cc[2]*40, 0.1, 1)
      .luma(() => cc[1]*0.8 + cc[3]*0.3, 0.05)
      .pixelate(() => 2 + cc[0]*15, () => 2 + cc[1]*15)
      .color(() => cc[0], 0.5, () => cc[1])
      .modulate(noise(() => (cc[0]+cc[1])*8 + cc[3]*3, 0.25))
  )
  .layer(
    noise(() => cc[1]*8 + cc[3]*5, 0.15)
      .pixelate(() => 3 + cc[2]*15, () => 3 + cc[0]*15)
      .color(() => cc[2], () => cc[0], () => cc[1])
      .modulate(
        osc(20, 0.1, 1).luma(() => cc[3]*0.8 + cc[2]*0.2, 0.05)
      )
  )
  .modulate(
    osc(10 + cc[3]*20, 0.02 + cc[3]*0.05, 1)
      .rotate(time*0.2 + cc[3]*0.2)
      .modulate(noise(time*0.2, 0.2 + cc[3]*0.1))
  )
  .contrast(1.8 + cc[3]*0.5)
  .saturate(1.6 + cc[3]*0.5)
  .blend(o0, 0.6 + cc[3]*0.3)
  .out(o0)


hush()

Demo: