hunk ./supercollider-ht.cabal 2 -Version: 0.1.1.1 +Version: 0.2 hunk ./supercollider-ht.cabal 30 - tag: 0.1.1.1 + tag: 0.2 hunk ./src/Sound/SC3/Example/Effect.hs 8 -import Sound.SC3.UGen.UGen +import Sound.SC3.UGen.UGen (MRG, control, ) +import Sound.SC3.UGen.Type (UGen, MCE, ) hunk ./src/Sound/SC3/Example/Effect.hs 12 -import Sound.SC3.UGen.Envelope (envGen, xLine, pauseSelf, ) +import Sound.SC3.UGen.Envelope (Envelope, envGen, xLine, pauseSelf, ) hunk ./src/Sound/SC3/Example/Effect.hs 18 -import Sound.SC3.UGen.Enum (Warp(Linear), DoneAction(RemoveSynth), EnvCurve(EnvNum), ) +import Sound.SC3.UGen.Enum (Warp(Linear), DoneAction(RemoveSynth), Envelope_Curve(EnvNum), ) hunk ./src/Sound/SC3/Example/Effect.hs 21 -import Sound.SC3.Server.NRT (writeNRT, ) +import Sound.SC3.Server.NRT (NRT(NRT), writeNRT, ) replace ./src/Sound/SC3/Example/Effect.hs [A-Za-z_0-9] MCE mce replace ./src/Sound/SC3/Example/Effect.hs [A-Za-z_0-9] MRG mrg2 replace ./src/Sound/SC3/Example/Effect.hs [A-Za-z_0-9\-\.] OSC OSC.Message hunk ./src/Sound/SC3/Example/Effect.hs 24 -import Sound.OpenSoundControl.OSC (OSC.Message(Bundle), ) -import Sound.OpenSoundControl.Transport.Monad (send, ) -import qualified Sound.OpenSoundControl.Time as Time -import qualified Sound.OpenSoundControl.Transport.Monad as Trans +import qualified Sound.OpenSoundControl.Type as OSC +import Sound.OSC.Transport.Monad (Trans.C, ) hunk ./src/Sound/SC3/Example/Effect.hs 85 -envPerc' :: [UGen] +envPerc' :: Fractional a => Envelope a hunk ./src/Sound/SC3/Example/Effect.hs 287 - in do writeNRT oscFileName - [Bundle (Time.NTPr 0) $ + in do writeNRT oscFileName $ NRT $ + [OSC.bundle 0 $ hunk ./src/Sound/SC3/Example/Effect.hs 293 - Bundle (Time.NTPr time) [g_freeAll [homeId]]] + OSC.bundle time [g_freeAll [homeId]]] replace ./src/Sound/SC3/Example/Effect.hs [A-Za-z_0-9\-\.] Trans.C Transport hunk ./src/Sound/SC3/Example/Timing.hs 4 - -import qualified Sound.OpenSoundControl.Transport.Monad.IO as TIO -import Sound.OpenSoundControl(OSC(Bundle)) -import Sound.OpenSoundControl.Time - (Time(UTCr), utcr, pauseThread, pauseThreadUntil, ) -import Sound.OpenSoundControl.Transport.Monad(send, ) -import Sound.OpenSoundControl.Transport.UDP (UDP) +import qualified Sound.SC3.Server.PlayEasy as Play hunk ./src/Sound/SC3/Example/Timing.hs 8 - EnvCurve(EnvNum), DoneAction(RemoveSynth), + Envelope_Curve(EnvNum), DoneAction(RemoveSynth), hunk ./src/Sound/SC3/Example/Timing.hs 10 -import qualified Sound.SC3.Server.PlayEasy as Play + +import qualified Sound.OpenSoundControl.Time as Time +import qualified Sound.OpenSoundControl.Type as OSC +import Sound.OpenSoundControl.Time + (Time, pauseThread, pauseThreadUntil, ) +import Sound.OSC.Transport.FD.UDP (UDP) + hunk ./src/Sound/SC3/Example/Timing.hs 19 +import Control.Monad.Trans.Reader (ReaderT, ) hunk ./src/Sound/SC3/Example/Timing.hs 27 -type UTC = Double -type Interval = Double -type Action = UTC -> IO (Maybe Interval) +type Interval = Time +type Action = Time -> IO (Maybe Interval) hunk ./src/Sound/SC3/Example/Timing.hs 31 -at :: Double -> Action -> IO () +at :: Time -> Action -> IO () hunk ./src/Sound/SC3/Example/Timing.hs 47 -latency :: Double +latency :: Time hunk ./src/Sound/SC3/Example/Timing.hs 50 -bundle :: Double -> [OSC] -> OSC -bundle t m = Bundle (UTCr $ t + latency) m +bundle :: Time -> [OSC.Message] -> OSC.Bundle +bundle t m = OSC.bundle (t + latency) m hunk ./src/Sound/SC3/Example/Timing.hs 53 -scPutStrLn :: String -> TIO.T UDP () +scPutStrLn :: String -> ReaderT UDP IO () hunk ./src/Sound/SC3/Example/Timing.hs 67 - in do now <- utcr + in do now <- Time.time hunk ./src/Sound/SC3/Example/Timing.hs 81 - liftIO $ pauseThread 30 + liftIO $ pauseThread (30::Time) replace ./src/Sound/SC3/Example/Timing.hs [A-Za-z_0-9\-\.] send Play.send hunk ./src/Sound/SC3/Server/PlayEasy.hs 7 - sync, d_recv_synthdef, + send, sync, d_recv_synthdef, hunk ./src/Sound/SC3/Server/PlayEasy.hs 12 -import Sound.SC3.UGen.UGen (UGen(..)) +import Sound.SC3.UGen.Type (UGen(..), constant, Proxy(Proxy), MRG(..), Primitive(..), ) +import Sound.SC3.UGen.MCE (MCE(..), ) hunk ./src/Sound/SC3/Server/PlayEasy.hs 17 - n_set, n_free) -import Sound.OpenSoundControl (OSC(Message)) -import Sound.OpenSoundControl.Transport.TCP (TCP) -import Sound.OpenSoundControl.Transport.UDP (UDP) -import Sound.OpenSoundControl.Transport.Monad (send, wait, ) + n_set, n_free, ) replace ./src/Sound/SC3/Server/PlayEasy.hs [A-Za-z_0-9\-\.] OSC OSC.Message hunk ./src/Sound/SC3/Server/PlayEasy.hs 19 -import qualified Sound.OpenSoundControl.Transport.TCP as TCP -import qualified Sound.OpenSoundControl.Transport.UDP as UDP -import qualified Sound.OpenSoundControl.Transport.File as File -import qualified Sound.OpenSoundControl.Transport.Monad as Trans -import qualified Sound.OpenSoundControl.Transport.Monad.IO as TIO +import qualified Sound.OpenSoundControl.Type as OSC + +import Sound.OpenSoundControl.Class (OSC) +import Sound.OpenSoundControl.Type (Packet(Packet_Message), ) +import Sound.OSC.Transport.FD.TCP (TCP) +import Sound.OSC.Transport.FD.UDP (UDP) +import Sound.OSC.Transport.Monad + (Trans.C, SendOSC, TIO.T, sendOSC, waitReply, TIO.with, ) + +import qualified Sound.OSC.Transport.FD.TCP as TCP +import qualified Sound.OSC.Transport.FD.UDP as UDP +import qualified Sound.OpenSoundControl.Transport.File as File hunk ./src/Sound/SC3/Server/PlayEasy.hs 38 +send :: (OSC a, SendOSC m) => a -> m () +send = sendOSC + hunk ./src/Sound/SC3/Server/PlayEasy.hs 70 -withSC3File fn = TIO.with (File.open (Message "/done" []) fn) +withSC3File fn = + TIO.with (File.open (Packet_Message (OSC.Message "/done" [])) fn) hunk ./src/Sound/SC3/Server/PlayEasy.hs 103 -sync :: Trans.C m => OSC.Message -> m OSC.Message -sync o = send o >> wait "/done" +sync :: (OSC a, Trans.C m) => a -> m OSC.Message +sync o = send o >> waitReply "/done" hunk ./src/Sound/SC3/Server/PlayEasy.hs 107 -simpleSync :: Trans.C m => OSC.Message -> m () +simpleSync :: (Trans.C m, OSC a) => a -> m () hunk ./src/Sound/SC3/Server/PlayEasy.hs 142 -addOut u = if hasOutputs u then out (Constant 0) u else u +addOut u = if hasOutputs u then out (constant (0::Integer)) u else u hunk ./src/Sound/SC3/Server/PlayEasy.hs 149 -hasOutputs (Primitive _ _ _ o _ _) = not (null o) -hasOutputs (MCE l) = any hasOutputs l -hasOutputs (MRG l r) = hasOutputs l || hasOutputs r -hasOutputs (Proxy _ _) = True +hasOutputs (Primitive_U (Primitive _ _ _ o _ _)) = not (null o) +hasOutputs (MCE_U (MCE_Vector l)) = any hasOutputs l +hasOutputs (MRG_U (MRG l r)) = hasOutputs l || hasOutputs r +hasOutputs (Proxy_U (Proxy _ _)) = True hunk ./src/Sound/SC3/Server/PlayEasy.hs 157 -mceDegree (Primitive _ _ _ _ _ _) = 1 -mceDegree (MCE l) = length l +mceDegree (Primitive_U (Primitive _ _ _ _ _ _)) = 1 +mceDegree (MCE_U (MCE_Vector l)) = length l replace ./src/Sound/SC3/Server/PlayEasy.hs [A-Za-z_0-9\-\.] TIO.T Connection replace ./src/Sound/SC3/Server/PlayEasy.hs [A-Za-z_0-9\-\.] TIO.with withTransport replace ./src/Sound/SC3/Server/PlayEasy.hs [A-Za-z_0-9\-\.] Trans.C Transport hunk ./supercollider-ht.cabal 5 -Copyright: Henning Thielemann, 2008-2009 +Copyright: Henning Thielemann, 2008-2013 hunk ./supercollider-ht.cabal 16 - * play routines using the Transport monad from opensoundcontrol-ht + * common play routines hunk ./supercollider-ht.cabal 20 -Tested-With: GHC==6.4.1, GHC==6.8.2 +Tested-With: GHC==7.4.2 hunk ./supercollider-ht.cabal 41 - Build-Depends: hosc >=0.8 && <0.9, hsc3 >=0.8 && <0.9 - Build-Depends: opensoundcontrol-ht >=0.1 && <0.2 + Build-Depends: hosc >=0.13 && <0.14, hsc3 >=0.13 && <0.14 + Build-Depends: opensoundcontrol-ht >=0.2 && <0.3 hunk ./src/Sound/SC3/Example/Effect.hs 27 -import System.Random(randomRs, mkStdGen, ) -import Control.Concurrent(threadDelay, ) -import Control.Monad.Trans.Class (lift, ) - +import Control.Concurrent (threadDelay, ) +import Control.Exception (finally, ) hunk ./src/Sound/SC3/Example/Effect.hs 31 +import System.Random (randomRs, mkStdGen, ) + +import Control.Monad.Trans.Class (lift, ) + hunk ./src/Sound/SC3/Example/Effect.hs 109 - withSC3 $ - do play bassFilter + flip finally (withSC3 stop) $ + withSC3 $ do + play bassFilter hunk ./src/Sound/SC3/Example/Effect.hs 115 - stop hunk ./src/Sound/SC3/Example/Effect.hs 34 +import Control.Monad (liftM, ) hunk ./src/Sound/SC3/Example/Effect.hs 112 - play bassFilter + void $ play bassFilter hunk ./src/Sound/SC3/Example/Effect.hs 126 -loadTone :: Transport m => - String - -> (UGen -> UGen -> UGen) - -> m OSC.Message +void :: Monad m => m a -> m () +void = liftM (const ()) + +loadTone :: + Transport m => + String -> + (UGen -> UGen -> UGen) -> + m () hunk ./src/Sound/SC3/Example/Effect.hs 135 - Play.sync (Play.d_recv_synthdef name - (tone (control KR "velocity" 0) - (control KR "pitch" 0))) + void $ Play.sync $ Play.d_recv_synthdef name $ + tone (control KR "velocity" 0) + (control KR "pitch" 0) hunk ./src/Sound/SC3/Example/Effect.hs 139 -loadEffect :: Transport m => - String - -> UGen - -> m OSC.Message +loadEffect :: + Transport m => + String -> + UGen -> + m () hunk ./src/Sound/SC3/Example/Effect.hs 145 - Play.sync (Play.d_recv_synthdef name effect) + void $ Play.sync $ Play.d_recv_synthdef name effect hunk ./src/Sound/SC3/Example/Effect.hs 302 - rawSystem "scsynth" + void $ rawSystem "scsynth" hunk ./src/Sound/SC3/Example/Effect.hs 305 - return () hunk ./src/Sound/SC3/Example/Timing.hs 74 - Play.sync (Play.d_recv_synthdef "ping" (ping 880 0.1)) + _ <- Play.sync (Play.d_recv_synthdef "ping" (ping 880 0.1)) hunk ./src/Sound/SC3/Example/Timing.hs 79 - liftIO $ forkIO pinger + _ <- liftIO $ forkIO pinger