Performance recording

Audio code 🎧

setcps (130/60/4)

-- chords
d1 $ qtrigger $ filterWhen (>=0) $ stack [
    struct ("[1 0] [0 1] [0 0] [1 0]")
    $ s "longer:1" >| begin 0 >| end "0.003"
    # note ("<f'min'4 df'maj'4 c'min'4 ef'maj'4>") # hpf 1000,
    ccv "[<90 40 30 90> 0] [0 <90 40 30 90>] [0 0] [<90 40 30 90> 0]" # ccn "0" # s "midi"
  ]

-- bass drum
d2 $ qtrigger $ filterWhen (>=0) $ stack [
    struct ("1 1 [1 0 0 1] [0 0 1 0]") $ s "house",
    ccv "60 60 [60 0 0 60] [0 0 60 0]" # ccn "1" # s "midi"
  ]

-- melody
d3 $ qtrigger $ filterWhen (>=0) $ stack [
  fast 2 $ struct ("1 1 1 <0 1>") $ rolledBy 0.7 $ note (arp "diverge" "<f'min'4 ef'maj'4>")
  # s "bubble:2" # gain 1.3 # hpf 1000,
  ccv "30 30 30 <0 30>" # ccn "2" # s "midi"
]

-- kick & hh
do
  d4 $ qtrigger $ filterWhen (>=0) $ struct ("[1 0 1 1 <0 1> [0 1] [0 1] 0]") $ s "bubble:5" -- bubble kick
  d5 $ qtrigger $ filterWhen (>=0) $ struct ("0 1 0 1") $ s "jchh:1" # gain 0.8 # room 0.1

-- shaker?
do
  d7 $ qtrigger $ filterWhen (>=0)
    $ seqP [
      (2,3, "ukgfx:3@4")
    ]
  d8 $ qtrigger $ filterWhen (>=0) $ struct ("[1 1] [1 0] [0 1] 0") $ s "house:2" # lpf 2000

-- faster
do
  d1 $ qtrigger $ filterWhen (>=0) $ struct ("[1 0] [0 1] [0 0] [1 0]") $ s "longer:1" >| begin 0 >| end "0.003"
    # note ("<f'min'4 df'maj'4 c'min'4 ef'maj'4>")
  d5 $ qtrigger $ filterWhen (>=0)
    $ seqP [
      (0,4, struct ("[0 1] [0 1] [0 1] [0 1]") $ s "jchh:1" # gain "0.8" # room 0.1),
      (4,8, struct ("[0 1] [0 1] [0 1] [0 1]") $ s "jchh:1" # gain "0.8" # room 0.1)
    ]

-- little break
do
  d1 $ qtrigger $ filterWhen (>=0) $ struct ("1@4") $ s "longer:1" >| begin 0 >| end "0.003"
    # note ("<f'min'4 df'maj'4 c'min'4 ef'maj'4>")
  d2 $ silence
  d3 $ qtrigger $ filterWhen (>=0)
    $ seqP [
      (4,8, fast 2 $ struct ("1 1 1 <0 1>") $ rolledBy 0.7 $ note (arp "diverge" "<f'min'4 ef'maj'4>"))
    ] # s "bubble:2" # gain 1.4 # hpf 1000 -- louder bubble
  d5 $ silence
  d6 $ silence
  d8 $ silence

-- highlight
do
  d1 $ qtrigger $ filterWhen (>=0) $ stack [
      struct ("1@4") $ s "longer:1" >| begin 0 >| end "0.003"
      # note ("<f'min'4 df'maj'4 c'min'4 ef'maj'4>") # gain 1.07,
      ccv "[<90 40 30 90> 0] [0 <90 40 30 90>] [0 0] [<90 40 30 90> 0]" # ccn "0" # s "midi"
    ]
  d2 $ qtrigger $ filterWhen (>=0) $ stack [
      struct ("1 1 [1 0 0 1] [0 0 1 0]") $ s "house",
      ccv "60 60 [60 0 0 60] [0 0 60 0]" # ccn "1" # s "midi"
    ]
  d3 $ qtrigger $ filterWhen (>=0) $ fast 2 $ struct ("1 1 1 <0 1>") $ rolledBy 0.7 $ note (arp "diverge" "<f'min'4 ef'maj'4>")
    # s "bubble:2" # gain 1.3 # hpf 1000
  d4 $ qtrigger $ filterWhen (>=0) $ struct ("[1 0 1 1 <0 1> [0 1] [0 1] 0]") $ s "bubble:5" # hpf 1000
  d5 $ qtrigger $ filterWhen (>=0) $ struct ("[0 1] [0 1] [0 1] [0 1]") $ s "jchh:1" # gain 0.8 # room 0.1
  d6 $ qtrigger $ filterWhen (>=0) $ struct ("0 1 0 1") $ s "ukgclap:5" # gain 0.7 # room 0.1
  d7 $ silence
  d8 $ qtrigger $ filterWhen (>=0) $ struct ("[1 1] [1 0] [0 1] 0") $ s "house:2"

-- riser
d7 $ qtrigger $ filterWhen (>=0) $ stack [
    seqP [
      (0,1, s "jcfx:12@8" # gain 0.7 # room 0.2),
      (0,1, s "ukgriser:3@8" # lpf 2000 # gain 0.8 # room 0.2),
      (2,6, s "h:1@4" # n "<f'min'4 df'maj'4 c'min'4 ef'maj'4>" # crush 3 # cut 1 # hpf 1000 # gain 0.6 # room 0.4)
    ],
    ccv "<90 40 30 90>" # ccn "2" # s "midi"
  ]

-- only chords + vox
do
  d1 $ struct ("[1 0] [0 1] [0 0] [1 0]") $ s "longer:1" >| begin 0 >| end "0.003"
    # note ("<f'min'4 df'maj'4 c'min'4 ef'maj'4>")
  d2 $ silence
  d3 $ silence
  d4 $ silence
  d5 $ silence
  d6 $ silence
  d7 $ qtrigger $ filterWhen (>=0) $ s "h:1@4" # n "<f'min'4 df'maj'4 c'min'4 ef'maj'4>"
    # crush 3 # cut 1 # hpf 1000 # gain 0.6 # room 0.4
  d8 $ silence

-- ending..
do
  d1 $ silence
  d2 $ silence
  d3 $ silence
  d4 $ silence
  d5 $ silence
  d6 $ silence
  d7 $ qtrigger $ filterWhen (>=0) $ struct ("[1 0] [0 1] 0 0") $ s "longer:1" >| begin 0 >| end "0.003"
    # note ("<f'min'4 df'maj'4 c'min'4 ef'maj'4>" + "-3")
  d8 $ silence
  d9 $ silence

d7 $ struct ("[1 0] [0 1] 0 0") $ s "longer:1" >| begin 0 >| end "0.003"
    # note ("<f'min'4 df'maj'4 c'min'4 ef'maj'4>" + "-3") # lpf 2000 -- 2000 -> 1000

Visual code 🫧

hush()

bpm = 65
// -- load everything here --
// load video 1 (hand)
s1.initVideo('https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExOWRlamczNDZkNWwwNjl3cXMzN3FjYnR5bWlmbTNlbWZmaHVoOTJ2MiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/3oKIPw0gVImPZISxlS/giphy.mp4')
src(s1).out(o1) // out at o1
// load video 2 (background)
s0.initVideo('https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExcGtoMWl5ZzN1czdxMW40N3kyZGhjOTJmczB4bjQ1YWg3anFsYnUzeCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xUOwGedYaNseUaJRa8/giphy.mp4')
// load noises
voronoi(10,1,5)
  .brightness(()=>Math.random()*0.15)
  .modulatePixelate(noise(() => (cc[2]*25),0.5), 100)
  .out(o2)
// --------------------------

// start
src(s0)
  .modulate(noise(() => (cc[0]*0.3)))
  // .blend(noise(() => (cc[2]*0.5)), 0.1).brightness(0.2) // melody
  // .blend(o2, 0.1) // shaker
  .out(o0)

// little break
speed = 0.01
src(s0).brightness(0.1).out(o0)

// highlight
speed = 1
src(s0)
  .modulate(noise(() => (cc[0]*0.3)))
  .blend(noise(() => (cc[2]*0.5)), 0.1).brightness(0.2)
  .blend(o2, 0.1)
  .add(src(s1), 0.2)
  .out(o0)

// chords + vox
speed = 1
src(s0)
  .add(src(s1), 0.4)
  // .brightness(0.2) // ending
  .out(o0)

For the composition project, I wanted to create pop-like, melodic music with nostalgic visuals. I first started experimenting with different rhythms for the beat and created a main beat using the ‘bubble’ sound sample from the DirtSamples library. I instantly liked how it sounded, so I decided to go with the lightweight melody that can go well with the bubble kick drum. The hardest part for me was to come up with the chord progression. With the professor’s help, I could devise the main chord that I used as an intro. I couldn’t find a synth that fit the rest of the beat, so I ended up chopping off the chord sound from another song (OMG by NewJeans). Then, I changed the notes to apply the custom chords. Once I had all the elements, I mostly focused on the progression of the sounds. I like music with a nice intro, so I spent a lot of time refining the initial build-up and making it consistently progress for listeners to really feel the build-up.

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>