@radiodario
(Thats why algorithms are sometimes harder to notice than chainsaws)
Colombia
Sheffield
Birmingham
Manchester
d1 $ sound "can"
~/dirt/samples/can
d1 $ sound "can:1"
flick sid can metal future gabba sn mouth co gretsch mt arp h cp cr newnotes bass crow hc tabla bass0 hh bass1 bass2 oc bass3 ho odx diphone2 house off ht tink perc bd industrial pluck trump printshort jazz voodoo birds3 procshort blip drum jvbass psr wobble drumtraks koy rave bottle kurt latibro rm sax lighter lt arpy feel less stab ul
d1 $ silence
hush
d1 $ sound "can:1" |+| vowel "a"
vowel is a vowel-like formant filter
"a e i o u"
d1 $ sound "can:1" |+| speed "2"
d1 $ sound "can:1" |+| speed "0.5"
d1 $ sound "can:1" |+| speed "-1"
d1 $ sound "can:1"
|+| speed "2"
|+| vowel "a"
|+| resonance "0.5"
|+| cutoff "0.25"
d1 $ sound "bd*16" |+| pan sine1
sine1 goes from 0 to 1 and back again.
there's also tri1, saw1 and square1
if you remove the zero then they go from -1 to 1
# a kick and a snare
d1 $ sound "bd sn"
# kick clap
d1 $ sound "bd ~ bd cp"
# this long aphex-tween like sequence
d1 $ sound "bd bd hh hh bd bd hh*4 hh bd bd hh"
# it's just as long as this one
d1 $ sound "hh hh"
"blue orange green"
"blue yellow orange green"
d1 $ sound "drum drum:1 ~"
# 7-step pattern!
d1 $ sound "drum ~ can ~ ~ cp ~"
d1 $ sound "bd [hh hh hh] bd cp"
"blue green [yellow purple black] orange"
"[blue green] [yellow purple black]"
d1 $ sound "drum drum [can [can:4 can:6 can:3] can:5] drum"
"orange purple [red [green brown] yellow] pink"
d1 $ sound "drum [can cp, can bd can:5]"
"[orange purple, red green pink]"
d1 $ sound "{can can:2, can bd can:5}"
curly braces align sounds and roll over patterns:
"[orange purple, red green pink]"
density 3 $ "{orange purple, red green pink}
# this
d1 $ sound "bd [hh hh hh]"
# is the same as
d1 $ sound "bd hh*3"
d1 $ sound "bd can*32 bd gabba*4"
# kick, clap every 2
d1 $ sound "bd cp/2"
# kick, clap maybe?
d1 $ sound "bd cp?"
d1 $ sound "can(5,8)"
d1 $ sound "bd"
d1 $ sound "bd sn"
d1 (sound "bd sn")
and gives it to the left
d1 $ stack [
sound "bd ~ bd ~",
sound "hh ch hh cp",
sound "casio casio:1 casio:2*2"
]
you can have different effects on each "layer"
d1 $ cat [
sound "bd ~ bd ~",
sound "hh ch hh cp",
sound "casio casio:1 casio:2*2"
]
d1 $ slow 2 $ sound "bd ~ sn bd ~ [~ bd]/2 [sn [~ bd]/2] ~"
d1 $ density 2 $ sound "bd ~ sn bd ~ [~ bd]/2 [sn [~ bd]/2] ~"
density 0.5 = slow 2
slow 0.5 = density 2
d1 $ rev $ sound "bd ~ sn bd ~ [~ bd]/2 [sn [~ bd]/2] ~"
d1 $ chop 16 $ sound "bd ~ sn bd ~ [~ bd]/2 [sn [~ bd]/2] ~"
d1 $ rev $ chop 16
$ sound "bd ~ sn bd ~ [~ bd]/2 [sn [~ bd]/2] ~"
functions that take other functions as an input.
# reverse the sequence every second time
d1 $ every 2 rev $ sound "bd can sn can:4"
# play twice as fast every fourth time
d1 $ every 4 (density 2) $ sound "bd can sn can:4"
d1 $ jux rev $ sound "bd sn*2 can [~ arpy]"
but not the other!
d1 $ jux (density 1.25) $ sound "arpy:2 arpy:4 arpy:1 [~ arpy]"
d1 $ weave 16 (pan sine1)
[ sound "bd sn",
sound "arpy ~ arpy:3",
sound "can ~ ~ can:4"
]
d1 $ 0.25 ~> sound "arpy arpy:1 arpy:2 arpy:3"
~> and <~ "rotate" the pattern by a given amount.
d1 $ 0.25 ~> sound "arpy arpy:1 arpy:2 arpy:3"
d1 $ iter 4 $ sound "arpy:1 arpy:2 arpy:3 arpy:4"
density 4 $ iter 4 $ "blue green purple orange"
d1 $ jux (iter 4) $ sound "arpy arpy:2*2"
|+| speed (slow 4 $ scale 1 1.5 sine1)
d1 $ sound "blade"
|+| cut "1" -- cut long samples
|+| resonance (slow 32 $ scale 0.01 0.71 sine1)
|+| cutoff (slow 64 $ scale 0.01 0.5 sine1)
d1 $ sound (samples "arpy*4" (run 4))