Chris Beckstrom’s
Sound Blog

Septembeat 11

, , ,

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)
glitchy pink, purple, and light blue shapes (made in Hydra)

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.


more sound blog posts