Examples / Songs / Agency

Zero Day

Demos/Songs/agency/05-zero-day.strudel · 135 BPM

Play in Cycletron Opens it in the app in your browser, with the visualizers. Desktop browsers only.

// AGENCY OST — 05 · Zero Day
// The duel. Industrial techno: Berghain rumble kick, struck-metal clatter,
// a locomotive phrygian bass. In the overload the Agency motif comes back
// HAMMERED — the badge-in theme as a weapon.
//
// FORM (135 BPM · 1 cycle = 1 bar · 72 bars ≈ 2:08 · loops):
//   intro     8  e2  the rumble kick alone in the dark, hats sneak in
//   machine   16 e4  + struck metal, rolling 16th bass — dry, no wash
//   duel      16 e5  + stabs trading left/right — attack and parry
//   vent      8  e2  kick out — drone, metal clatter, a bell tolling
//   overload  16 e5  everything + the motif hammered in octaves
//   collapse  8  e1  the rumble dies out; one bell left ringing
// hook: the Agency motif, hammered — overload only. Earned.

setbpm(135);

"<intro@2 machine@4 duel@4 vent@2 overload@4 collapse@2>".slow(4).pickRestart({
  intro: stack(
    s("bd*4").gain(0.95).dist(0.45).lpf(3000),
    note("<[c#1*4] [c#1*4] [c#1*4] [c#1 c#1 c#1 b0]>")
      .s("sine").attack(0.001).decay(0.32).sustain(0).release(0.4)
      .lpf(220).resonance(3).dist(0.5)
      .room(0.55).roomsize(0.85).gain(0.6),
    s("<[~ ~ ~ ~] [~ ~ ~ ~] [hh*8] [hh*16]>").gain(0.24).hpf(6500)
  ),
  machine: stack(
    s("bd*4").gain(0.95).dist(0.45).lpf(3000),
    note("c#1*4").s("sine").attack(0.001).decay(0.32).sustain(0).release(0.4)
      .lpf(220).dist(0.5).room(0.55).roomsize(0.85).gain(0.55),
    s("hh*16").gain(0.28).hpf(6500),
    s("RolandTR808_rim ~ ~ RolandTR808_rim ~ ~ RolandTR808_rim ~").gain(0.28).hpf(1800).dist(0.2).room(0.12).pan(0.35),
    s("<[~ ~ ~ ~] [~ ~ ~ [ht mt]]>").gain(0.3).crush(6).hpf(600).pan(0.62),
    note("<[c#2 c#2 c#3 c#2 c#2 c#3 c#2 c#2 d2 c#2 c#3 c#2 e2 d2 c#3 c#2] [c#2 c#2 c#3 c#2 c#2 c#3 c#2 c#2 d2 c#2 c#3 c#2 e2 d2 c#3 c#2] [c#2 c#2 c#3 c#2 d2 c#2 c#3 c#2 e2 c#2 c#3 c#2 f#2 e2 d2 c#2] [g#1 g#1 g#2 g#1 a1 a1 a2 a1 d2 d2 d3 d2 c#2 c#2 c#3 c#2] [c#2 c#2 c#3 c#2 c#2 c#3 c#2 c#2 d2 c#2 c#3 c#2 e2 d2 c#3 c#2] [c#2 c#2 c#3 c#2 c#2 c#3 c#2 c#2 d2 c#2 c#3 c#2 e2 d2 c#3 c#2] [e2 e2 e3 e2 d2 d2 d3 d2 c#2 c#2 c#3 c#2 b1 b1 b2 b1] [c#2 c#2 c#3 c#2 d2 c#2 c#3 c#2 c#2 c#2 c#3 c#2 c#2 ~ c#2 ~]>")
      .s("sawtooth").lpf(1100).resonance(8).dist(0.28)
      .decay(0.09).sustain(0).gain("0.62 0.45")
  ),
  duel: stack(
    s("bd*4").gain(0.95).dist(0.45).lpf(3000),
    note("c#1*4").s("sine").attack(0.001).decay(0.32).sustain(0).release(0.4)
      .lpf(220).dist(0.5).room(0.55).roomsize(0.85).gain(0.55),
    s("hh*16").gain(0.26).hpf(6500),
    s("<[~ ~ ~ [~ mt]] [~ ~ ~ [ht mt]]>").gain(0.32).crush(6).hpf(600).pan(0.62),
    note("<[c#2 c#2 c#3 c#2 c#2 c#3 c#2 c#2 d2 c#2 c#3 c#2 e2 d2 c#3 c#2] [c#2 c#2 c#3 c#2 c#2 c#3 c#2 c#2 d2 c#2 c#3 c#2 e2 d2 c#3 c#2] [c#2 c#2 c#3 c#2 d2 c#2 c#3 c#2 e2 c#2 c#3 c#2 f#2 e2 d2 c#2] [g#1 g#1 g#2 g#1 a1 a1 a2 a1 d2 d2 d3 d2 c#2 c#2 c#3 c#2] [c#2 c#2 c#3 c#2 c#2 c#3 c#2 c#2 d2 c#2 c#3 c#2 e2 d2 c#3 c#2] [c#2 c#2 c#3 c#2 c#2 c#3 c#2 c#2 d2 c#2 c#3 c#2 e2 d2 c#3 c#2] [e2 e2 e3 e2 d2 d2 d3 d2 c#2 c#2 c#3 c#2 b1 b1 b2 b1] [c#2 c#2 c#3 c#2 d2 c#2 c#3 c#2 c#2 c#2 c#3 c#2 c#2 ~ c#2 ~]>")
      .s("sawtooth").lpf(1100).resonance(8).dist(0.28)
      .decay(0.09).sustain(0).gain("0.7 0.5"),
    note("<[~ c#4 ~ c#4 ~ ~ e4 ~] [~ ~ ~ ~ ~ ~ ~ ~] [~ c#4 ~ e4 ~ ~ f#4 ~] [~ ~ ~ ~ ~ ~ ~ ~]>")
      .s("superzow").decay(0.1).sustain(0).release(0.06)
      .lpf(2800).resonance(6).dist(0.35).gain(0.44).pan(0.25),
    note("<[~ ~ ~ ~ ~ ~ ~ ~] [~ d4 ~ ~ c#4 ~ b3 ~] [~ ~ ~ ~ ~ ~ ~ ~] [~ g#4 ~ f#4 ~ e4 d4 ~]>")
      .s("supersquare").decay(0.1).sustain(0).release(0.06)
      .lpf(2400).resonance(6).dist(0.3)
      .delay(0.2).delaytime(0.1111).gain(0.4).pan(0.75)
  ),
  vent: stack(
    note("<[c#3, e3, g#3, b3] [a2, c#3, e3, g#3]>").s("supersaw")
      .attack(1.2).release(3.5).lpf(900).gain(0.3).room(0.7).roomsize(0.85),
    s("<[~ ~ [~ metal] ~] [~ ~ ~ [~ rs]]>").gain(0.24).hpf(1500).lpf(6000).room(0.3).pan(0.4),
    note("<[c#5 ~ ~ ~ ~ ~ ~ ~] [~ ~ ~ ~ g#4 ~ ~ ~] [c#5 ~ ~ ~ ~ ~ ~ ~] [~ ~ e5 ~ ~ ~ ~ ~]>")
      .s("wt_bell").dist(0.2).lpf(4500)
      .delay(0.35).delaytime(0.375).delayfeedback(0.4)
      .room(0.6).gain(0.3).pan(0.58),
    note("c#1").s("sine").slow(2).attack(1.5).release(3).gain(0.42)
  ),
  overload: stack(
    s("bd*4").gain(0.95).dist(0.45).lpf(3000),
    note("c#1*4").s("sine").attack(0.001).decay(0.32).sustain(0).release(0.4)
      .lpf(220).dist(0.5).room(0.55).roomsize(0.85).gain(0.55),
    s("hh*16").gain(0.26).hpf(6500),
    s("~ ~ oh ~").gain(0.26).hpf(4000),
    s("<[~ ~ ~ [~ mt]] [~ ~ ~ [ht mt]]>").gain(0.3).crush(6).hpf(600).pan(0.62),
    note("<[c#2 c#2 c#3 c#2 c#2 c#3 c#2 c#2 d2 c#2 c#3 c#2 e2 d2 c#3 c#2] [c#2 c#2 c#3 c#2 c#2 c#3 c#2 c#2 d2 c#2 c#3 c#2 e2 d2 c#3 c#2] [c#2 c#2 c#3 c#2 d2 c#2 c#3 c#2 e2 c#2 c#3 c#2 f#2 e2 d2 c#2] [g#1 g#1 g#2 g#1 a1 a1 a2 a1 d2 d2 d3 d2 c#2 c#2 c#3 c#2]>")
      .s("sawtooth").lpf(1250).resonance(8).dist(0.3)
      .decay(0.09).sustain(0).gain("0.7 0.5"),
    note("<[0 2 4 6 7 4 2 0] [0 2 4 6 7 4 2 0] [0 2 4 6 7 9 7 6] [7 ~ 4 ~ 2 ~ 0 ~] [0 2 4 6 7 4 2 0] [0 2 4 6 7 4 2 0] [12 ~ 9 ~ 7 ~ 6 ~] [7 6 4 2 0 ~ 0 0]>")
      .scale("C#4:phrygian").s("supersquare")
      .decay(0.12).sustain(0).release(0.06)
      .lpf(3000).resonance(5).dist(0.3)
      .off(0.5, x => x.add(12).gain(0.4))
      .gain(0.42).pan(0.5)
  ),
  collapse: stack(
    s("bd*4").gain(isaw.range(0.3, 0.9).slow(8)).dist(0.4).lpf(isaw.range(200, 2500).slow(8)),
    note("c#1").s("sine").slow(2).attack(1.0).release(4).gain(0.45),
    note("<[c#5 ~ ~ ~ ~ ~ ~ ~] [~ ~ ~ ~ ~ ~ ~ ~] [~ ~ ~ ~ g#4 ~ ~ ~] [~ ~ ~ ~ ~ ~ ~ ~]>")
      .s("wt_bell").lpf(3500)
      .delay(0.5).delaytime(0.375).delayfeedback(0.55)
      .room(0.8).gain(0.28).pan(0.58),
    note("<[c#3, e3, g#3, b3] [a2, c#3, e3, g#3]>").s("supersaw")
      .attack(1.5).release(4).lpf(isaw.range(300, 900).slow(8))
      .gain(0.26).room(0.75).roomsize(0.85)
  )
})