Demo Video:
Composition structure: A + B + A + B(with slight modification)
I first started my composition in Tidal by gathering all the class examples and sample patterns that I liked. I experimented by changing the beats and playing around with different speeds. After settling on two parts, A and B, that I liked, I organized them into a composition with an A + B + A + B structure. Because I wanted a clear sense of beginning and ending, I kept both the opening and closing sections simple, with minimal beats and visuals, so the composition could build up and then gradually fade out.
For the visuals, I initially used a blob slowly flowing on the screen. When I synced it with my sound by adding a glitch effect to match the glitch sound, it felt too boring, and there were no significant differences between parts A and B. Therefore, I added a new section where more chaotic and unexpected visuals appear in part B.
Code Snippets:
shape(200, 0.4, 0.02)
.repeat(() => cc[3] + 1, () => cc[3] + 1)
.modulate(osc(6, 0.1, 1.5), 0.2)
.modulateScale(osc(3,0.5),-0.6)
.modulate(noise(() => cc[1], 0.2), 0.3)
.color(
() => Math.sin(time) * 0.5 + 0.5,
0.4,
1
)
.modulate(
noise(50, 0.5),
() => cc[0] + cc[0] * Math.sin(time*8)
)
.add(o0, () => cc[3])
.scale(0.9)
.out()
start = do
d1 $ slow 2 $ s "house(4,8)" # gain 0.9
d2 $ ccv "0 127" # ccn 1 # s "midi"
d3 $ s "chin" <| n (run 4) # gain 2
d4 $ s "click" <| n (run 4)
d5 $ s "bubble" <| n (run 8)
d12 $ ccv "0" # ccn 3 # s "midi"
start
back_drop_with_glitch = do
d6 $
s "supersnare(9,16)?"
# cps (range 0.45 0.5 $ fast 2 tri)
# sustain (range 0.05 0.25 $ slow 0.2 sine)
# djf (range 0.4 0.9 $ slow 32 tri)
# pan (range 0.2 0.8 $ slow 0.3 sine)
# gain (range 0.3 0.7 $ fast 9.2 sine)
# amp 0.9
d7 $
every 8 rev $
s "bd*8 sn*8"
# n "[1 ~ ~ ~ 1 ~ ~ ~] [[2 0?] ~ ~ [~ 0?]]"
# amp "0.02 0.02"
# shape "0.4 0.5"
d8 $
every 4 rev $
s "[sostoms? ~ ~ sostoms?]*2"
# sustain (range 0.02 0.1 $ slow 0.2 sine)
# freq 420
# shape (range 0.25 0.7 $ slow 0.43 sine)
# voice (range 0.25 0.5 $ slow 0.3 sine)
# delay 0.1
# delayt 0.4
# delayfb 0.5
# amp 0.2
d9 $
s "[~ superhat]*4"
# accelerate 1.5
# nudge 0.02
# amp 0.1
d10 $ s "glitch" <| n (run 8)
d11 $ ccv "0 0 0 0 0 0 0 10" # ccn 0 # s "midi"
back_drop_with_glitch
another_beat = do
-- d1 $ s "ul" # n (run 16)
d5 $ s "supersnare(9,16)?" # cps (range 0.5 0.45 $ fast 2 tri ) # sustain (range 0.05 0.25 $ slow 0.2 sine ) # djf (range 0.4 0.9 $ slow 32 tri ) # pan (range 0.2 0.8 $ slow 0.3 sine )
d7 $ fast 2 $ every 8 rev $ s "bd*8 sn*8" # n "[1 ~ ~ ~ 1 ~ ~ ~] [[2 0?] ~ ~ [~ 0?]]" # amp "0.02 0.02" # shape "0.4 0.5"
d7 $ fast 2 $ every 4 rev $ s "[sostoms? ~ ~ sostoms?]*2" # sustain (range 0.1 0.02 $ slow 0.2 sine ) # freq 420 # shape (range 00.7 0.25 $ slow 0.43 sine ) # voice (range 00.5 0.25 $ slow 0.3 sine ) # delay 0.1 # delayt 0.4 # delayfb 0.5
d8 $ s "[~ superhat]*4" # accelerate 1.5 # nudge 0.02
d9 $ sound "bd:13 [~ bd] sd:2 bd:13" # krush "4"
d12 $ slow 2 $ s "arpy" <| up "c'maj(3,8) f'maj(3,8) ef'maj(3,8,1) bf4'maj(3,8)"
d1 $ ccv "0 0 0 0 0 127" # ccn 3 # s "midi"
d4 $ fast 2 $ s "kurt" <| n (run 1)
another_beat
do
start
back_drop_with_glitch
beat_silence = do
start
d6 silence
d7 silence
d8 silence
d9 silence
d10 silence
beat_silence
hush