Ou Sont Donc Ses Amants
polka type thingy
- the sound currently playing the tune is terrible and I hate it
- I don’t love the pattern in the pad
// https://www.youtube.com/watch?v=R9psum6q4Ow// minimal/deep house
setcps(127 / 120 / 2);//[0@2 4@2 4 3 4 [3 2] [1@3 2]@2 3 4 2@2 1@2]!4
let tune = n(`[0@2 4@2 4 3 4 [3 2] [1@3 2]@2 3 4 2@2 1@20@2 4@2 4 3 4 [3 2] [1@3 2]@2 3 4 2@2 1@2 ]!2[0 2 1 [2 1] 0 2 1 2[3@3 2]@2 1 0 2@2 1@20 2 1 [2 1] 0 2 1 2[3@3 2]@2 1 0 2 1 0@2]!2`) .slow(16) .scale("D5:minor") .s("sawtooth") .adsr("0.005:0.25:0.5:0.015") .lpf(1000) .lpenv(2) .lpa(0.01) .lpd(0.25) .lps(0) .lpr(0) .attack(rand.range(0.003, 0.001));
let kick = s("bd:1!4").bank("RolandTR909").clip(0.5).gain(0.8);
let clap = s("[- cp]!2").bank("RolandTR909");
let hats = s("[- hh oh@2 - - oh hh] [- - oh@2 - - - oh hh]") .bank("RolandTR909") .clip(1) .gain(rand.range(0.5, 0.9));
let simplehats = s("[- hh hh:1@2 - - hh:1 hh] [- - hh:1@2 - - - hh:1 hh]") .bank("RolandTR909") .clip(1) .gain(perlin.range(0.2, 0.9));
// ------------------ BASSlet bassgroove = n( `<[- - 0 - - - - 0] [2 - 0 2 - 0 2 3] [- - -2 - - - - -3] <[-1 - -3 -1 - -3 -1 0] [-1 - 5 - 4 2 0 -] >>*2`,).scale("D1:minor");
let bass = bassgroove .someCyclesBy(0.1, (x) => x.transpose(12)) .s("sawtooth") .adsr("0.005:0.25:0:0.015") .lpf(300) .lpenv(2) .lpa(0.01) .lpd(0.25) .lps(0) .lpr(0) .unison(0);
let subbass = bassgroove.s("sine").gain(2);
// ------------------- CHORDS
let stabs = n(`<[0,1,2,3] [0,1,2,3,4,6]>`) .scale("D4:minor") .struct("<[- - x - - - - x] [- x -!6] [-!6 x - ] [-!3 x -!4]>*2") .degradeBy(0.7) .s("sine") .adsr("0.005:0.2:0:0.45") .lpf(170) .lpenv(4) .lpa(0.19) .lpd(1) .lps(1) .lpr(1.5) .unison(5) .detune(1) .room("0.2:1") .rfade(0.5); //.delay("0.5:0.5:0.3")
let pad = n(`<[<0,2,-2,-4>@7 -] [<-1,2,-2,-4>@7 -]>/4`) .scale("D4:minor") .s("supersaw") .adsr("0.5:1:1:.5") .detune(0.3) .lpf(500) .lpenv(3) .lpa(0.5) .lpd(1) .lps(0.7) .lpr(0.5) .room("0.2:.5") .rfade(0.5) .delay("0.5:0.5:0.1") .postgain(0.3);
let moarchord = n(`<[0,2,4,6,8,10] [0,2,4,6]? <0 4 3 2> 0? [0,2,4,6,8]?>*8`) .scale("D4:minor") .struct("[- x - x - - - x ] [- x? x -!5]") .sometimesBy(0.2, (x) => rev(x)) .s("sawtooth") .pan(rand.range(0.4, 0.6));
// ------------------- GO$: kick; // don't want to randomly drop the kick because of the groove thingy
$: stack( clap.mask("<1 1 1 0 1 1 1 1>/16"), // each step in this is a full run through the tune hats.mask("<0 1 1 0>/16"), simplehats.mask("<1 0 0 1>/16"), bass.mask("<1 1 1 [0 1] 1 1 0 1>/16"), subbass.mask("<1 1 1 0 [0 1] 1 0 1>/16"), stabs.mask("<0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 0>/8"), pad.mask("<0 1 1 0 0 1 1 0>/8"), moarchord.mask("<1 1 0 1 1 1 0 1>/16"), tune.mask("<1 1 1 [0 1] 1 1 1 1>/16"),) .early(rand.range(0.001, 0.0001)) .late(rand.range(0.001, 0.0001)); // quite a "strong groove"//.hush()