packages feed

conductive-hsc3 0.2 → 0.3

raw patch · 2 files changed

+2/−150 lines, 2 files

Files

Sound/Conductive/Synths.hs view
@@ -18,8 +18,7 @@ import Sound.Conductive.Scale import Sound.OpenSoundControl import Sound.SC3-import Sound.SC3.ID hiding (brownNoise)-import Sound.SC3.Monadic+import Sound.SC3.ID  import System.Random hiding (next)  pingDef :: IO OSC@@ -39,153 +38,6 @@              ]     in withSC3 (\fd -> send fd (s_new "ping2" (-1) AddToTail 1 ps)) -drone1Def :: IO OSC-drone1Def = -    let fi = control IR "f" 440-        d = control IR "d" 1-        p = envPerc 0.03 d-        e = envGen KR 1 0.1 0 1 RemoveSynth p-        fb = fi-        f = mce [fb*0.5,fb,fb*1.005,fb*1.010,fb*2,fb*2.5,fb*4]-        ff = xLine KR 400 4000 d RemoveSynth-        o = out 0 (formant AR f ff 200 * e)-        i fd = do async fd (d_recv (synthdef "drone1" o))-    in withSC3 i--drone1 :: Double -> Double -> IO ()-drone1 freq dur =-    let ps = [("f",freq)-             ,("d",dur)-             ]-    in withSC3 (\fd -> send fd (s_new "drone1" (-1) AddToTail 1 ps))--drone2Def :: IO OSC-drone2Def = -    let cf = control IR "f" 440-        d = control IR "d" 1-        mf = control IR "mf" 100 -- between 0 and 800-        pm'= control IR "pm" 2 -- between 0 12-        pm = line KR 0 pm' 9 DoNothing -        p = envPerc 0.03 d-        e = envGen KR 1 0.1 0 1 RemoveSynth p-        f = mce [cf,cf*1.005]-        o = out 0 (pmOsc AR f mf pm 0 * e)-        i fd = do async fd (d_recv (synthdef "drone2" o))-    in withSC3 i--drone2 :: Double -> Double -> Double -> Double -> IO ()-drone2 freq modFreq modAmp dur =-    let ps = [("f",freq)-             ,("mf",modFreq)-             ,("pm",modAmp)-             ,("d",dur)-             ]-    in withSC3 (\fd -> send fd (s_new "drone2" (-1) AddToTail 1 ps))--tamburaDef :: IO OSC-tamburaDef = -    let cf = control IR "f" 440-        d = control IR "d" 1-        t = (impulse KR 0.001 0)-        --x = mouseX KR (-0.999) 0.999 Linear 0.1-        x = control IR "t" 0.2-        y = 1-        dl = mce[1/f,1/(f*1.02)]-        p = envPerc 0.01 d-        e = envGen KR 1 0.1 0 1 RemoveSynth p-        f = mce [cf,cf*1.005]-        i fd = do n <- brownNoise AR-                  let o = out 0 (pluck (n * 0.5) t (dl) (dl * y) 5 x * e)-                  async fd (d_recv (synthdef "tambura" o))-    in withSC3 i--tambura :: Double -> Double -> Double -> IO ()-tambura freq timbre dur = -    let ps = [("f",freq)-             ,("d",dur)-             ,("t",timbre)-             ]-    in withSC3 (\fd -> send fd (s_new "tambura" (-1) AddToTail 1 ps))--compositeDroneDef :: IO ()-compositeDroneDef = sequence_ [drone1Def,drone2Def,tamburaDef]--compositeDrone :: Integer -> Double -> Double -> Double -> IO ()-compositeDrone s m1 m2 d = -    let a f d = drone1 f d-        b f m1 m2 d = drone2 f m1 m2 d-        tamb f t d = tambura f t d-        f = fromJust $ semitoneToFreq s-    in sequence_ [a f d,b f m1 m2 d,tamb f (0.3 + (m2/10)) d]--solo1Def :: IO OSC-solo1Def = -    let cf = control IR "f" 440-        attack = control IR "attack" 0.01-        d = control IR "d" 1-        mf = control IR "mf" 100 -- between 0 and 800-        pm'= control IR "pm" 2 -- between 0 12-        pm = line KR 0 pm' 9 DoNothing -        p = envPerc attack d-        e = envGen KR 1 0.1 0 1 RemoveSynth p-        f = mce [cf,cf*1.005]-        o1 = (pmOsc AR f mf pm 0 * e)-        o2 = (pmOsc AR f (mf/2) pm 0 * e)-        o3 = (pmOsc AR f (mf*2) pm 0 * e)-        o = out 0 (o1+o2+o3)-        i fd = do async fd (d_recv (synthdef "solo1" o))-    in withSC3 i--solo1 :: Integer -> Double -> Double -> Double -> Double -> IO ()-solo1 freq modFreq modAmp attack dur =-    let f = fromJust $ semitoneToFreq freq-        ps = [("f",f)-             ,("mf",modFreq)-             ,("pm",modAmp)-             ,("attack",attack)-             ,("d",dur)-             ]-    in withSC3 (\fd -> send fd (s_new "solo1" (-1) AddToTail 1 ps))---- playSolo1 :: MVar MusicalEnvironment -> t -> IO ()--- playSolo1 e p = do ---     let pg param = getDoubleGenerator e param---     fG   <- pg "soloFreq"---     fmG  <- pg "soloFMod"---     amG  <- pg "soloAMod"---     attG <- pg "soloAttack"---     durG <- pg "soloDur"---     f   <- next fG---     fm  <- next fmG---     am  <- next amG---     att <- next attG---     dur <- next durG---     solo1 (floor f) fm am att dur--subKickDef :: Int -> IO ()-subKickDef n = let-    b1 = control IR "b1" 0-    b2 = control IR "b2" 1-    f1 = control KR "f1" 450-    f2 = control KR "f2" 900-    d1 = control KR "d1" 1-    amp = control KR "amp" 0.5-    a1 = tr_control "a1" 0-    a2 = tr_control "a2" 0-    m = impulse KR 1 0 * 0.1-    d x = decay2 (x) 0.01 d1 -    o1 = sinOsc AR (mce [f1,f1+0.01]) 0 * d a1 * amp-    o2 = saw AR (mce [f2,f2+0.001]) * d a2-    g = mrg2 (out b1 o1) (out b2 o2)-    i fd = do async fd (d_recv (synthdef "g" g))-              send fd (s_new "g" n AddToTail 1 [])-    in withSC3 i--subKick :: Int -> Double -> Double -> IO ()-subKick n freq dur = withSC3 (\fd -> send fd (n_set n [("a1",1)-                                                       ,("f1",freq)-                                                       ,("d1",dur)-                                                       ,("amp",0.5)])) ------------------------------------------------------------------------------ -- trying a method for defining synths 
conductive-hsc3.cabal view
@@ -7,7 +7,7 @@ -- The package version. See the Haskell package versioning policy -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for -- standards guiding when and how versions should be incremented.-Version:             0.2+Version:             0.3  -- A short (one-line) description of the package. Synopsis:            a library with examples of using Conductive with hsc3