Functions that change patterns to do wacky things.
Rotates a pattern either to the left of the right.
| let ghost'' a f p = superimpose (((a/2 + a*2) ~>) . f) $ superimpose (((a + a/2) ~>) . f) $ p | |
| ghost' a p = ghost'' a ((|*| gain "0.7") . (|=| end "0.2") . (|*| speed "1.25")) p | |
| ghost p = ghost' 0.125 p | |
| cps 0.5 | |
| d1 $ ghost $ sound "sd(3,8)" | |
| d1 $ ghost' (-0.375) $ sound "sd(3,8)" | |
| d1 $ ghost'' (0.125) ((|*| gain "0.7") . (|+| accelerate "-2")) $ sound "bass2(3,8)" |
| m $ slow 2 $ (|+| note "[45 33 57]*4") $ note "0*16?" | |
| |+| dur (scale 0.05 0.2 $ slow 1.9666 sine1) | |
| |+| rlpcutoff (scale 0 1 $ density 1.01 sine1) | |
| |+| rhpcutoff (scale 0 1 $ density 1.132 sine1) | |
| |+| rfilteratk (scale 0 0.5 $ slow 1.2 sine1) | |
| |+| rfilterdecay (scale 0.05 0.5 $ density 1.5181 sine1) | |
| |+| rfiltersustain (scale 0.1 1 $ density 1.277777 sine1) | |
| |+| rfilterrelease (scale 0.05 0.5 $ slow 1.523 sine1) | |
| |+| rres (scale 0 0.7 $ density 1.313 sine1) | |
| |+| rfilterenv (scale 0.1 0.9 $ density 1.111 sine1) |
| -- eval the functions below first, then you can do this: | |
| midiInstrument $ (|+| note "45") $ mel m9 5 "0*8" | |
| -- above, plays the first 5 notes of a m9 arpeggio, over a pattern of eighth notes, | |
| -- starting at MIDI note #45 | |
| -- the "mel" function below relies on a "scramble" function which I don't | |
| -- really like. I'm not good enough at haskell to know to how pick | |
| -- random values out of the scale/arpeggio. |
| { | |
| "origin" : ["d1 $#prestack# stack #startbracket# \n #stackitems# #endbracket# "], | |
| "prestack" : ["", " #transformblock# \n "], | |
| "stackitems" :["#stackitem#"], | |
| "stackitem" : ["#transformblock##sound#", "#transformblock##sound#, \n #stackitem#"], | |
| "startbracket" : ["["], | |
| "endbracket" : ["]"], | |
| "sound" : ["#soundtype# |=| cut \"#cutint#\"", "#soundtype# #effects# |=| cut \"#cutint#\""], | |
| "soundtype" : ["(sound $ samples \"#soundpatterns#\" #samplespattern#)", "(sound $ samples \"#soundpatterns#\" #samplespattern#)", "(sound $ samples \"#soundpatterns#\" #samplespattern#)", "(sound $ samples \"#breakpatterns#\" #samplespattern#) |=| unit \"c\" |=| speed \"8\""], | |
| "soundpatterns" : ["#s#", "#s# #s#", "#s# #s# #s# #s#", "{#s# #s# #s#}%#factor2#", "{#s# #s# #s# #s# #s#}%#factor2#", "{#s# #s# #s# #s# #s# #s# #s#}%#factor2#"], |
| module Sound.Tidal.MidiRack3 where | |
| import Sound.Tidal.Params | |
| import Sound.Tidal.MIDI.Control | |
| rackController :: ControllerShape | |
| rackController = ControllerShape { params = [ | |
| mCC kvoice_p 40, | |
| mCC kdetune_p 42 | |
| ], |
| module Sound.Tidal.MidiRack3 where | |
| import Sound.Tidal.Params | |
| import Sound.Tidal.MIDI.Control | |
| (perf1, perf1_p) = pF "perf1" (Just 0.5) | |
| (perf2, perf2_p) = pF "perf2" (Just 0.5) | |
| (tun, tun_p) = pF "tun" (Just 0.5) | |
| rackController :: ControllerShape |
| let rip a b p = within (0.25, 0.75) (slow 2 . rev . stut 8 a b) p | |
| rip' a b c d e p = within (a, b) (slow 2 . rev . stut c d e) p | |
| spike p = ((|+| delaytime (scale 0.001 0.3 $ slow 7.1 sine1)) . (|+| delayfeedback (scale 0.7 0.99 $ slow 6.71 sine1))) $ p | |
| spike' p = (|+| delay "0.3") $ spike $ p | |
| ghost'' a f p = superimpose (((a/2 + a*2) ~>) . f) $ superimpose (((a + a/2) ~>) . f) $ p | |
| ghost' a p = ghost'' a ((|*| gain "0.7") . (|=| end "0.2") . (|*| speed "1.25")) p | |
| ghost p = ghost' 0.125 p | |
| jit start amount p = within (start, (start + 0.5)) (trunc (amount)) p | |
| gtfo p = (const $ sound "~") p | |
| shift p = (1024 <~) p |
| Time | Artist | Title | |
| ================================================================================= | |
| 00:00 | Second Woman | 100407jd7 | |
| 04:06 | Two Human | Two Human | |
| 07:12 | Joanne | fa 1l | |
| 10:02 | Kindohm | 002 | |
| 14:07 | Mathtrap | 25 34 38 28 36 30 44 22 40 | |
| 16:39 | Bataille Solaire | Hyper Drive | |
| 20:12 | Grant Muller | Black Cat, White Pause | |
| 22:30 | Calum Gunn | Fixed |
| bps (150/120) | |
| let prog = (|+| note "{0 0 0 2 2}%1") | |
| rep' n p = stut' (n-1) (0.125/2*3) (|*| gain "1") $ p | |
| -- Erebus, oscillators tuned to a 5th | |
| erebus $ prog $ whenmod 32 22 (foldEvery [2,3,4] (0.25 <~)) $ | |
| (|+| note (choose [0,-12,12,24])) $ (|+| note "-7") $ note "{0 ~ ~ 0 ~ ~ 0 ~ ~ 0 ~ ~ 0 ~ ~ 0 ~ ~ ~}%16" | |
| |=| modwheel (rand) |