let n = note samples({ kick: 'Drums/Kicks/Kick_F.wav', closedHat: 'Drums/closedHiHats/Ghosthack CH 4.wav', snare: 'Drums/Snares/Snare - Clever.wav' }, 'https://cdn.lupinexmedia.de/samples/') // Part 1 let subBase1 = n(` [[e2 e3] [e1 e3] [a2 a3] [e2 a3] [g2 g3] [e2 e3] [a2 a3] [a1 a3]] [[d2 d3] [d1 d3] [c2 c3] [c1 c3] [g2 g3] [e2 e3] [a2 a3] [a1 a3]] `) let part1 = n(` [e5 [b4 c5] d5 [c5 b4] a4 [a4 c5] e5 [d5 c5] b4 [b4 c5] d5 e5 c5 a4 a4 ~] [d5 [d5 f5] a5 [g5 f5] e5 [c5] e5 [d5 c5] b4 [b4 c5] d5 e5 c5 a4 a4 ~] `) // Part 2 let subBase2 = n(` [[a2 a3] [e2 a3] [g2 g3] [d2 g3] [f2 f3] [c2 f3] [e2 e3] [a3 g#3]] [[a2 a3] [e2 a3] [g2 g3] [d2 g3] [f2 f3] [c2 f3] [e2 e3] [a3 g#3]] `) let part2 = n(` [e5 c5 d5 b4 c5 a4 g#4 b4] [e5 c5 d5 b4 [c5 e5] a5 g#5 ~]`) let drums = slider(1,0,1) const part1Pattern = seq(part1) .s("saw") .room(.3) .gain(.6) .lpf(750) .sustain(.4) .release(.5) .stack( seq(subBase1) .s("sawtooth") .lpf(400) .gain(.9), seq(subBase1) .s("triangle") .lpf(400) .gain(.7), s("kick").fast(16).cutoff(1000).velocity(drums).gain(.5), s("closedHat").late(.5).fast(16).velocity(drums).gain(.1), s("snare").late(.5).fast(8).cutoff(1500).velocity(drums) ) const part2Pattern = seq(part2) .s("gm_string_ensemble_1") .room(.8) .gain(.6) .lpf(750) .sustain(4) .release(1.3) .stack( seq(subBase2) .s("sawtooth") .lpf(400) .gain(.9), seq(subBase2) .s("triangle") .lpf(400) .gain(.7), s("kick").fast(16).cutoff(1000).velocity(drums).gain(.5), s("closedHat").late(.5).fast(16).velocity(drums).gain(.1), s("snare").late(.5).fast(8).cutoff(1500).velocity(drums) ) const song = arrange( [2, part1Pattern], [1, part2Pattern] ) song.cpm(5)