Skip to content

Instantly share code, notes, and snippets.

@lvm
Last active March 1, 2017 12:03
Show Gist options
  • Save lvm/b367d1e6c2701c10dc011a02adfe0879 to your computer and use it in GitHub Desktop.
Save lvm/b367d1e6c2701c10dc011a02adfe0879 to your computer and use it in GitHub Desktop.
interestidal
cps 0.5
solo $
do
let runnow d p = do now <- getNow
d $ (nextSam now) ~> p
adsr = grp [attack_p, decay_p, sustain_p, release_p]
hctf = (# hcutoff "100")
sctf = (# cutoff (scale 400 1500 (slow 16 $ sine1)))
mute = const silence
reverb r s o = (# room r) . (# size s) . (# orbit o)
halfStut = within(0.5,1)(stut 2 0.75 0.75)
sometimesSpinOrChop = sometimes (
ifp((==0).(`mod` 2))
(spin 2)
(chop 2)
)
sometimesSpinOrHalfStut = sometimes (
ifp((==0).(`mod` 2))
(spin 2)
(halfStut)
)
let snare p = n p
# sound "snare"
kick p = n p
# sound "kick"
hihat p = n p
# sound "hihat"
clap p = n p
# sound "cp"
let ch4 = d4 . (# orbit "3")
ch3 = d3 . (# orbit "2")
ch2 = d2 . (# orbit "1")
ch1 = d1 . (# orbit "0")
runnow ch4 $
-- fadeIn 8 $
do ae <- iter 4 $
listToPat [toScale Scales.aeolian,
toScale Scales.hexAeolian];
hctf $
sometimes sctf $
slowspread slow [2,2,2,4,4] $
slowspread (\o ->
(slowspread (\r -> reverb r "0.9" o)
["0.25", "0.125", "0.125",
"0.5", "0.25", "0.125", "0.5"]))
["1", "1", "1"] $
every 11 (# octave "4") $
every 23 (# octave "5") $
slowspread (\x -> stut x 0.125 0.75) [8, 4, 12] $
n (
sometimes (fmap(+12)) $
rev $
ae "{d ~ ~ f ~ ~ g ~ ~ a ~ ~ 7}%8")
# s "superbuf"
# octave "3"
# sus (discretise (1/8) $ choose [0.75, 0.5, 0.25, 0.125])
# gain "0.8"
-- # cutoff (scale 1500 7500 $ slow 8 sine1)
runnow ch3 $
-- fadeIn 12 $
do ae <- iter 4 $
listToPat [toScale Scales.aeolian,
toScale Scales.hexAeolian];
hctf $
slowspread (\s -> stut s 0.5 0.25) [2,2,4] $
n (ae "0([5 5 5 5 5 3]/6,8)")
-- n "0(3,8)"
# sound "bassy"
# octave "3"
# ctf "200"
# lpcutoff "1250"
# sus "2"
# sus (discretise (1/4) $ choose [0.75, 0.5, 2, 1])
# rq (discretise (1/8) $ choose [0.125..0.25])
# gain "0.75"
runnow ch2 $
do maj <- iter 2 $
listToPat [toScale Scales.neapolitanMinor,
toScale Scales.neapolitanMajor];
hctf $
slow 8 $
n (maj "{c ~ ~ d ~ ~ f ~ ~ g ~ ~ }%4")
# sound "superzzz"
# octave (discretise 8 $ choose [3..5])
# release (scale 3 4 $ slow 16 sine1)
# sus "16"
# gain "0.666"
-- # cutoff (scale 1500 7500 $ slow 8 sine1)
# pan (scale 0.25 0.75 $ slow 8 sine1)
runnow ch1 $
-- fadeIn 24 $
hctf $
stack[
mute $
degrade $
slowspread (\v -> (stut 2 v 0.75)) [0.125..0.75] $
kick "0(1,16,15)"
,
kick "[0(4,16)]"
# release (scale 0.125 0.25 $ slow 8 sine1)
# release "0.4"
,
every 4 (
slowspread (\p ->
(slowspread
(\t ->
stut t 0.15 p)
[2,2,4]))
[1/8,1/4,0.75]
) $
clap "0(1,16,12)"
# cutoff "4500"
,
slowspread (\t -> (stut 4 0.75 t)) [0.25, 0.75] $
-- every 2 halfStut $
snare "0(2,16,8)"
# room "{0 0.125 0.25 0.5 0.05 0.1}%16"
# size "0.9"
# release "0.05"
# cutoff (scale 1500 7500 $ slow 8 sine1)
,
slowspread (\s -> e s 16) [8, 8, 16, 8, 15, 10, 12] $
-- e 16 16 $
hihat "0"
# release "0.125"
,
hihat "0(4,16,2)"
# release "0.75"
# size "0.9"
# room "0.25"
]
cps 0.666
import Sound.Tidal.Scales as Scales
solo $
do
let runnow d p = do now <- getNow
d $ (nextSam now) ~> p
adsr = grp [attack_p, decay_p, sustain_p, release_p]
hctf = (# hcutoff "100")
sctf = (# cutoff (scale 400 1500 (slow 16 $ sine1)))
mute = const silence
reverb r s o = (# room r) . (# size s) . (# orbit o)
halfStut = within(0.5,1)(stut 2 0.75 0.75)
sometimesSpinOrChop = sometimes (
ifp((==0).(`mod` 2))
(spin 2)
(chop 2)
)
sometimesSpinOrHalfStut = sometimes (
ifp((==0).(`mod` 2))
(spin 2)
(halfStut)
)
let snare p = n p
# sound "snare"
kick p = n p
# sound "kick"
hihat p = n p
# sound "hihat"
clap p = n p
# sound "cp"
let ch4 = d4 . (# orbit "3")
ch3 = d3 . (# orbit "2")
ch2 = d2 . (# orbit "1")
ch1 = d1 . (# orbit "0")
runnow ch4 $
-- fadeIn 8 $
do ae <- iter 4 $
listToPat [toScale Scales.aeolian,
toScale Scales.hexAeolian];
reverb "0.5" "0.9" "1" $
hctf $
sometimes sctf $
slow 4 $
every 23 (# octave "4") $
slowspread (\x -> stut x 0.125 0.75) [8, 4, 12] $
n (
sometimes (fmap(+12)) $
rev $
ae "{d ~ ~ f ~ ~ g ~ ~ a ~ ~ 7}%8")
# s "superbuf"
# octave "3"
# sus (discretise (1/8) $ choose [0.75, 0.5, 0.25, 0.125])
# gain "0.8"
# cutoff (scale 1500 7500 $ slow 8 sine1)
runnow ch3 $
-- fadeIn 12 $
do ae <- iter 4 $
listToPat [toScale Scales.aeolian,
toScale Scales.hexAeolian];
hctf $
slowspread (\s -> stut s 0.5 0.25) [2,2,4] $
n (ae "0([5 5 5 5 5 3]/6,8)")
# sound "bassy"
# octave "3"
# ctf "200"
# lpcutoff "1250"
# sus "2"
# sus (discretise (1/4) $ choose [0.75, 0.5, 2, 1])
# rq (discretise (1/8) $ choose [0.125..0.25])
# gain "0.75"
runnow ch2 $
do maj <- iter 2 $
listToPat [toScale Scales.neapolitanMinor,
toScale Scales.neapolitanMajor];
hctf $
slow 8 $
n (maj "{c ~ ~ d ~ ~ f ~ ~ g ~ ~ }%4")
# sound "superzzz"
# octave (discretise 8 $ choose [3..5])
# release (scale 3 4 $ slow 16 sine1)
# sus "16"
# gain "0.666"
# cutoff (scale 1500 7500 $ slow 8 sine1)
runnow ch1 $
-- fadeIn 24 $
hctf $
sometimes rev $
every 17 (chop 2) $
every 8 (sometimes (slowspread (\e -> echo (e/16)) [4,4,4,3])) $
every 7 (sometimes (spin 2)) $
stack[
every 3 (within (0.5, 0.75) rev) $
every 13 (within (0.25, 0.75) mute) $
within(0,0.5)(
sometimes (
slow 2 .
slowspread (
\v ->
(slowspread (\f -> (f v)))
[(<~), (stut 2 0.75), (~>), (stut 2 0.125)])
[0.125, 0.125, 0.25, 0.125, 0.25, 0.75, 0.25]
)
) $
slowcat[
kick "{0 ~ [~ 0] ~ 0}%4",
kick "0 ~ [~ 0] ~"
]
# release (scale 0.125 0.25 $ slow 8 sine1)
,
degradeBy 0.25 $
sometimesSpinOrHalfStut $
slowspread (
\t ->
(slowspread (\d -> (d t)))
[(<~), (<~), (~>)])
[0.125, 0.125, 0.25, 0.125, 0.25, 0.75, 0.25] $
slowcat[
snare "{0 ~ [~ 0] ~ 0}%4",
snare "~ ~ 0 [~ 0]",
snare "[0*4] ~ ~ [0 [~ 0]]",
snare "[0!] ~ [0*4] ~"
]
# room "{0 0.125 0.25 0.05 0.1}%16"
# size "0.9"
# orbit "2"
# release "0.035"
,
stack[
every 11 (within(0.75, 1)(# release "1")) $
hihat "{0 ~ [~ 0] 0 [~ 0]}%4",
every 23 (# adsr "0.125") $
hihat "[~ 0]([2 2 2 8 2 2 2 16]/8,8,2)"
# adsr "0.05"
# room "{0.1 0.125 0.25 0.05 0.1}%8"
# size "0.9"
# orbit "3"
# pan (scale 0 1 $ slow 32 sine1)
]
]
# gain "1.2"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment