do
setcps (150/60/4)
let gMask = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute = (midiOn "^73" (mask "f*16"))
let gMute2 = (midiOn "^74" (mask "f*16"))
let gMute3 = (midiOn "^75" (mask "f*16"))
let gM1 = gMask . gMute
let gM2 = gMask . gMute2
let gM3 = gMask . gMute3
d1 $ gF1 $ gM2
  $ midiOn "^42" (<| "k k k <k <k*2 [~ k*<1 [4 2]>]>>")
  $ "[techno:0,808bd:2,909,kick:4]"
  # lpf 1200
  # gain 1
d2 $ gF1 $ gM1
  $ midiOn "^75" (ply 4)
  $ midiOn "^43" (<| "~ s*<1!7 2> ~ s*<1!3 2>")
  $ midiOff "^43" (<| "~ s")
  $ whenmod 4 3 (superimpose (("<e s>" <~) . (|* gain 0.9)))
  $ "[snare:2,snare:10]"
  # octer 0
  # octersub 0
  # octersubsub 0
  # pan 0.25
  -- # lpf 3000
d3 $ gF1 $ gM1
  $ midiOn "^76" (ply 2)
  $ sometimesBy "0 <0.5!3 2>" (mask "t(<12!3 2>,16)")
  $ midiOff ("^44"+"^76") ((mask "t(<8!3 [8!3 4]>,16,2)"))
  $ "hh:8*16"
  |* gain "1 1 0.95 1 0.96 1 0.975 1.1"
  # gain 1.8
  # pan 0.2
  # cut 3
d4 $ gF2
  $ midiOn "^89" (ply "1 1 1 <4!3 1>" . slice 4 ("0*<4!4 8!4 16!4 32!4>" + "<0 1 2 3>"))
  $ midiOn "^57" ((# freeze 0.2) . ply 4)
  $ loopAt 4
  $ "bass_nes:1"
  # cut 4
  # pan 0.3
  # octersubbus 42 (range 0 1.5 "^17")
  # squizbus 42 (range 0 1.5 "^33")
  # crushbus 41 (range 16 2.5 "^53")
  # gain 1
d5 $ gF3 $ gMute3
  $ midiOff "^58" (slice 4 "<0 0 0 0 1 1 1 <1 2>>*<4!7 8>")
  $ midiOn "^58" (
    slice 4 "<0 1 2 3> <0 1 0 3>*<1 2 1 4>" .
    (# n "41")
    )
  $ "fguitar:40"
  -- # crush 3.5
  -- # note "-24"
  # gain (1 - 0.24 * "^34")
  # crushbus 51 (range 16 2.5 "^54")
  # distortbus 52 (range 0 1.5 "^34")
  # lpfbus  53 (range 3000 200 "^34")
  # cut 5
  # pan 0.66
d7 $ gM3 $ gF3
  $ n ("<0 0 0 ~>" + "<41!10 42 42>")  # "fsynth"
  # crushbus 72 (range 16 2.05 "^35")
  # octersubbus 71 (range 0 3 "^55")
  # octersubsubbus 73 (range 0 3 "^55")
  # cut 7
d8 $ gF1 $ gM1
  $ midiOff "^60" (mask "t(4,8,1)") -- Techno drum mask
  $ chop 16
  $ loopAt 2
  $ midiOn "^92" (ply "<2!3 [4!3 2]>")
  $ midiOn "^36" (# "jungle_breaks:55")
  $ midiOn "^56" (# "jungle_breaks:45")
  $ "jungle_breaks:1"
  # cut 8
  # pan "0.8 0.2 0.8 [0.2 0.8]*2"