I was playing around with variations of “notes” from the tidal cycle archive and came across this line that sounded oddly familiar to my phone when it is buzzing intensely at me.

d5 $ slow 4 $ s "notes:2" >| note (scale "major" ("<0>(2,2)") +"f2") # room 2.3 #krush 1.7 # gain (range 1.0 1.4 rand)

Hearing the buzz repeat itself, over and over again, gave me flashbacks to all the times I got notifications when I wasn’t supposed to – such as in my deep nap mode, when in a class trying to focus, when on a digital detox etc. Phone notifications can be inviting at times – I love getting texts from a best friend, family, or a loved one – but it could also be very irritating. I was inspired to create a composition expressing this very specific type of irritation we feel sometimes towards our digital best friend.

I used a mix of notes:1 and notes:2 for the main melodies. The build up of the sound was achieved by speeding up the base drums, snare drums, the bass (auto:5, auto:7), and the three melodies. For the visuals, I tried to find a cartoon character that resembled how I look like when I am sleep deprived. I came across a clip that I found really funny, from this particular scene in Spongebob where Squidward was very upset from the endless incoming calls from Spongebob and Patrick. Squidward had just finished preparing himself to sleep and was ready to go to dream land. The last thing he wanted to hear was the phone buzzing. This scene matched my inspiration perfectly. I wanted to sync the build up of the music to the anger I assume was building within Squidward. The story was the main component of focus within the composition, hence both the code for the visual and sound were structured around the storyline, the comments of which were left on Atom for the viewers to follow during the performance.

I hope you enjoy 😴

 

 

Tidal:

-- START

do
  d2 $ fast 2 $ s "notes:1" >| note (arp "up" (scale "major" ("[2,3,7,6]"+"<2 3 7 3>") + "f4")) # room 0.4 # gain (range 0.7 1.0 rand)
  d1 $ fast 2 $ s "notes:1" >| note (scale "major" ("[0,<5 <4 3>>](<1 2>,4)") + "f3") # room 0.7 # gain 1.5 #krush 1.2
  d3 $ s "bd bd <sd> bd" # room 0.1
  d14 $ fast 2 $ ccv "<127 50 127 50 >" # ccn "1" # s "midi"

-- CALL INCOMING!!!!!
do
  d5 $ slow 4 $ s "notes:2" >| note (scale "major" ("<0>(2,2)") +"f2") # room 2.3 #krush 1.7 # gain (range 1.0 1.4 rand)
  d14 $ slow 2 $ ccv "<127 50 127 50 >" # ccn "1" # s "midi"

  d5 silence

-- Second melody
d4 $ fast 2 $ s "notes:2" >| note (scale "major" ("<6 <2 4 8 4 2>>(1,3)")) # room 1.2 # gain 1.1

hush

-- build up of anger
do
  d7 $ slow 2 $ s "[auto:5, auto:7]" # gain (1.1) # size (0.9) # room (0.8)
  d8 $ s "[~ sd, hh*2 hh*2 hh*2 <hh*6 [hh*2]!3>]" # room 1 # gain (range 0.8 1.0 rand)
  d9 $ s "sd*4" # krush 2 # room 0.4
  d14 $ fast 16 $ ccv "<127 50 127 50 >" # ccn "1" # s "midi"

hush

-- ANGER BUILDING

d10 $ qtrigger 10 $ seqP [
    (0, 1, s "[sd*4]"),
    (1, 2, s "[bd*8, sd*8]"),
    (2, 3, s "[bd*16, sd*16, auto:1*16]"),
    (3, 4, s "[bd*32, sd*32, auto:1*32]"),
    (4, 5, s "sine*8" # up "g ~ e a [g ~] [~c] ~ ~")
]

-- REAL ANGRY
do
  d14 $ whenmod 24 16 (# ccn ("0*128"+"<t(7,16) t t(7,16) t>")) $ ccn "0*128" # ccv (slow 2 (range 0 127 saw)) # s "midi"
  d5 $ slow 2 $ s "notes:2" >| note (scale "major" ("<0>(2,2)") +"f2") # room 1.8 #krush 1.2 # gain 1
  d6 $ s "sine*8" # up "g? ~ e a [g ~] [~c] ~ ~" # room (1) # gain (0.9)
  d7 $ slow 2 $ s "[auto:5, auto:7]" # gain (1) # size (0.9) # room (0.8) # cutoff 5000
  d8 $ s "[~ cp, hh*2 hh*2 hh*2 <hh*6 [hh*2]!3>]" # room 1.1
-- fast

hush

-- OMG

do
  d14 $ fast 16 $ whenmod 24 16 (# ccn ("0*128"+"<t(7,16) t t(7,16) t>")) $ ccn "0*128" # ccv (slow 2 (range 0 127 saw)) # s "midi"
  d5 $ slow 1 $ s "notes:2" >| note (scale "major" ("<0>(2,2)") +"f2") # room 1.8 #krush 1.2 # gain 1
  d6 $ fast 2 $ s "sine*8" # up "g? ~ e a [g ~] [~c] ~ ~" # room (1) # gain (0.7)
  d7 $ slow 1 $ s "[auto:5, auto:7]" # gain (1) # size (0.9) # room (0.8) # cutoff 5000
  d8 $ fast 2 $ s "[~ cp, hh*2 hh*2 hh*2 <hh*6 [hh*2]!3>]" # room 1

do
  d14 $ fast 4 $ ccv "<127 50 127 50 >" # ccn "1" # s "midi"
  d9 silence
  d8 silence
  d7 silence
  d6 silence
  d4 silence
  d3 silence
  d2 silence
  d1 silence

  d5 silence

-- PEACEFUL TIMES

do
  d14 $ fast 1 $ ccv "<127 50 127 50 >" # ccn "1" # s "midi"
  d13 $ fast 1 $ s "notes:2" >| note (scale "major" ("a3 g3 e3 <b3 c3 e3 f3>")) # room 1.2 # gain 1.1

hush

 

Hydra:

// video control
vid = document.createElement('video')
vid.autoplay = true
vid.loop = true
vid.volume = 0


// BE SURE TO CHANGE THE FOLDER NAME
// BE SURE TO PUT A SLASH AFTER THE FOLDER NAME TOO
basePath = "/Users/yejikwon/Desktop/Fall\ 2022/Live\ Coding/class_examples/composition/video/"
videos = [basePath+"1.mp4", basePath+"2.mp4", basePath+"3.mp4", basePath+"4.mp4", basePath+"5.mp4"]

// choose video source from array
// SLEEP TIME
vid.src = videos[0]
// CALL
vid.src = videos[1]
// HELLO?!
vid.src = videos[2]
// HELLO?!!!!
vid.src = videos[3]
// THE END
vid.src = videos[4]


// use video within hydra
s1.init({src: vid})

render


// cc[1] will be zero always during the "A" section
// thus making the scale value not change
src(s1).scale(()=>-1*cc[0]*cc[1]+1).out()
render(o0)
let whichVideo = -1;

update = ()=> {
  // only change the video when the number from tidal changes,
  // otherwise the video wil keep triggering from the beginning and look like it's not playing
  // cc[2] is for changing the video
  if (cc[2]!=whichVideo){
    vid.src = videos[ccActual[2]]
    whichVideo=cc[2];
  }
}

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>