packages feed

hsc3-graphs-0.14: Sound/SC3/Graph/JMCC_data_space_hp.hs

-- data space (jmcc)
{-# OPTIONS_GHC -F -pgmF hsc3-hash-paren #-}
module Sound.SC3.Graph.JMCC_data_space_hp where

import Sound.SC3.Monad {- hsc3 -}
import Sound.SC3.Lang.Control.OverlapTexture {- hsc3-lang -}

data_space :: UId m => m UGen
data_space = do
    let r = rand 0
    let p0 = lfPulse KR #(r 200) 0 #(r 1)
    p1 <- lfPulse KR #(r 40) 0 #(r 1) *. r 8000 .+. r 2000
    let p2 = lfPulse KR #(r 20) 0 #(r 1)
    p3 <- lfPulse KR #(r 4) 0 #(r 1) *. r 8000 .+. r 2000
    let p4 = lfPulse KR #(r 20) 0 #(r 1)
    p5 <- lfPulse KR #(r 4) 0 #(r 1) *. r 8000 .+. r 2000
    let f = p0 * p1 + p2 * p3 + p4 * p5
    dt <- rand 0.15 0.35
    let o = lfPulse AR f 0 0.5 * 0.04
    l <- lfNoise0 KR #(r 3) .* 0.8
    return (combL (pan2 o l 1) dt dt 3)

main :: IO ()
main = overlapTextureU (1,6,4,maxBound) =<< data_space