// "Pyramid Song (wip)" // song @by Radiohead // script @by eefano setcps(104/60/4) const split = register('split', (deflt, callback, pat) => callback(deflt.map((d,i)=> pat.withValue((v)=>{ const isobj = v.value !== undefined; const value = isobj ? v.value : v; const result = Array.isArray(value)?(i/8".pickRestart( {i1:`<[[X:.6 X:.8]@3 Y:.5@2 [Z:.5 Z:.5]@3]>/2`, i2: `<[[Z:.4 Y:.4]@3 Y:.3@2 [J:.6 J:.9]@3]>/2`, i3:`<[[K:.8 X:.6]@3 Y:.5@2 [Z:.5 Z:.5]@3]>/2`, i4: `<[[Z:.4 Y:.4]@3 Y:.4@2 [Y:.4 Y:.7]@3]>/2`, ooooh:`<[[X X]@3 Y@2 [Z Z]@3] [[Z Y]@3 Y@2 [X X]@3] [[X X]@3 Y@2 [Z Z]@3] [[Z Y]@3 Y@2 [Y Y]@3]>/2`, v1:`<[[X X]@3 Y@2 [Z Z]@3] [[Z Y]@3 Y@2 [X X]@3]>/2`, v2:`<[[V V]@3 W@2 [W W]@3] [[Y Y]@3 Y@2 [Y Y]@3]>/2`, v3:`<[[V V]@3 W@2 [W W]@3] [[Y Y]@3 X@2 [X X]@3]>/2`, end:`/8`, }).split([0,.5],(x)=>x[0].pickOut(chr).velocity(x[1])).note().piano().gain(0.8).room(.6) ooooh: "<~ 0 ~@4 0@2 ~@8>/8".pickRestart([ "*4" ]).split([0,0],(x)=>x[0].penv(x[1])).patt(0.04).s("triangle").attack(.08).release(.08).note().vmod(.1).vib(5).gain(0.3).lpf(2000).room(1.5) drums: "<~@6 [~@15 0@15 1@2] [2,3]@8 3>/8".pick([ "<[bd,rd] ~ [~ sf*3] [bd,rd] ~ [~ sf*3] [bd,rd] ~ ~ [~ sf*3] [bd,rd] ~ [~ sf*3] [bd,rd] ~ [~ sf*3]>*8", "<[sd sf bd] [sf sd sd]>*4", "<[rd*4],[<~ ~ ~ bd ~ bd ~ ~ bd ~ bd ~ ~ bd ~ bd> <~!14 sf!2> <~ sd bd ~ sd ~ sd bd ~ sd ~ ~ sd ~ sd sd>]*4>", "/8", ]).pickOut({ bd: s('bd').bank('Linn9000').lpf(1000), sd: s('sd').bank('RolandMT32').velocity(.5), sf: s('sd').bank('RolandMT32').velocity(.2), rd: s('rd').bank('Linn9000').velocity(0.3).hpf(8000), mt: s('mt').bank('RolandMT32'), lt: s('lt').bank('RolandMT32'), cr: s('cr').bank('Linn9000').speed(0.4).velocity(0.3).hpf(4000), }).room(.2).gain(0.5)