Skip to content

Instantly share code, notes, and snippets.

@khoparzi
Last active April 5, 2020 18:11
Show Gist options
  • Save khoparzi/90613a013299d9d315c77c38b445be5b to your computer and use it in GitHub Desktop.
Save khoparzi/90613a013299d9d315c77c38b445be5b to your computer and use it in GitHub Desktop.
-- Equinox stream
Hi All! I am Khoparzi from Allahabad, India
Playing out to you from Mumbai
d1
-- $ chup
$ microd
$ stb 0.3 (jux (rev))
$ oftflip
$ s "scw*8" # g 1 # n (irand 100)
# loop "[1|4|8]" # up "[0, 7, <11 13 14>]" # g 0.1
-- # lpf 100 # e en
-- Superb Hindustani blues fusion vocals by Chandana Bala Kalyan from
-- https://www.youtube.com/watch?v=XFUSRaWPR20
d8
$ cceuc16 "70"
$ s "chandana"
# grain (rg 0 1 $ in71) (rg hdsqv qn $ in72)
-- # g (scramble 8 "0.2 0.3 0.7 1 0.4")
-- # freq (100 * (rg 1 14 $ cF 0 "2"))
# rvb' in73 0.9 # g 0.6
# shape 0.4 # crush 8 # coarse 3
d9 $ cceuc16 "74" $ s "chandana" # n 1
# grain (rg 0 1 $ in75) (rg hdsqv qn $ in76)
-- # g (scramble 8 "0.2 0.3 0.7 1 0.4")
-- # freq (100 * (rg 1 14 $ cF 0 "2"))
# rvb' (cF 0 "77") 0.9 # g 0.8
# shape 0.4 # crush 8 # coarse 3
d2m' 17
$ degradeBy 0.9
$ microd'
-- $ chancervb
-- $ stb 0.2 (thicken)
$ fa "[2]"
$ stb 0.9 (# speed "[1, 1.75, 2, 4]")
$ binstruct "<130 180 181>"
$ s "dudak:2" # g 1.1
-- # e qn
-- # dels' 0.2 4 0.4
d3m' 14
-- $ oftflip
$ s "808:1*8" # e tn # g 1.3
-- # lpf (4000)
-- A little shout to my Man Rangga whos coming next
p "r" $ oftflip
$s "rangga*16" # grain (sn' (irand 7)) tn # n "[4|3]"
-- Thanks so much everyone
-- Have a great equinox!!
------_________________________________________________________
-- Useful fuctions
import qualified Sound.OSC as OSC
import qualified Sound.OSC.FD as FD
import System.IO.Unsafe (unsafePerformIO)
-- | Global reference of the UDP port used to
-- | communicate with SCLang
globalUDPRef = unsafePerformIO $ OSC.openUDP "127.0.0.1" 57120
-- | Takes a path and an argument (both strings)
-- | and sends them to SCLang
-- oscStringMessage :: String -> String -> IO ()
oscStringMessage path str = FD.sendMessage globalUDPRef $ OSC.Message path [OSC.string str]
-- For sample loading (ask me for sclang code to enable these)
let load s = oscStringMessage "/loadBank" s
loadFolder s = oscStringMessage "/loadFolder" s
loadFolders s = oscStringMessage "/loadFolders" s
-- loadMaschine s = oscStringMessage "/loadFolder" ("/Users/khoparzi/Documents/Native Instruments/Maschine 2/Groups/" ++ s)
loadPath s = oscStringMessage "/loadPath" s
free s = oscStringMessage "/freeBank" s
quitsc = oscStringMessage "/exit" ""
record = oscStringMessage "/record" ""
stoprecord = oscStringMessage "/stoprecord" ""
-- For granular
grain' = grp [mF "begin", mF "end"]
grain s w = begin s # end (s + w)
grain8 s w = begin (en' s) # end ((en' s) + w)
grain16 s w = begin (sn' s) # end ((sn' s) + w)
-- For fun ways to make easy patterns
asstruct p = struct (ascii p)
asstruct' s a p = slow s $ struct (ascii a) $ p
binstruct p = struct (binary p)
binstruct' s a p = struct (binaryN s a) $ p
-- Eucledian patterns controlled with midi controllers
cceuc8 c p = euclid (floor <$> (segment 1 $ range 1 8 $ cF 0 c)) 8 $ p
cceuc16 c p = euclid (floor <$> (segment 1 $ range 1 16 $ cF 0 c)) 16 $ p
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment