TYPESAFE JEV — drill'n'bass for a well-typed agent vox: real 22 Jump Street "my name is jeff" + a SAPI robot saying "type safe jev"

3setcps(170/60/4)
4await samples('github:tidalcycles/dirt-samples')

vox: the repo's samples/ folder, served with the site (see README)

6await samples('jev-samples/strudel.json')

16-cycle form: intro | enter | drill | everything

9const intro = "<1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0>"
10const body  = "<0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0>"
11const drill = "<0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0>"
12const late  = "<0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1>"
14stack(
15  // detuned Avril-14th-ish pad, always there
16  note("<[c3,eb3,g3,bb3] [ab2,c3,eb3,g3] [f2,ab2,c3,eb3] [g2,b2,d3,f3]>")
17    .s("supersaw").detune(.35).attack(.6).release(2)
18    .lpf(sine.range(500,2200).slow(16)).room(.8).size(.9).gain(.28),

music-box lead, wonky and slightly out of tune

21  n("<[0 2 4 ~ 7 ~ 4 2] [~ 0 3 ~ 5 3 ~ 2] [4 ~ 2 0 ~ -1 0 ~] [2 4 ~ 6 ~ 4 ~ 2]>")
22    .scale("C4:minor").s("triangle").decay(.25).sustain(0)
23    .detune(sine.range(-.15,.15).slow(7)).delay(.4).delaytime(.375).delayfeedback(.45)
24    .room(.5).gain(.35).degradeBy(.15),

intro vox: huge washed-out "type safe jev"

27  s("<tsjev ~ tsjev ~>").speed(.8).room(.95).size(.95)
28    .delay(.6).delaytime(.5).delayfeedback(.55).gain(1.1).mask(intro),

chopped amen, ratchets and reverse edits

31  n("0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15")
32    .s("amencutup").sometimesBy(.3, x=>x.ply("<2 4 3>"))
33    .sometimesBy(.12, x=>x.speed(-1)).sometimesBy(.1, x=>x.speed(2))
34    .gain(.9).mask(body),

drill kicks

37  s("bd:3").struct("x ~ ~ ~ ~ ~ x ~ ~ ~ x ~ ~ x ~ ~").gain(1.1).mask(body),

acid squelch

40  note("c2 c3 c2 eb2 c2 g2 [c2 c2] bb1").fast(2).s("sawtooth")
41    .lpf(sine.range(250,3200).slow(4)).lpq(18).decay(.14).sustain(0)
42    .distort(1.5).gain(.35).mask(body),

call-and-response: "my name is jeff" / "my name is jev" / "type safe ... jev"

45  s("<[jeff ~ ~ ~] [mnjev ~ ~ ~] [jeff ~ ~ ~] [~ ts ~ jev]>")
46    .gain(1.25).room(.25).mask(body),

"my my my name is jeff" stutter

49  s("[jeff jeff jeff] jeff").end("<[.12 .12 .12] 1>").cut(1)
50    .speed("<1 1 .75 1.5>").gain(1.2).mask(drill).degradeBy(.2),

glitch confetti: jev shredded to 16ths, flung around the stereo field

53  s("jev*16").end(.5).speed("<1 1.5 2 -1>").sometimesBy(.4, x=>x.speed(4))
54    .degradeBy(.45).pan(rand).hpf(600).gain(.7).mask(drill),

finale: pitched-down TYPE SAFE JEV slamming every bar

57  s("tsjev ~").speed("<.6 .5>").distort(2).lpf(2500).gain(1).mask(late)
58)