Examples / Songs / Agency
Rogue Process
Play in Cycletron Opens it in the app in your browser, with the visualizers. Desktop browsers only.
// AGENCY OST — 12 · Rogue Process
// ACT II. The escaped process forks itself faster than it can be killed.
// Perturbator club-mode: four-on-floor, 16th chug under a stop-riff, big
// arps — and every 8th bar the whole mix slam-stops on the back half
// (the turnaround), leaving only the reverb.
//
// FORM (122 BPM · 1 cycle = 1 bar · 64 bars ≈ 2:06 · loops):
// intro 8 e2 filtered chug fades up + arp; a process wakes
// fork 16 e4 full club: 4-floor, offbeat hats, stop-riff bass, arp
// swarm 16 e5 + screaming lead trading with the arp
// kill 8 e2 killed? — half-time, riff ghosts, pad only
// fork2 8 e5 it re-forks: everything, filter wide open
// outro 8 e1 processes wink out one by one
// hook: the turnaround slam-stop — every 8th bar, all sections but kill.
setbpm(122);
"<intro@2 fork@4 swarm@4 kill@2 fork2@2 outro@2>".slow(4).pickRestart({
intro: stack(
note("f#1*16").s("supersaw")
.lpf(saw.range(200, 900).slow(8)).resonance(10)
.decay(0.08).sustain(0).dist(0.3).gain("0.5 0.35 0.42 0.35"),
note("<[0 4 7 4 2 4 7 4] [0 4 7 9 7 4 2 0] [0 4 7 4 2 4 7 4] [2 4 7 9 12 9 7 4]>")
.scale("F#4:minor").s("pulse").decay(0.12).sustain(0)
.delay(0.3).delaytime(0.1875).room(0.35).gain(0.28).pan(0.6),
s("<[~ ~ ~ ~] [~ ~ ~ ~] [bd ~ ~ ~] [bd ~ bd ~]>").gain(0.85).dist(0.2)
),
fork: stack(
s("<[bd*4] [bd*4] [bd*4] [bd*4] [bd*4] [bd*4] [bd*4] [bd bd ~ ~]>").gain(0.94).dist(0.25),
s("<[~ sd ~ sd] [~ sd ~ sd] [~ sd ~ sd] [~ sd ~ sd] [~ sd ~ sd] [~ sd ~ sd] [~ sd ~ sd] [~ sd ~ ~]>")
.room(0.55).roomsize(0.75).gain(0.66),
s("<[~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ ~ ~ ~]>")
.gain(0.24).pan(sine.range(0.4, 0.6)),
note("<[f#1 f#1 ~ f#1 ~ f#1 f#1 ~ ~ f#1 f#1 ~ f#2 ~ ~ ~] [f#1 f#1 ~ f#1 ~ f#1 f#1 ~ a1 ~ a1 ~ g#1 ~ ~ ~] [f#1 f#1 ~ f#1 ~ f#1 f#1 ~ ~ f#1 f#1 ~ f#2 ~ ~ ~] [d1 ~ ~ d1 ~ ~ e1 ~ e1 ~ ~ ~ ~ ~ ~ ~] [f#1 f#1 ~ f#1 ~ f#1 f#1 ~ ~ f#1 f#1 ~ f#2 ~ ~ ~] [f#1 f#1 ~ f#1 ~ f#1 f#1 ~ a1 ~ a1 ~ g#1 ~ ~ ~] [b1 ~ ~ b1 ~ ~ a1 ~ g#1 ~ ~ g#1 e1 ~ ~ ~] [f#1 ~ f#1 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~]>")
.s("sawtooth").lpf(850).resonance(9)
.decay(0.09).sustain(0).dist(0.32).gain(0.56),
note("<[0 4 7 4 9 7 4 0] [2 4 7 4 9 7 4 2] [0 4 7 4 9 7 4 0] [7 9 11 9 12 11 9 7] [0 4 7 4 9 7 4 0] [2 4 7 4 9 7 4 2] [4 7 9 7 12 9 7 4] [7 ~ 4 ~ ~ ~ ~ ~]>")
.scale("F#4:minor").s("pulse").decay(0.12).sustain(0)
.delay(0.25).delaytime(0.1875).room(0.3).gain(0.3).pan(0.6),
chord("<F#m F#m D E>").voicing().s("supersaw")
.attack(0.05).release(0.9).lpf(1300).chorus(0.4).room(0.5)
.gain(saw.range(0.1, 0.26).fast(4))
),
swarm: stack(
s("<[bd*4] [bd*4] [bd*4] [bd*4] [bd*4] [bd*4] [bd*4] [bd bd ~ ~]>").gain(0.94).dist(0.28),
s("<[~ sd ~ sd] [~ sd ~ sd] [~ sd ~ sd] [~ sd ~ sd] [~ sd ~ sd] [~ sd ~ sd] [~ sd ~ sd] [~ sd ~ ~]>")
.room(0.55).roomsize(0.75).gain(0.68),
s("<[~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ ~ ~ ~]>")
.gain(0.24).pan(sine.range(0.4, 0.6)),
s("~ ~ ~ oh").gain(0.24),
note("<[f#1 f#1 ~ f#1 ~ f#1 f#1 ~ ~ f#1 f#1 ~ f#2 ~ ~ ~] [f#1 f#1 ~ f#1 ~ f#1 f#1 ~ a1 ~ a1 ~ g#1 ~ ~ ~] [f#1 f#1 ~ f#1 ~ f#1 f#1 ~ ~ f#1 f#1 ~ f#2 ~ ~ ~] [d1 ~ ~ d1 ~ ~ e1 ~ e1 ~ ~ ~ ~ ~ ~ ~] [f#1 f#1 ~ f#1 ~ f#1 f#1 ~ ~ f#1 f#1 ~ f#2 ~ ~ ~] [f#1 f#1 ~ f#1 ~ f#1 f#1 ~ a1 ~ a1 ~ g#1 ~ ~ ~] [b1 ~ ~ b1 ~ ~ a1 ~ g#1 ~ ~ g#1 e1 ~ ~ ~] [f#1 ~ f#1 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~]>")
.s("sawtooth").lpf(900).resonance(9)
.decay(0.09).sustain(0).dist(0.32).gain(0.54),
note("<[12 ~ 11 ~ 9 ~ 7 ~] [9 ~ 7 ~ 4 ~ ~ ~] [12 ~ 11 ~ 9 ~ 7 ~] [9 ~ 11 ~ 12 ~ 14 ~] [12 ~ 11 ~ 9 ~ 7 ~] [9 ~ 7 ~ 4 ~ ~ ~] [14 ~ 12 ~ 11 ~ 9 ~] [7 ~ ~ ~ ~ ~ ~ ~]>")
.scale("F#4:minor").s("sawtooth")
.lpf(3000).resonance(6).decay(0.18).sustain(0.1)
.dist(0.2).delay(0.22).delaytime(0.1875).room(0.3).gain(0.36)
),
kill: stack(
s("bd ~ ~ ~ ~ ~ ~ ~ ~ ~ bd ~ ~ ~ ~ ~").gain(0.8).dist(0.2),
note("<[f#1 ~ ~ f#1 ~ ~ ~ ~] [~ ~ ~ ~ ~ ~ ~ ~] [f#1 ~ ~ ~ ~ ~ ~ ~] [~ ~ ~ ~ ~ ~ ~ ~]>")
.s("sawtooth").lpf(600).decay(0.1).sustain(0).dist(0.25)
.room(0.4).gain(0.5),
note("<[0 ~ 4 ~ 7 ~ ~ ~] [~ ~ ~ ~ ~ ~ ~ ~] [~ 2 ~ 4 ~ 7 ~ ~] [9 ~ 7 ~ ~ ~ ~ ~]>")
.scale("F#5:minor").s("pulse").decay(0.12).sustain(0)
.delay(0.5).delaytime(0.1875).delayfeedback(0.55).room(0.5).gain(0.24).pan(0.6),
chord("<F#m F#m D D>").voicing().s("supersaw")
.attack(1.0).release(2.0).lpf(900).chorus(0.5).room(0.7).gain(0.28)
),
fork2: stack(
s("<[bd*4] [bd*4] [bd*4] [bd bd ~ ~]>").gain(0.95).dist(0.28),
s("<[~ sd ~ sd] [~ sd ~ sd] [~ sd ~ sd] [~ sd ~ ~]>").room(0.55).roomsize(0.75).gain(0.68),
s("<[~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ hh ~ hh] [~ hh ~ hh ~ ~ ~ ~]>")
.gain(0.26).pan(sine.range(0.4, 0.6)),
s("~ ~ ~ oh").gain(0.26),
note("<[f#1 f#1 ~ f#1 ~ f#1 f#1 ~ ~ f#1 f#1 ~ f#2 ~ ~ ~] [f#1 f#1 ~ f#1 ~ f#1 f#1 ~ a1 ~ a1 ~ g#1 ~ ~ ~] [b1 ~ ~ b1 ~ ~ a1 ~ g#1 ~ ~ g#1 e1 ~ ~ ~] [f#1 ~ f#1 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~]>")
.s("sawtooth").lpf(1100).resonance(9)
.decay(0.09).sustain(0).dist(0.35).gain(0.56),
note("<[0 4 7 4 9 7 4 0] [2 4 7 4 9 7 4 2] [4 7 9 7 12 9 7 4] [7 ~ 4 ~ ~ ~ ~ ~]>")
.scale("F#5:minor").s("pulse").decay(0.12).sustain(0)
.delay(0.25).delaytime(0.1875).room(0.3).gain(0.3).pan(0.6),
note("<[12 ~ 11 ~ 9 ~ 7 ~] [9 ~ 7 ~ 4 ~ ~ ~] [14 ~ 12 ~ 11 ~ 9 ~] [7 ~ ~ ~ ~ ~ ~ ~]>")
.scale("F#4:minor").s("sawtooth")
.lpf(3200).resonance(6).decay(0.18).sustain(0.1)
.dist(0.2).delay(0.22).delaytime(0.1875).room(0.3).gain(0.34)
),
outro: stack(
note("<[0 4 7 4 ~ 4 7 ~] [0 ~ 7 ~ ~ 4 ~ ~] [0 ~ 4 ~ 7 ~ ~ ~] [~ ~ ~ ~ 7 ~ ~ ~]>")
.scale("F#4:minor").s("pulse").decay(0.12).sustain(0)
.delay(0.4).delaytime(0.1875).delayfeedback(0.5)
.room(0.5).gain(isaw.range(0.1, 0.28).slow(8)).pan(0.6),
note("f#1").s("sine").slow(2).attack(1.5).release(3).gain(0.42),
chord("<F#m F#m D F#m>").voicing().s("supersaw")
.attack(1.2).release(2.2).lpf(isaw.range(350, 1100).slow(8))
.chorus(0.4).room(0.7).gain(0.26)
)
})