Pushing my computer to the limit! The Tidalcycles code I wrote is apparently just at the edge of what my (gaming!) laptop can handle. Perhaps I need to adjust some settings. And/or embrace the glitch
In the spirit of “show us your code” – “Code should be seen as well as heard, underlying algorithms viewed as well as their visual outcome.” (see Toplap’s manifesto here). This code is messy but it’s mine (except for the awesome “rip” function I borrowed/stole from Kindohm. Thanks Kindohm!!)
Tidalcycles code:
bpm 120 d1 $ st "[~ t ~ t]" $ s "sd:3" # sus 0.07 # gain 0.8 hush do let chords = "[<c'min11'8 c'min11'8 c'min11'8 <b4'maj9'8 a4'maj9'8>>]" let verb = dry 0.8 # room 0.3 # size 0.8 let del x y = delay 0.1 # delaytime x # delayfb y let phaser = phaserrate 0.1 # phaserdepth 0.2 p "c" $ (102 ~>) $ sb 0.09 (|+ n 12) $ stack [ -- chords st "[t*4]" $ n chords # s "superpiano" # sus 0.2 # lpf 400 # pan 0.2, ((1/12) ~>) $ st "<t*4 t*4 t*5 t*6 t*3 t*9 t*5 t*4 t*10>" $ n chords # s "superpiano" # sus 0.1 # lpf 300 # pan 0.6 ] |* gain 0.8 # crush 5 |* sustain 0.8 # sus 0.1 # del (fast 16 $ range 0.01 0.1 $ perlin) (choose[0.9,0.2,0.4,0.6]) # verb # phaser do let something = 4 let somethingelse = 420 -- new functions let rect x y = stutWith x y (# gain 0.7) let randpan = (fast 0.8 $ pan (perlin)) let rip a b p = within (0.25, 0.75) (slow 2 . rev . stut 8 a b ) p -- thanks kindohm! let blurbdown a = within (0.25, 0.75) (slow 2 . rev . stutWith 8 a ( (|* speed (-1.9)) )) let blurbup a = within (0.25, 0.75) (slow 2 . stutWith 8 a (|* speed (1.4)) ) let mess = linger (1/30) . (|* gain 1.02) let phaser = phaserrate 0.1 # phaserdepth 0.2 let vintage = coarse (range 2 3 $ perlin) # crush (range 8 16 $ perlin) let m = shape 0.4 # amp 0.8 let del x y = delay 0.1 # delaytime x # delayfb y p "s" -- $ every 12 (within (0.25,0.75) (bite 4 "{0 0 0 0}%4")) -- $ foldEvery [21,19] (within (0.5,1) (bite 4 "{0 3 1 1}%4")) $ every 15 (stutWith 12 (1/50) (|* speed 0.9) . ( trunc 0.25) . (# hpf 200)) $ sb 0.1 (linger (1/16)) $ every 10 (rip 0.2 (1/55)) $ every 11 (rip 0.2 (1/55)) $ every 17 (within (0.25,0.8) (blurbdown (1/10))) $ whenmod 13 12 (within (0.25,0.75) (striate (choose[2,3,4,5,8])) . (|* gain 0.9) . (|- speed (choose[0,0,0.3,0.5]))) $ every 14 (within (0,0.75) (striate (choose[2,10,20]) . (rev)) . (|* gain 0.9)) $ whenmod 18 16 (# del (range 0.001 0.01 $ fast 16 $ rand) 0.9) $ whenmod 6 5 (db 0.2) $ foldEvery [9,18] (scramble 4) -- $ db "<0 0 0.4 0.3>/8" $ stack [ (14 ~>) $ sb 0.12 (rev . rip 0.2 (1/50)) $ st "{t~~}%16" $ s "kicks:42", (9~>) $ db "<1 1 0 0 0 0>/8" $ st "{t~~t~}%16" $ s "kicks:43", (11 ~>) $ db "<1 1 1 1 0 1 1 0 1 1>/4" $ st "[[t~~<t~~~~t~~~t~~~~>] ~ ~ ~]" $ s "db:89" # sus 0.07, (12 ~>) $ sb 0.4 (rev . stut 9 0.2 (choose[(1/32),(1/64)])) $ st "[~ t [~~~] t]" $ s "sd:3" # sus 0.07 # gain 0.9, db "<1 1 1 0 1 1 0 0>/8" $ roll $ s "db:29" # sus 0.07 # lpf (fast 16 $ range 600 10000 $ perlin) # gain 0.6, -- -st "[~~~t ~~t~ ~~~t ~~t~]" $ s "db:11" # sus 0.07 # gain 0.8, st "{t~~}%16" $ s "databent:5" # sus 0.09 # gain 0.7 # speed 0.5, db "<1 0 0>/4" $ st "{t~~t}%16" $ s "databent:12" # sus 0.07 # gain 0.64 # hpf 500 # speed 0.5 ] # dry 0.8 # room 0.1 # size 0.9 -------------------------------------------------- do let something = 4 let somethingelse = 420 -- new functions let rect x y = stutWith x y (# gain 0.7) let buzzy x = chop x . (#crush 10) let slicey = fast 16 . striate (choose[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]) . (# hpf 200) . (# gain 0.85) let randpan = (fast 0.8 $ pan (perlin)) let rip a b p = within (0.25, 0.75) (slow 2 . rev . stut 8 a b ) p -- thanks kindohm! let blurbdown a = within (0.25, 0.75) (slow 2 . rev . stutWith 8 a ( (|* speed (-1.9)) )) let blurbup a = within (0.25, 0.75) (slow 2 . stutWith 8 a (|* speed (1.4)) ) let mess = linger (1/30) . (|* gain 1.02) let phaser = phaserrate 0.1 # phaserdepth 0.2 let vintage = coarse (range 2 3 $ perlin) # crush (range 8 16 $ perlin) let m = shape 0.4 # amp 0.8 let del x y = delay 0.1 # delaytime x # delayfb y -- let chords = "[<c'min6'8 c'min'8 c'min6'8 <b4'maj9'8 a4'maj9'8>>]" -- let chords = "[<c'min6'8 c'min'8>]" -- let chords = "c'min9'8" let verb = dry 0.8 # room 0.2 # size 0.6 p "s" $ every 3 (within (0,0.5) (stut 6 0.2 (1/12)) . (within (0.5,1) (db 1))) -- $ sb 0.1 (striate 6 . (|* gain 0.9)) $ every 11 (blurbdown (1/48) . (|* gain 0.9)) $ every 9 (rip 0.2 (1/48)) $ sb (fast 3 $ range 0 0.5 $ rand) (stut 8 0.4 (1/32)) $ stack [ (12 ~>) $ sb 0.23 (stut 2 0.4 (1/6)) $ st "[t~~t? ~~~t ~~~t?]" $ s "kicks:32" # shape 0.7 # gain 0.9 # sustain 0.2 # cut 8 # speed 0.98, stack [ -- snare (13 ~>) $ sb 0.2(scramble 6) $ st "[[~<t~~~~~t~~~>~~] t [~~~<t t t*2 t t>]]" $ s "mt500" # speed 1.2 # pan 0.6 # hpf 300 # gain 1.4 # crush 7, (13 ~>) $ st "[~ t [~~~~]]" $ s "sd:8" # speed 1 # pan 0.6 # gain 1 # hpf 400 # crush 8 ], -- (99 ~>) $ fast 2 $ sb 0.24 (stut 4 0.2 (1/32)) $ db 0.1 $ sb 0.1 (ply 2) $ st "[t t t t]" $ s "mt500:1" # sus 0.03 # gain 0.9 # speed 1.2 # pan 0.4 (99 ~>) $ st "[t*6]" $ s "mt500:1" # sus (fast 6 $ range 0.01 0.1 $ perlin) # gain 0.6 # speed 1.2 # pan 0.4 # crush 7 -- (23 ~>) $ st "t*6" $ s "db:9" # sustain 0.01 # hpf 900 # speed 0.8 # gain 0.8 ] # verb
Hydra code:
a.setBins(6) a.setSmooth(0.8) a.hide() a.setCutoff(0.2) osc(2,0.9, () => (a.fft[0]+2)).out(o1) shape(2).modulate(noise(0.5,0.9)).scale(0.9).repeat(2).modulate(o2).rotate(1.75).out(o2) src(o0).scale([0.5,1,2,1]).color(0,0,1).diff(shape(3,0.4) ).scroll( (a.fft[0]*30) ).rotate(-0.1,-0.2).modulate(o3, (a.fft[0]+2) ).out(o3) shape( () => (a.fft[0]+2)).color( (a.fft[0]+3), 1 ,1).repeat().scale( (a.fft[0]+1) ).modulate(noise(0.5,0.1)).modulate(src(o0).rotate(0.2,0.1)).modulate(noise(0.1,0.2,0.1)).modulate(src(o1).scale(2)).diff(o2).blend(src(o0)).blend(src(o3)).modulate(src(o3)).scale([1,1,1,0.5,0.75,1,1,1.23,1.25,1.5,1.25,1]).out() render(o0)