Skip to content

Instantly share code, notes, and snippets.

@kindohm
Last active November 19, 2019 22:23
Show Gist options
  • Select an option

  • Save kindohm/976be1669807fcbfaaf444c2d97466b1 to your computer and use it in GitHub Desktop.

Select an option

Save kindohm/976be1669807fcbfaaf444c2d97466b1 to your computer and use it in GitHub Desktop.
do
let pat = "<2 4 2 4 4 6 2 1 1>"
times = "<10 15 20>"
plyFunc = (# gain 0.7)
period = 0.4
superKick = "<0 0 1 1 1 1>"
superHat = "<0 1 0 1 1>"
muteKick = id
muteHat = id
synthFilter = (range 20 80 $ slow 30 sine)
bendUp = (range 64 127 $ slow 25 sine)
bendDown = (range 64 127 $ slow 35 sine)
kickHold = (shiftBy 33 $ choose [0,127])
revFreq = 0.3
d1
$ cpsTri 0.5 1.25 3
$ cpsDisc 0.75 1.25
$ (# cps (pat * 0.5))
$ (|* gain 1.2)
$ someCyclesBy revFreq rev
$ shift
$ someCyclesBy period (within (0.5,1) (const $ struct "~ 1" $ pad8))
$ stack [
(|+ note (discretise (1/2) $ shiftBy 489 $ choose [0,-12,-24]))
$ (# gain 0.8) $ plyWith ((times/) $ pat) plyFunc $ superimpose (# pad2) $ pad1 -- notes
, muteKick $ plyWith ((times/) $ pat) plyFunc $ every superKick (superimpose (# pad4)) $ pad3 -- kicks
, muteHat $ plyWith ((times/) $ pat) plyFunc $ every superHat (superimpose (# pad12)) $ pad11 -- hats
, pad7
, fast 4 $ ccn 40 # ccv synthFilter
, fast 4 $ ccn 35 # ccv bendUp
, fast 4 $ ccn 36 # ccv bendDown
, fast 4 $ ccn 37 # ccv kickHold
, normDelay
, scene (randcat [0,1,2])
]
# rytm
let
shift p = (1024 ~>) $ p
shift' num p = (num ~>) $ p
shiftBy = shift'
shrand num = shiftBy num $ rand
gtfo p = (const $ s "~") $ p
g = gtfo
one p = off (0.0625) id $ p
roll howOften p = sometimesBy howOften (stutWith 2 (0.0625*3) id) $ shift $ p
rollBy nums howOften p = sometimesBy howOften (stutWith nums (0.0625*3) id) $ shift $ p
rollSlow howOften p = sometimesBy howOften (stutWith 2 (0.125*3) id) $ shift $ p
stdnote = note "-24"
rytm = s "midi"
pad1 = midichan 0 # stdnote # rytm
pad2 = midichan 1 # stdnote # rytm
pad3 = midichan 2 # stdnote # rytm
pad4 = midichan 3 # stdnote # rytm
pad5 = midichan 4 # stdnote # rytm
pad6 = midichan 5 # stdnote # rytm
pad7 = midichan 6 # stdnote # rytm
pad8 = midichan 7 # stdnote # rytm
pad9 = midichan 8 # stdnote # rytm
pad10 = midichan 9 # stdnote # rytm
pad11 = midichan 10 # stdnote # rytm
pad12 = midichan 11 # stdnote # rytm
unfollowedChan = midichan 15
discRange a b = (discretise 1 $ range a b $ shrand 10003)
discrange = discRange
triRange a b c = (range a b $ slow c tri)
trirange = triRange
cpsDisc a b = (|* cps (discRange a b))
cpsRange a b c = (|* cps (triRange a b c))
cpsTri = cpsRange
randDelay = stack [ slow 2.13 $ ccn 45 # ccv (shiftBy 5544 $ choose [0,127]) -- d
, slow 1.13 $ ccn 46 # ccv (range 0 127 $ shrand 9988) -- dt
, slow 3.1 $ ccn 47 # ccv (range 0 127 $ shrand 19988) ] # s "midi"
normDelay = stack [ ccn 45 # ccv 0, ccn 46 # ccv 0, ccn 47 # ccv 0 ] # s "midi"
scene x = ccn 92 # ccv x
(
SuperDirt.postBadValues = false;
s.options.device_("JackRouter");
s.options.numBuffers = 1024 * 16;
s.options.memSize = 8192 * 16;
s.options.maxNodes = 1024 * 64;
s.options.numOutputBusChannels = 4;
s.options.numInputBusChannels = 0;
s.waitForBoot {
~dirt = SuperDirt(2, s);
~dirt.loadSoundFiles("~/code/in-situ/samples/*");
s.sync;
~dirt.start(57120, [0, 2]);
MIDIClient.init;
~midiOut = MIDIOut.newByName("Scarlett 2i4 USB", "Scarlett 2i4 USB");
~midiOut.latency = 0;
~dirt.soundLibrary.addMIDI(\midi, ~midiOut);
};
s.latency = 0.3;
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment