setcps 1

hush

-- Just like discrete patterns, you can control the speed
d1 $ sound "bd*16" # pan (slow 8 $ saw)
d1 $ sound "bd*8 sn*8" # pan (density 1.75 $ tri)
d1 $ sound "bd*8 sn*8" # speed (density 2 $ tri)

-- combine continuous patterns
d1 $ sound "bd*16" # pan (slowcat [sine, saw, square, tri])

-- scale them with range
d1 $ sound "bd*8 sn*8" # speed (range 2 4 $ tri)
d1 $ sound "bd*8 sn*8" # speed (slow 4 $ range 1 3 $ tri)

-- scale to negative values
d1 $ sound "bd*8 sn*8" # speed (range (-1.5) (-0.5) $ tri)

-- slow low pass filter cutoff
d1 $ s "hh*32" # cutoff (range 300 1000 $ slow 2 $ sine) # resonance "0.4"

-- polymeters
d1 $ sound "{bd hh sn cp, arpy bass2 drum notes can}"
d1 $ sound "{arpy bass2 drum notes can, bd hh sn cp}"

-- polymeter rhythm without base \o/
d1 $ sound "{~ ~ ~ ~, arpy bass2 drum notes can,bd cp hh}"
-- but simplier, use %number of notes:
d1 $ sound "{arpy bass2 drum notes can}%4"

-- shifting time
d1 $ every 3 (0.25 <~) $ sound "bd*2 cp*2 hh sn"
d1 $ every 3 (0.25 ~>) $ sound "bd*2 cp*2 hh sn"
d1 $ every 3 (0.0625 <~) $ sound "bd*2 cp*2 hh sn"
d1 $ every 3 (1000 ~>) $ sound "bd*2 cp*2 hh sn"
d1 $ every 3 (1000.125 ~>) $ sound "bd*2 cp*2 hh sn"
d1 $ "[0 0.25]/4" <~ (sound "bd*2 cp*2 hh sn")

-- RANDOMNESS
d1 $ sound "arpy*4" # pan (rand)
d1 $ sound "arpy*4" # pan (range 0.25 0.75 $ rand)
d1 $ s "arpy*8" # n (irand 30)

d1 $ sound "bd? sd? sd? sd?"
d1 $ sound "bd*16?"
d1 $ sound "bd sn? cp hh?"
d1 $ sound "[bd sn cp hh]?"

-- append two patterns in alternating cycle
 d1 $ append (sound "bd*2 sn") (sound "arpy jvbass*2")
 d1 $ fastAppend (sound "bd*2 sn") (sound "arpy jvbass*2")
