packages feed

hsc3-graphs-0.15: Sound/SC3/Graph/JMCC_impulse_sequencer.hs

-- impulse sequencer (jmcc) SC2
module Sound.SC3.Graph.JMCC_impulse_sequencer where

import Sound.SC3 {- hsc3 -}

isequ :: ID i => i -> [UGen] -> UGen -> UGen
isequ z s tr = tr * demand tr 0 (dseq z dinf (mce s))

impulse_sequencer :: UGen
impulse_sequencer =
    let -- single sample impulse as trigger
        t = impulse AR 8 0
        -- clave rhythm
        c_sq = isequ 'α' [1,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0] t
        c = decay2 c_sq 0.001 0.3 * fSinOsc AR 1700 0 * 0.1
        -- dee dee dee dee dee
        d_sq = isequ 'β' [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0] t
        d = decay2 d_sq 0.001 0.3 * fSinOsc AR 2400 0 * 0.04
        -- noise drum
        n_sq = isequ 'γ' [1.0, 0.1, 0.1, 1.0, 0.1, 1.0, 0.1, 0.1] t
        n = decay2 n_sq 0.001 0.25 * brownNoise 'δ' AR * 0.1
        -- bass drum
        b_sq = isequ 'ε' [1,0,0.2,0,0.2,0,0.2,0] t
        b = decay2 b_sq 0.001 0.5 * fSinOsc AR 100 0 * 0.2
    in c + d + n + b

main :: IO ()
main = audition (out 0 impulse_sequencer)