43 lines
1.9 KiB
JavaScript
43 lines
1.9 KiB
JavaScript
// "Pump Up The Jam" - Work In Progress
|
|
// song @by Technotronic
|
|
// script @by eefano
|
|
const pickRestart = register('pickRestart', (arr, pat) => pat.pick(arr.map((x)=>x.restart(pat.collect().fmap(v=>v+1)))))
|
|
const as = register('as', (mapping, pat) => { mapping = Array.isArray(mapping) ? mapping : [mapping];
|
|
return pat.fmap((v) => { v = Array.isArray(v) ? v : [v, 0];
|
|
return Object.fromEntries(mapping.map((prop, i) => [prop, v[i]])); }); });
|
|
stack("~"
|
|
,"<~@8 0@4 1@4 ~@8>".pickRestart(
|
|
["[u [u e] a [u i] [u ~] [a u] [i a] [o@3 i] ~ [a e] [a i] [o@3 i] [~ u@2 a] [e e] [o i] [o@3 i]]/4"
|
|
,"~ [u i] [u ~ ~ a] [i i@2 o]"
|
|
]).vowel().s("z_sawtooth").clip(0.8).gain(1.4)
|
|
|
|
,"<~@16 0@8>".pickRestart(
|
|
["[ ~@2 4 [5:1 ~] ~ [~ 0] [3:-1@5 3:1@2 2]@2 ~ [4@3:1 3 3@3 2 2@3 3 4:1@3 0 0@2 2:2@2]@5 [~ ~ 0@2 ~ 0@2 -2:-3]@2 ]/4"
|
|
]).as("n:penv").scale("c4:minor").clip(0.90).patt("0.15").s("square").delay(0.3).dfb(0.3).dt(60/128).gain(0.7)
|
|
|
|
,"<0@32>".pickRestart(
|
|
["[~@13 [[~@3 [0,-2,-4]@2 ~]@3 [0,-2,-4] [1,-1,-3]!2]@3 ]/4"
|
|
]).scale("c4:minor").note().clip(0.7).s("z_sawtooth").color("red").adsr("0.07:.1:0.6:0.1").gain(0.5)
|
|
|
|
,"<0@12 0 1 ~@2 3@8>".pickRestart(
|
|
["[0 ~@23]/2"
|
|
,"~@2 [~ [e2 ~]] [[0 2] ~]"
|
|
,"[0 ~ ~ 0 ~ ~ 0 ~] <[[~ [0 1]] [2 ~]] ~>"
|
|
]).scale("c2:minor").note().clip(0.9)
|
|
.layer(x=>x.s("z_sawtooth").delay(0.6).dfb(0.5).dt(60/125*3/4).pan(0.55).gain(0.8)
|
|
,x=>x.s("z_square").lpf(300).lpe(2).lpa(-1.5).lpd(0.1).lpr(0.05).pan(0.45).gain(1)).color("green")
|
|
|
|
,"<0@4 [0,1]@12 [0,1,2]@4 [0,1,2,3]@4>".pickRestart(
|
|
[stack(s("oh*16").pan(0.45).gain("[0.08 0.16]*4").release(0),s("hh*4").pan(0.7).gain(0.20))
|
|
,s("bd*4").lpf(150).gain(1)
|
|
,s("[~ cp]*2").gain(0.5).pan(0.25)
|
|
,s("[~ rd]*4").gain(0.15).release(0).hpf(1500).pan(0.75)
|
|
,s("[~ sd!3]!4 [sd*4]!4").slow(2).gain(run(32).slow(2).mul(1/31).add(0.1).mul(0.4))
|
|
,s("cr").gain(0.2)
|
|
,s("bd").gain(0.8)
|
|
]).bank("RolandTR909").color("yellow").velocity(0.7)
|
|
|
|
).cpm(124.5/4).room(0.3)
|
|
|
|
|