packages feed

haskore-supercollider 0.2 → 0.3

raw patch · 14 files changed

+76/−51 lines, 14 filesdep ~arraydep ~hoscdep ~hsc3

Dependency ranges changed: array, hosc, hsc3, opensoundcontrol-ht, process, supercollider-ht

Files

Makefile view
@@ -12,7 +12,7 @@ 	pkill jackd  supercollider:-	(export SC_JACK_DEFAULT_OUTPUTS=alsa_pcm:playback_1,alsa_pcm:playback_2; \+	(export SC_JACK_DEFAULT_OUTPUTS=system; \ 	 scsynth -u 57110 -D 0)  supercollider-stop:
haskore-supercollider.cabal view
@@ -1,8 +1,9 @@ Name:           haskore-supercollider-Version:        0.2+Version:        0.3 License:        GPL License-File:   LICENSE Author:         Henning Thielemann <haskell@henning-thielemann.de>+Maintainer:     Henning Thielemann <haskell@henning-thielemann.de> Homepage:       http://www.haskell.org/haskellwiki/SuperCollider Category:       Sound, Music Synopsis:       Haskore back-end for SuperCollider@@ -12,7 +13,7 @@   The functions manage NodeIds and SuperCollider buffers for you.   We support realtime replay and rendering to disk. Stability:      Experimental-Tested-With:    GHC==6.4.1, GHC==6.8.2+Tested-With:    GHC==7.8.3 Cabal-Version:  >=1.6 Build-Type:     Simple Extra-Source-Files:@@ -26,7 +27,7 @@ Source-Repository this   type:     darcs   location: http://code.haskell.org/haskore/revised/supercollider/-  tag:      0.2+  tag:      0.3  Flag splitBase   description: Choose the new smaller, split-up base package.@@ -40,10 +41,10 @@     haskore-realtime >= 0.2 && < 0.3,     haskore >=0.1 && <0.3,     -- for SuperCollider support-    hosc >=0.13 && <0.14,-    hsc3 >=0.13 && <0.14,-    opensoundcontrol-ht >=0.2 && <0.3,-    supercollider-ht >=0.2 && <0.3,+    hosc >=0.15 && <0.16,+    hsc3 >=0.15 && <0.16,+    opensoundcontrol-ht >=0.3 && <0.4,+    supercollider-ht >=0.3 && <0.4,     bytestring >=0.9 && <0.11,     -- dependency on non-negative for Haddock     non-negative >=0.0.1 && <0.2,@@ -55,8 +56,8 @@    If flag(splitBase)     Build-Depends:-      process >=1.0 && <1.2,-      array >=0.1 && <0.5,+      process >=1.0 && <1.3,+      array >=0.1 && <0.6,       containers >=0.1 && <0.6,       random >=1.0 && <1.1,       base >=3 && <5
src/Haskore/Interface/SuperCollider/Channel.hs view
@@ -5,7 +5,7 @@  -- import qualified Sound.OpenSoundControl.Transport.Monad as Trans -import qualified Sound.SC3.UGen.IO   as SCIO+import qualified Sound.SC3.UGen.Bindings.DB as SCIO import qualified Sound.SC3.UGen.Rate as SCRate import Sound.SC3.UGen.Type (UGen, constant, ) 
src/Haskore/Interface/SuperCollider/Channel/File.hs view
@@ -8,6 +8,8 @@ import Haskore.Interface.SuperCollider.Channel           (Channel, NumberChannels) +import System.IO.Error (catchIOError)+ -- import System.Directory (removeFile) import Data.Char (isDigit) @@ -18,11 +20,11 @@  next :: NumberChannels -> IO Channel next inc =-   do num <- catch+   do num <- catchIOError          (do numStr <- readFile fileName              if all isDigit numStr                then return (read numStr)-               else ioError (userError "not a number in  channel file"))+               else ioError (userError "not a number in channel file"))          (const $ return ChannelMng.least)       -- removeFile fileName       writeFile fileName (show (inc+num))
src/Haskore/Interface/SuperCollider/Example.hs view
@@ -8,11 +8,12 @@ import qualified Sound.SC3.UGen.Type       as SCType import qualified Sound.SC3.UGen.Math       as SCMath import qualified Sound.SC3.UGen.Rate       as SCRate-import qualified Sound.SC3.UGen.Oscillator as SCOsci-import qualified Sound.SC3.UGen.Filter     as SCFilter-import qualified Sound.SC3.UGen.Noise.ID   as SCNoise-import qualified Sound.SC3.UGen.Envelope   as SCEnv+import qualified Sound.SC3.UGen.Bindings.DB as SCOsci+import qualified Sound.SC3.UGen.Bindings.DB as SCFilter+import qualified Sound.SC3.UGen.Bindings.DB as SCNoise+import qualified Sound.SC3.UGen.Bindings.DB as SCEnv import qualified Sound.SC3.UGen.Envelope.Construct as SCEnvCons+import Sound.SC3.UGen.Envelope (Envelope(Envelope)) import Sound.SC3.UGen.Enum            (DoneAction(DoNothing, PauseSynth),             Envelope_Curve(EnvLin, EnvSin))@@ -338,11 +339,11 @@         tone1   = SCOsci.saw SCRate.AR (freq * SCType.mce [0.995, 1.002])     in  filtered -bridge :: UGen -> UGen -> UGen -> SCEnv.Envelope UGen+bridge :: UGen -> UGen -> UGen -> Envelope UGen bridge fadeDur sustainDur lvl =    let segTypes = [EnvSin, EnvLin, EnvSin]        clippedFadeDur = min fadeDur sustainDur-   in  SCEnv.Envelope+   in  Envelope           [0, lvl, lvl, 0]           [clippedFadeDur, max 0 (sustainDur-fadeDur), clippedFadeDur]           segTypes (Just (-1)) (Just (-1))
src/Haskore/Interface/SuperCollider/Example/Air.hs view
@@ -5,9 +5,9 @@ module Haskore.Interface.SuperCollider.Example.Air where  -- import qualified Sound.SC3 as SC-import qualified Sound.SC3.UGen.Oscillator as SCOsci-import qualified Sound.SC3.UGen.Filter     as SCFilt-import qualified Sound.SC3.UGen.Envelope   as SCUGEnv+import qualified Sound.SC3.UGen.Bindings.DB as SCOsci+import qualified Sound.SC3.UGen.Bindings.DB as SCFilt+import qualified Sound.SC3.UGen.Bindings.DB as SCUGEnv import qualified Sound.SC3.UGen.Math       as SCMath  import Sound.SC3.UGen.Enum (DoneAction(PauseSynth))
src/Haskore/Interface/SuperCollider/Example/Morph.hs view
@@ -6,10 +6,10 @@ module Haskore.Interface.SuperCollider.Example.Morph where  -- import qualified Sound.SC3 as SC-import qualified Sound.SC3.UGen.Oscillator as SCOsci-import qualified Sound.SC3.UGen.Filter     as SCFilt+import qualified Sound.SC3.UGen.Bindings.DB as SCOsci+import qualified Sound.SC3.UGen.Bindings.DB as SCFilt -- import qualified Sound.SC3.UGen.Math       as SCMath-import qualified Sound.SC3.UGen.Envelope   as SCEnv+import qualified Sound.SC3.UGen.Bindings.DB as SCEnv import qualified Sound.SC3.UGen.Envelope.Construct as SCEnvCons  import Sound.SC3.UGen.Enum (DoneAction(PauseSynth), {- EnvCurve(EnvSin,EnvExp) -} )
src/Haskore/Interface/SuperCollider/Play.hs view
@@ -26,8 +26,8 @@ -- import Sound.SC3.UGen.UGen (UGen)  import Sound.OSC.Transport.Monad (Transport, waitReply, )-import qualified Sound.OpenSoundControl.Type as OSC-import qualified Sound.OpenSoundControl.Time as OSCTime+import qualified Sound.OSC.Type as OSC+import qualified Sound.OSC.Time as OSCTime   import qualified Haskore.Melody            as Melody
src/Haskore/Interface/SuperCollider/Play/Channel.hs view
@@ -7,19 +7,20 @@    {-# DEPRECATED "use Haskore.Interface.SuperCollider.Schedule.Channel instead" #-}    where -import qualified Sound.SC3.UGen.Oscillator as SCOsci-import qualified Sound.SC3.UGen.Filter     as SCFilt+import qualified Sound.SC3.UGen.Bindings.DB as SCOsci+import qualified Sound.SC3.UGen.Bindings.DB as SCFilt  import Sound.SC3.UGen.Rate (Rate(KR))  import qualified Sound.SC3.Server.PlayEasy  as SCPlay import qualified Sound.SC3.Server.Command   as SCCmd+import Sound.SC3.Server.Enum (AddAction(AddToTail))  import Sound.SC3.UGen.Type (UGen)  import Sound.OSC.Transport.FD (Transport) import Sound.OSC.Transport.FD.UDP  (UDP)-import qualified Sound.OpenSoundControl.Transport.File as File+import qualified Sound.OSC.Transport.File as File  import qualified Haskore.Interface.SuperCollider.Channel.State as ChannelState import qualified Haskore.Interface.SuperCollider.Channel as Channel@@ -124,7 +125,7 @@              (Schedule.fromPerformance                 [Schedule.installUGenMsg effectsName                     Schedule.defaultChannel effect]-                [SCCmd.s_new effectsName sid SCCmd.AddToTail SCPlay.homeId []]+                [SCCmd.s_new effectsName sid AddToTail SCPlay.homeId []]                 pf) >>           return () 
src/Haskore/Interface/SuperCollider/Play/Live.hs view
@@ -15,12 +15,12 @@ module Haskore.Interface.SuperCollider.Play.Live where  import qualified Sound.SC3 as SC-import qualified Sound.SC3.UGen.IO   as SCIO import qualified Sound.SC3.UGen.UGen as SCUGen-import qualified Sound.SC3.UGen.Oscillator as SCOsci-import qualified Sound.SC3.UGen.Filter     as SCFilt+import qualified Sound.SC3.UGen.Bindings.DB as SCIO+import qualified Sound.SC3.UGen.Bindings.DB as SCOsci+import qualified Sound.SC3.UGen.Bindings.DB as SCFilt+import qualified Sound.SC3.UGen.Bindings.DB as SCNoise import qualified Sound.SC3.UGen.Envelope   as SCUGEnv-import qualified Sound.SC3.UGen.Noise.ID   as SCNoise import qualified Sound.SC3.UGen.UId as SCUId  import Sound.SC3.UGen.Enum (DoneAction(DoNothing, PauseSynth))@@ -28,6 +28,7 @@  import qualified Sound.SC3.Server.PlayEasy  as SCPlay import qualified Sound.SC3.Server.Command   as SCCmd+import Sound.SC3.Server.Enum (AddAction(AddToTail, AddToHead))  import Sound.SC3.UGen.Type (UGen, constant, ) @@ -234,7 +235,7 @@              (Schedule.fromPerformance                 [Schedule.installUGenMsg effectsName                     Schedule.defaultChannel effect]-                [SCCmd.s_new effectsName sid SCCmd.AddToTail SCPlay.homeId []]+                [SCCmd.s_new effectsName sid AddToTail SCPlay.homeId []]                 pf) >>           return () @@ -254,7 +255,7 @@       (return ())       (\pitch ->           do SCPlay.withSC3 $-                Play.playAtom SCPlay.noId name $+                Play.playAtom SCPlay.autoId name $                    ("pitch", Pitch.intToFreq pitch) :                    ("velocity", 1) : []              print (Pitch.fromInt pitch))
src/Haskore/Interface/SuperCollider/Render.hs view
@@ -17,8 +17,8 @@ -- import Sound.OpenSoundControl.Transport (Transport) -- import qualified Sound.OpenSoundControl.Transport.Monad as Trans -import qualified Sound.OpenSoundControl.Type as OSC-import qualified Sound.OpenSoundControl.Time as OSCTime+import qualified Sound.OSC.Type as OSC+import qualified Sound.OSC.Time as OSCTime  import qualified Data.ByteString.Lazy as B @@ -31,7 +31,7 @@  import qualified Numeric.NonNegative.Wrapper as NonNeg -import System.Cmd (rawSystem)+import System.Process (rawSystem) import System.Exit (ExitCode)  import Data.Array(Array, Ix, (!), listArray)
src/Haskore/Interface/SuperCollider/Schedule.hs view
@@ -19,10 +19,11 @@  import qualified Sound.SC3.Server.Command   as SCCmd import qualified Sound.SC3.Server.PlayEasy  as SCPlay+import Sound.SC3.Server.Enum (AddAction(AddToTail, AddToHead))  import Sound.SC3.UGen.Type (UGen) -import qualified Sound.OpenSoundControl.Type as OSC+import qualified Sound.OSC.Type as OSC  import qualified Haskore.Interface.SuperCollider.Note          as Note import qualified Haskore.Interface.SuperCollider.Performance   as SCPf@@ -107,7 +108,7 @@           (installUGenMsg effectsName effectChannel               (globalEffect (Channel.readUGen numChan instrumentChannel)) :            installSoundsMsg instrumentChannel soundAssigns)-          [SCCmd.s_new effectsName sid SCCmd.AddToTail SCPlay.homeId []]+          [SCCmd.s_new effectsName sid AddToTail SCPlay.homeId []]           pf  fromRhythmicMusicSoundEffects ::@@ -138,7 +139,7 @@    in  fromPerformance           (installUGenMsg effectsName effectChannel globalEffect :            installChannelSoundsMsg soundChannelAssigns)-          [SCCmd.s_new effectsName sid SCCmd.AddToTail SCPlay.homeId []]+          [SCCmd.s_new effectsName sid AddToTail SCPlay.homeId []]           pf  -- slightly inconsistent naming with respect to Music.fromMelodyNullAttr@@ -236,7 +237,7 @@ resetMsgs :: [OSC.Message] resetMsgs =    [SCCmd.g_freeAll [SCPlay.rootId],-    SCCmd.g_new [(SCPlay.homeId, SCCmd.AddToTail, SCPlay.rootId)]]+    SCCmd.g_new [(SCPlay.homeId, AddToTail, SCPlay.rootId)]]   atomPlayMsg ::@@ -245,7 +246,7 @@    [(String, Double)] ->    OSC.Message atomPlayMsg sid name =-   SCCmd.s_new name sid SCCmd.AddToHead SCPlay.homeId+   SCCmd.s_new name sid AddToHead SCPlay.homeId    -- adding to head is necessary for allowing global effects like in the Live module  
src/Haskore/Interface/SuperCollider/Schedule/Channel.hs view
@@ -5,17 +5,18 @@ -} module Haskore.Interface.SuperCollider.Schedule.Channel where -import qualified Sound.SC3.UGen.Oscillator as SCOsci-import qualified Sound.SC3.UGen.Filter     as SCFilt+import qualified Sound.SC3.UGen.Bindings.DB as SCOsci+import qualified Sound.SC3.UGen.Bindings.DB as SCFilt  import Sound.SC3.UGen.Rate (Rate(KR))  import qualified Sound.SC3.Server.PlayEasy  as SCPlay import qualified Sound.SC3.Server.Command   as SCCmd+import Sound.SC3.Server.Enum (AddAction(AddToTail))  import Sound.SC3.UGen.Type (UGen) -import qualified Sound.OpenSoundControl.Type as OSC+import qualified Sound.OSC.Type as OSC  import qualified Haskore.Interface.SuperCollider.Channel as Channel import Haskore.Interface.SuperCollider.Channel (Channel, NumberChannels)@@ -44,7 +45,8 @@ import Control.Monad.Trans.State  (StateT, runStateT, get, put, ) import Control.Monad.Trans.Writer (Writer, tell, runWriter, ) import Control.Monad.Trans.Class (lift, )-import Control.Monad (liftM2, )+import Control.Monad (liftM2, liftM, ap, )+import Control.Applicative (Applicative, pure, (<*>), )   @@ -55,6 +57,13 @@    Environment {unwrapEnvironment ::       StateT (Channel, NumberChannels) (Writer [OSC.Message]) a} +instance Functor Environment where+   fmap = liftM++instance Applicative Environment where+   (<*>) = ap+   pure = return+ instance Monad Environment where    x >>= y  = Environment $ unwrapEnvironment . y =<< unwrapEnvironment x    return   = Environment . return@@ -190,7 +199,7 @@        Schedule.fromPerformance           (Schedule.installUGenMsg effectsName Schedule.defaultChannel effect :            installSounds)-          [SCCmd.s_new effectsName sid SCCmd.AddToTail SCPlay.homeId []]+          [SCCmd.s_new effectsName sid AddToTail SCPlay.homeId []]           pf  
src/Haskore/Interface/SuperCollider/Schedule/Install.hs view
@@ -8,7 +8,7 @@  import Sound.SC3.UGen.Type (UGen) -import qualified Sound.OpenSoundControl.Type as OSC+import qualified Sound.OSC.Type as OSC  import qualified Haskore.Interface.SuperCollider.Example       as Example import qualified Haskore.Interface.SuperCollider.Play          as Play@@ -29,6 +29,8 @@   import Control.Monad.Trans.Writer (Writer, tell, runWriter)+import Control.Monad (liftM, ap, )+import Control.Applicative (Applicative, pure, (<*>), )   @@ -39,6 +41,13 @@ -} newtype Environment a =    Environment {unwrapEnvironment :: Writer [OSC.Message] a}++instance Functor Environment where+   fmap = liftM++instance Applicative Environment where+   (<*>) = ap+   pure = return  instance Monad Environment where    x >>= y  = Environment $ unwrapEnvironment . y =<< unwrapEnvironment x