I gradually built up the piece from my first week’s demo and wanted to experiment combining acoustics with electronics. I used mostly built-in sound sources, and it mainly consists of two major parts, yet it does not follow a strict structure. Starting with a piano loop that kind of feels nostalgic, I started to add more electronic sounds that keep getting layered on top of one another. Then it transitions to the second stage where it felt like expanding, gradually getting more chaotic when some random piano is added. Eventually it vanishes into a supersine cluster sound.
tidal:
piano_opening1 = slow 1.5
$ n "c4 g4 d5 ds5 [d5,bf5] ~ ~ ~ ~ ~ ~ ~ c6 ~ ~ ~"
|+ n 7
# s "superpiano"
# velocity "0.8 0.6 0.75 0.45 0.5 ~ ~ ~ ~ ~ ~ ~ 0.7 ~ ~ ~"
# detune 0.1
# gain 0.7
# lpf 2000
# lpq 0.2 -- filter smooth
# sustain 5
# room 0.95
# size 0.7
# pan (slow 4 sine)
piano_opening2 = slow 1.5 $ n "f4 a4 d5 ds5 f5 ds5 d5 a4 g5 ~ ~ ~ a5 ~ ~ ~"
|+ n 7
# detune 0.1
# s "superpiano"
# velocity "0.8 0.6 0.55 0.45 0.5 0.45 0.35 0.6 ~ ~ ~ 0.7 ~ ~ ~" --strike
# gain 0.8
# lpf 2000
# lpq 0.2 -- filter smooth
# sustain 5
# room 0.95
# size 0.7
# pan (slow 4 sine)
hush
d1 $ piano_opening1
d1 $ piano_opening2
d1 $ qtrigger $ filterWhen (>=0) $ seqP [
(0, 3, slow 1.5 $ n "c4 g4 d5 ds5 [d5,bf5] ~ ~ ~ ~ ~ ~ ~ c6? ~ ~ ~"
|+ n 7 # velocity "0.8 0.6 0.75 0.45 0.5 ~ ~ ~ ~ ~ ~ ~ 0.7? ~ ~ ~"),
(3, 6, slow 1.5 $ n "f4 a4 d5 ds5 f5 ds5 d5 a4 g5 ~ ~ ~ a5 ~ ~ ~"
|+ n 7 # velocity "0.8 0.6 0.75 0.45 0.5 0.45 0.35 0.6 ~ ~ ~ 0.7 ~ ~ ~")
]
# s "superpiano"
# detune 0.1
# gain 0.8
# lpf 2000
# lpq 0.2
# sustain 2
# room 0.8
# size 0.9
# pan (slow 4 sine)
d1 silence
hush
d1 silence
d2 $ slow 2 $ n "[a6|e6]*8"
|+ n 5
# detune 1.2
# gain 0.4
# s "supersaw"
# decay 0.2
# sustain 5
# distort 1.2
d2 silence
d5 $ jux (rev) $
struct "t*16?" $
n (irand 36 + 24)
# s "supervibe"
# bandf (range 500 8000 $ rand)
# bandq 15
# hpf (range 0 2000 $ rand)
# sustain 0.05
# detune 1.2
# room 0.8 # size 0.9
# gain (range 0.3 0.5 $ rand)
# pan rand
# squiz 5
d5 silence
d3 $ s "superstatic*16"
# n (irand 12)
# sustain 0.01
# accelerate 20
# pitch1 2000
# room 0.9
# gain (range 0.15 0.3 $ rand)
d3 silence
d4 $ slow 4 $
n "c4 g4 d5 f5"
|+ n 5
# s "supersiren"
# sustain 8
# voice 0.3
# hpf 500
# lpf 2000
# detune 0.2
# room 0.9 # size 0.9
# gain 0.4
# distort 2.0
d4 silence
d1 silence
d7 $ slow 4 $ s "moog:2"
>| note (scale "<minor>" ("[<-7>,0,2]*<1>") + "[c5,c6]")
# legato 1
# lpf 500
# lpfbus 1 (segment 64 (slow 4 (range 100 3000 saw)))
# lpq 0.4
# gain 0.4
d7 silence
d8 $ fast 4 $ sometimesBy 0.4 (shuffle 8) $ s "simplesine"
>| note ((scale "pelog" "<-2 .. 10>"))
# hpf 1200
# lpf 3000
# room 0.4
# gain 0.5
d8 silence
hush
d1 silence
d10 $ qtrigger $ filterWhen (>=0)
$ cat [
repeatCycles 2 $ scramble 8 $ n "c4 g4 d5 ds5 [d5,bf5] ~ ~ ~ ~ ~ ~ ~ c6? ~ ~ ~"
|+ n 7 # velocity "0.8 0.6 0.75 0.45 0.5 ~ ~ ~ ~ ~ ~ ~ 0.7? ~ ~ ~",
repeatCycles 2 $ scramble 8 $ n "f4 a4 d5 ds5 f5 ds5 d5 a4 g5 ~ ~ ~ a5 ~ ~ ~"
|+ n 7 # velocity "0.8 0.6 0.75 0.45 0.5 0.45 0.35 0.6 ~ ~ ~ 0.7 ~ ~ ~"
]
# s "superpiano"
# detune 0.1 # gain 0.7 # lpf 2500 # sustain 2 # room 0.9 # size 0.9 # pan 0.4
d10 silence
d11 $ qtrigger $ filterWhen (>=0)
$ cat [
repeatCycles 2 $ scramble 8 $ fast 2 $ n "c4 g4 d5 ds5 [d5,bf5] ~ ~ ~ ~ ~ ~ ~ c6? ~ ~ ~"
|+ n 19 # velocity "0.8 0.6 0.75 0.45 0.5 ~ ~ ~ ~ ~ ~ ~ 0.7? ~ ~ ~",
repeatCycles 2 $ scramble 8 $ fast 4 $ n "f4 a4 d5 ds5 f5 ds5 d5 a4 g5 ~ ~ ~ a5 ~ ~ ~"
|+ n 19 # velocity "0.8 0.6 0.75 0.45 0.5 0.45 0.35 0.6 ~ ~ ~ 0.7 ~ ~ ~"
]
# s "superpiano"
# detune 0.1 # gain 0.6 # lpf 2500 # sustain 2 # room 0.5 # size 0.6 # pan 0.7
d11 silence
hush
hydra:
shape(4, 0.7, 0.01)
.color(0.6, 0.7, 1)
.repeat(2, 2)
.modulateScale(osc(3, 0.1).rotate(1.5), 0.5)
.layer(
src(o0)
.mask(shape(4, 0.9, 0.5))
.scale(() => 1.01 + (0.5* 0.05))
.rotate(() => Math.sin(time * 0.1) * 0.02)
.luma(0.2, 0.1)
)
.modulatePixelate(
noise(20, 0.5),
() => 0.5 * 1024
)
.brightness(() => -0.15 + (0.5 * 0.1))
.contrast(1.2)
.scrollX(() => Math.sin(time * 0.2) * 0.05)
.out();
shape(4, 0.7, 0.01)
.color(0.6, 0.7, 1)
.repeat(2, 2)
.contrast(1.5)
.modulateScale(osc(3, 0.1).rotate(() => time * 0.2), 0.5)
.layer(
src(o0)
.mask(shape(4, 0.9, 0.5))
.scale(() => 1.01 + Math.sin(time) * 0.02)
.rotate(() => Math.sin(time * 0.1) * 0.05)
.luma(0.2, 0.1)
)
.modulatePixelate(
noise(20, 0.5),
() => [1024, 512, 128, 2048][Math.floor(time % 4)]
)
.brightness(() => -0.15 + Math.random() * 0.05)
.hue(() => Math.sin(time * 0.05) * 0.1)
.scrollX(() => Math.sin(time * 0.2) * 0.05)
.out();
hush()