packages feed

haskore-supercollider 0.1.2.2 → 0.2

raw patch · 16 files changed

+138/−154 lines, 16 filesdep ~arraydep ~bytestringdep ~containers

Dependency ranges changed: array, bytestring, containers, haskore-realtime, hosc, hsc3, opensoundcontrol-ht, process, supercollider-ht, transformers

Files

Makefile view
@@ -5,11 +5,11 @@  jack: # -n 2 is default, larger values are not supported-	jackd -d alsa -r 44100 -n 3 -d hw:0 &-#	jackd -d alsa -r 44100 -d hw:0 &+	jackd --nozombies -d alsa -Xseq -r 44100 -n 3 -d hw:0 &+#	jackd -d alsa -Xseq -r 44100 -d hw:0 &  jack-stop:-	kill `pgrep jackd`+	pkill jackd  supercollider: 	(export SC_JACK_DEFAULT_OUTPUTS=alsa_pcm:playback_1,alsa_pcm:playback_2; \@@ -25,7 +25,7 @@ # block size 4096 freezes the machine # more than two buffer blocks (-n 2) are not supported #	jackd --realtime -d alsa -r 44100 -p 4096 -d hw:0 &-	jackd --realtime -d alsa -r 44100 -d hw:0 &+	jackd --realtime -d alsa -Xseq -r 44100 -d hw:0 &  scj-rt:	jack-rt supercollider 	echo "start with 'sudo make scj-rt'"
haskore-supercollider.cabal view
@@ -1,5 +1,5 @@ Name:           haskore-supercollider-Version:        0.1.2.2+Version:        0.2 License:        GPL License-File:   LICENSE Author:         Henning Thielemann <haskell@henning-thielemann.de>@@ -26,7 +26,7 @@ Source-Repository this   type:     darcs   location: http://code.haskell.org/haskore/revised/supercollider/-  tag:      0.1.2.2+  tag:      0.2  Flag splitBase   description: Choose the new smaller, split-up base package.@@ -37,27 +37,27 @@  Library   Build-Depends:-    haskore-realtime >= 0.1 && < 0.2,+    haskore-realtime >= 0.2 && < 0.3,     haskore >=0.1 && <0.3,     -- for SuperCollider support-    hosc >=0.8 && <0.9,-    hsc3 >=0.8 && <0.9,-    opensoundcontrol-ht >=0.1 && <0.2,-    supercollider-ht >=0.1 && <0.2,-    bytestring >=0.9 && <1.0,+    hosc >=0.13 && <0.14,+    hsc3 >=0.13 && <0.14,+    opensoundcontrol-ht >=0.2 && <0.3,+    supercollider-ht >=0.2 && <0.3,+    bytestring >=0.9 && <0.11,     -- dependency on non-negative for Haddock     non-negative >=0.0.1 && <0.2,     event-list >=0.0.6 && <0.2,     data-accessor >=0.2 && <0.3,     utility-ht >=0.0.3 && <0.1,     unix >= 2.0 && <3,-    transformers >=0.2 && <0.3+    transformers >=0.2 && <0.5    If flag(splitBase)     Build-Depends:-      process >=1.0 && <1.1,-      array >=0.1 && <0.4,-      containers >=0.1 && <0.4,+      process >=1.0 && <1.2,+      array >=0.1 && <0.5,+      containers >=0.1 && <0.6,       random >=1.0 && <1.1,       base >=3 && <5   Else@@ -85,8 +85,6 @@     Haskore.Interface.SuperCollider.Schedule     Haskore.Interface.SuperCollider.Schedule.Install     Haskore.Interface.SuperCollider.Schedule.Channel-    -- deprecated-    Haskore.Interface.SuperCollider.Play.Life   Other-modules:     Haskore.Interface.SuperCollider.Timer     Haskore.General.IdGenerator
src/Haskore/Interface/SuperCollider/Channel.hs view
@@ -5,10 +5,9 @@  -- import qualified Sound.OpenSoundControl.Transport.Monad as Trans -import qualified Sound.SC3.UGen.UGen as SCUGen import qualified Sound.SC3.UGen.IO   as SCIO import qualified Sound.SC3.UGen.Rate as SCRate-import Sound.SC3.UGen.UGen (UGen)+import Sound.SC3.UGen.Type (UGen, constant, )   type Channel = Int@@ -36,8 +35,8 @@  readUGen :: NumberChannels -> Channel -> UGen readUGen numChan chan =-   SCIO.in' numChan SCRate.AR (SCUGen.Constant (fromIntegral chan))+   SCIO.in' numChan SCRate.AR (constant chan)  writeUGen :: Channel -> UGen -> UGen writeUGen chan =-   SCIO.out (SCUGen.Constant (fromIntegral chan))+   SCIO.out (constant chan)
src/Haskore/Interface/SuperCollider/Example.hs view
@@ -5,7 +5,7 @@ import qualified Haskore.Interface.SuperCollider.Schedule as Schedule import qualified Haskore.Interface.SuperCollider.SoundMap as SoundMap -import qualified Sound.SC3.UGen.UGen       as SCUGen+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@@ -15,9 +15,9 @@ import qualified Sound.SC3.UGen.Envelope.Construct as SCEnvCons import Sound.SC3.UGen.Enum            (DoneAction(DoNothing, PauseSynth),-            EnvCurve(EnvLin, EnvSin))+            Envelope_Curve(EnvLin, EnvSin)) -import           Sound.SC3.UGen.UGen (UGen)+import           Sound.SC3.UGen.Type (UGen, )  import           Haskore.Melody.Standard   as StdMelody import qualified Haskore.Melody            as Melody@@ -38,12 +38,14 @@  import qualified Data.Accessor.Basic as Accessor +import System.Exit (ExitCode, )  import Data.List (genericLength)-import Data.Ratio(Rational,(%))+import Data.Ratio ((%)) import System.Random (randomRs, mkStdGen)  + latency :: Schedule.Time latency = 0.1 @@ -53,30 +55,28 @@ play =    Play.schedule latency . snd -render :: Song -> IO ()+render :: Song -> IO ExitCode render (fileName, schedule) =    do B.writeFile (fileName++".osc") (Render.byteStringFromSchedule schedule)       Render.runSCSynth [] 2 Render.AIFF Render.Int16 44100 fileName-      return ()  - glissandoStringsUGen :: UGen -> UGen -> UGen glissandoStringsUGen vel freq =     let -- control = 2*freq - SCFilter.lag freq 0.2         control = SCFilter.lag freq 0.2         volume  = vel * 0.3-        tone0   = SCOsci.saw SCRate.AR (control * SCUGen.MCE [0.998, 1.005])-        tone1   = SCOsci.saw SCRate.AR (control * SCUGen.MCE [0.995, 1.002])+        tone0   = SCOsci.saw SCRate.AR (control * SCType.mce [0.998, 1.005])+        tone1   = SCOsci.saw SCRate.AR (control * SCType.mce [0.995, 1.002])     in  (tone0 + tone1) * volume  reverb :: UGen -> UGen -> UGen reverb dec x =    0.7*x + 0.03 *       sum (map-         (\delfl -> let del = SCUGen.Constant delfl+         (\delfl -> let del = SCType.constant (delfl :: Double)                     in  SCFilter.combN x del del dec)-         (take 8 (randomRs (0.01,0.03) (mkStdGen 2347))))+         (take 8 (randomRs (0.01, 0.03) (mkStdGen 2347))))  filterStrings :: SoundMap.Instrument filterStrings =@@ -115,7 +115,7 @@               (\detune phase -> SCOsci.lfSaw SCRate.AR (freq*detune) phase)               detunes phases         (tonesLeft,tonesRight) = splitAt n tones-    in  volume * SCUGen.MCE [sum tonesLeft, sum tonesRight]+    in  volume * SCType.mce [sum tonesLeft, sum tonesRight]  modulatedStrings :: SoundMap.Instrument modulatedStrings =@@ -131,7 +131,7 @@               (randomRs (2,5)     (mkStdGen 105))               (randomRs (0,2*pi)  (mkStdGen 234))         (tonesLeft,tonesRight) = splitAt n $ take (2*n) tones-    in  volume * SCUGen.MCE [sum tonesLeft, sum tonesRight]+    in  volume * SCType.mce [sum tonesLeft, sum tonesRight]  brass :: SoundMap.Instrument brass =@@ -165,7 +165,7 @@     let env = SCEnv.xLine SCRate.KR 1.5 0.1 1 DoNothing         saw = SCEnv.xLine SCRate.KR 1 0.05 5 DoNothing                * SCOsci.saw SCRate.AR-                    (SCUGen.MCE [freq*(1-detune), freq*(1+detune)])+                    (SCType.mce [freq*(1-detune), freq*(1+detune)])         prc = SCFilter.rlpf saw (exp (2*vel*env) * freq * 1.2) 0.05     in  prc * 0.1 @@ -202,7 +202,7 @@ harpsichord =   SoundMap.instrumentFromUGen $ \ vel freq ->    let env = SCEnv.xLine SCRate.KR 1.5 0.03 1 PauseSynth-       saw = SCOsci.saw SCRate.AR (SCUGen.MCE [freq*0.995, freq*1.005]) * env * vel+       saw = SCOsci.saw SCRate.AR (SCType.mce [freq*0.995, freq*1.005]) * env * vel    in  saw  @@ -217,7 +217,7 @@ colorDust sampleRate =   SoundMap.instrumentFromUGen $ \ _vel freq ->     0.0005 * SCFilter.rlpf-      (SCUGen.Constant sampleRate * SCNoise.dust seed SCRate.AR 10)+      (SCType.constant sampleRate * SCNoise.dust seed SCRate.AR 10)       freq 0.01  @@ -227,14 +227,14 @@  cubicSine :: UGen -> UGen cubicSine freq =-   let osci = SCOsci.sinOsc SCRate.AR (SCUGen.MCE [freq*1.003, freq*0.997]) 0+   let osci = SCOsci.sinOsc SCRate.AR (SCType.mce [freq*1.003, freq*0.997]) 0    in  osci*osci*osci  cubicPhaserSaw :: UGen -> UGen cubicPhaserSaw freq =    let osci dfreq = sum $ map (SCOsci.saw SCRate.AR) [dfreq*1.003, dfreq*0.997]        osciCubic dfreq = osci dfreq * osci dfreq * osci dfreq-   in  SCUGen.MCE [osciCubic (freq*1.002), osciCubic (freq*0.998)]+   in  SCType.mce [osciCubic (freq*1.002), osciCubic (freq*0.998)]   @@ -243,7 +243,7 @@ midiInstrMap :: SoundMap.InstrumentTable MidiMusic.Instr midiInstrMap =   [(MidiMusic.AcousticGrandPiano, sawPerc),-   (MidiMusic.SynthBass1,         dynPerc (SCUGen.Constant 0.003)),+   (MidiMusic.SynthBass1,         dynPerc 0.003),    (MidiMusic.SynthBrass1,        brass),    (MidiMusic.StringEnsemble1,    strings)] @@ -334,18 +334,18 @@         env     = SCEnv.envGen SCRate.KR 1 2 0 1 PauseSynth                      (SCEnvCons.envSine totalDur 1)                      -- (bridge 1 dur 1)-        tone0   = SCOsci.saw SCRate.AR (freq * SCUGen.MCE [0.998, 1.005])-        tone1   = SCOsci.saw SCRate.AR (freq * SCUGen.MCE [0.995, 1.002])+        tone0   = SCOsci.saw SCRate.AR (freq * SCType.mce [0.998, 1.005])+        tone1   = SCOsci.saw SCRate.AR (freq * SCType.mce [0.995, 1.002])     in  filtered -bridge :: UGen -> UGen -> UGen -> [UGen]+bridge :: UGen -> UGen -> UGen -> SCEnv.Envelope UGen bridge fadeDur sustainDur lvl =    let segTypes = [EnvSin, EnvLin, EnvSin]        clippedFadeDur = min fadeDur sustainDur-   in  SCEnvCons.env+   in  SCEnv.Envelope           [0, lvl, lvl, 0]           [clippedFadeDur, max 0 (sustainDur-fadeDur), clippedFadeDur]-          segTypes (-1) (-1)+          segTypes (Just (-1)) (Just (-1))  seed :: Int seed = 0@@ -354,7 +354,7 @@ hihat =   SoundMap.drumFromUGen $ \ vel ->    let noise = SCNoise.whiteNoise seed SCRate.AR-   in  SCFilter.hpf noise (SCUGen.MCE [4000, 4001]) *+   in  SCFilter.hpf noise (SCType.mce [4000, 4001]) *        SCEnv.xLine SCRate.KR 1 0.01 0.2 DoNothing * vel * 0.25  bassdrum :: SoundMap.Drum@@ -362,7 +362,7 @@   SoundMap.drumFromUGen $ \ vel ->    let freq = SCEnv.xLine SCRate.KR 100 10 0.5 DoNothing        env  = SCEnv.xLine SCRate.KR 1 0.1 0.5 DoNothing * vel * 0.8-       osci = SCOsci.sinOsc SCRate.AR freq 0 * SCUGen.MCE [env,env]+       osci = SCOsci.sinOsc SCRate.AR freq 0 * SCType.mce [env,env]    in  SCMath.clip2 0.5 osci --   in  0.7 * tanh osci @@ -372,7 +372,7 @@   SoundMap.drumFromUGen $ \ vel ->    let freq = SCEnv.xLine SCRate.KR 100 10 0.5 DoNothing        env  = SCEnv.xLine SCRate.KR 1.5 0.1 0.5 DoNothing * vel * 0.8-       osci = SCOsci.sinOsc SCRate.AR freq 0 * SCUGen.MCE [env,env]+       osci = SCOsci.sinOsc SCRate.AR freq 0 * SCType.mce [env,env]        distorted = sin (osci^(3::Int))    in  distorted @@ -384,7 +384,7 @@        env  = SCEnv.xLine SCRate.KR 1 0.1 0.5 DoNothing * vel * 0.8        modu = SCOsci.sinOsc SCRate.AR (2.17*freq) 0 * (2*env)        osci = SCOsci.sinOsc SCRate.AR freq modu-   in  osci * SCUGen.MCE [env,env]+   in  osci * SCType.mce [env,env]   bassdrumNoisy :: SoundMap.Drum@@ -399,7 +399,7 @@                SCEnv.xLine SCRate.KR 2 0.00001 0.15 PauseSynth        noise = SCFilter.lpf (SCNoise.whiteNoise seed SCRate.AR) 5000 * nsenv        drm   = SCMath.clip2 0.5 (osci + noise) * vel * 0.8-   in  SCUGen.MCE [drm,drm]+   in  SCType.mce [drm,drm]   @@ -528,7 +528,7 @@        (SoundMap.registerInstrument dynPercAssign $ \dynPercUG ->         SoundMap.registerInstrument sawPercAssign $ \sawPercUG ->           let lfoSine   = exp (SCOsci.sinOsc SCRate.KR 0.2 (-pi/2) * 0.5) * 1000-              lfoSquare = exp (SCOsci.pulse SCRate.KR 5.1 0.5 * 1) * 1000+              lfoSquare = exp (SCOsci.impulse SCRate.KR 5.1 0.5 * 1) * 1000               mix =                  SCFilter.rlpf (0.5 * sawPercUG) lfoSine 0.1 +                  SCFilter.rlpf (0.5 * dynPercUG) lfoSquare 0.1
src/Haskore/Interface/SuperCollider/Example/Air.hs view
@@ -1,11 +1,10 @@ {- |-Demonstration song using with SuperCollider and global effects.+Demonstration song using SuperCollider and global effects. This was arranged for the HAL2 meeting in July 2007, Leipzig. -} module Haskore.Interface.SuperCollider.Example.Air where  -- import qualified Sound.SC3 as SC-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.Envelope   as SCUGEnv@@ -14,7 +13,8 @@ import Sound.SC3.UGen.Enum (DoneAction(PauseSynth)) import Sound.SC3.UGen.Rate (Rate(KR)) -import Sound.SC3.UGen.UGen (UGen)+import qualified Sound.SC3.UGen.Type as SCType+import Sound.SC3.UGen.Type (UGen)  import qualified Haskore.Interface.SuperCollider.Example  as Example import qualified Haskore.Interface.SuperCollider.Play     as Play@@ -304,9 +304,9 @@ schedule =    CSchedule.fromRhythmicMusic $    do bass     <- installSound SoundMap.with0Attributes "bass"-                     (Example.fmBass (SCUGen.MCE [0.99,1.01]))+                     (Example.fmBass (SCType.mce [0.99,1.01]))       guitar   <- installSound SoundMap.with0Attributes "guitar"-                     (Example.fmGuitar (SCUGen.MCE [2.99,3.01]))+                     (Example.fmGuitar (SCType.mce [2.99,3.01]))       strings  <- installSound SoundMap.with1Attribute "strings"                      envelopedStrings       harpsichord <- installSound SoundMap.with0Attributes "harpsichord"@@ -320,7 +320,7 @@       bassdrum <- installSound SoundMap.with0Attributes "bassdrum"                      Example.bassdrum       let lfoSine = 1000 * exp-             (0.3 * SCOsci.sinOsc KR 0.1 (SCUGen.MCE [-pi/2, 0]) ++             (0.3 * SCOsci.sinOsc KR 0.1 (SCType.mce [-pi/2, 0]) +               0.3 * SCOsci.sinOsc KR (sqrt 0.03) 0)           mix = flip SCMath.clip2 1 $ 0.2 * (             ugenFromSound bass +
src/Haskore/Interface/SuperCollider/Example/Morph.hs view
@@ -6,7 +6,6 @@ module Haskore.Interface.SuperCollider.Example.Morph where  -- import qualified Sound.SC3 as SC-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.Math       as SCMath@@ -16,7 +15,8 @@ import Sound.SC3.UGen.Enum (DoneAction(PauseSynth), {- EnvCurve(EnvSin,EnvExp) -} ) import Sound.SC3.UGen.Rate (Rate(KR,AR)) -import Sound.SC3.UGen.UGen (UGen)+import qualified Sound.SC3.UGen.Type as SCType+import Sound.SC3.UGen.Type (UGen)  import qualified Haskore.Interface.SuperCollider.Example  as Example import qualified Haskore.Interface.SuperCollider.Play     as Play@@ -51,9 +51,9 @@      let dur = 0.3          env = SCEnv.envGen KR 1 1 0 1 PauseSynth                      (SCEnvCons.envSine dur 1)-     in  0.2 * env * SCUGen.MCE [1+pan,1-pan] *+     in  0.2 * env * SCType.mce [1+pan,1-pan] *          SCFilt.hpf-            (SCOsci.pulse AR (SCUGen.MCE [freq*0.995, freq*1.005]) 0.5)+            (SCOsci.pulse AR (SCType.mce [freq*0.995, freq*1.005]) 0.5)             (4000 * 0.5**env) -} @@ -70,9 +70,9 @@                       [EnvSin, EnvExp]                       (-1) (-1) -}-     in  vel * env * SCUGen.MCE [1+pan,1-pan] *+     in  vel * env * SCType.mce [1+pan,1-pan] *          SCFilt.hpf-            (SCOsci.saw AR (SCUGen.MCE [freq*0.995, freq*1.005]))+            (SCOsci.saw AR (SCType.mce [freq*0.995, freq*1.005]))             (2000 * 0.5**env)  @@ -114,7 +114,7 @@ bassSquare :: SoundMap.Instrument bassSquare =   SoundMap.instrumentFromUGen $ \ vel freq ->-     vel * SCOsci.pulse AR (SCUGen.MCE [freq*0.999, freq*1.001])+     vel * SCOsci.pulse AR (SCType.mce [freq*0.999, freq*1.001])             (0.5 + 0.3 * SCOsci.sinOsc KR 0.3 0)  infix 7 +:
src/Haskore/Interface/SuperCollider/Play.hs view
@@ -25,8 +25,8 @@  -- import Sound.SC3.UGen.UGen (UGen) -import qualified Sound.OpenSoundControl.Transport.Monad as Trans-import Sound.OpenSoundControl.OSC (OSC(Bundle))+import Sound.OSC.Transport.Monad (Transport, waitReply, )+import qualified Sound.OpenSoundControl.Type as OSC import qualified Sound.OpenSoundControl.Time as OSCTime  @@ -83,9 +83,9 @@    Schedule.fromMelody sound  -performanceTrans :: (Trans.C m, MonadIO m) =>+performanceTrans :: (Transport m, MonadIO m) =>    Time ->-   [OSC] ->+   [OSC.Message] ->    SCPf.T Time ->    m () performanceTrans latency installMsgs =@@ -95,7 +95,7 @@  performance ::    Time ->-   [OSC] ->+   [OSC.Message] ->    SCPf.T Time ->    IO () performance latency installMsgs =@@ -128,14 +128,13 @@ defaultLatency :: Time defaultLatency = 0.1 - -- should be moved to Hsc or supercollider-ht-timeStamp :: Time -> Time -> [OSC] -> OSC-timeStamp start t = Bundle $ OSCTime.UTCr $ NonNeg.toNumber (start+t)+timeStamp :: Time -> Time -> [OSC.Message] -> OSC.Bundle+timeStamp start t msgs = OSC.Bundle (OSCTime.ut_to_ntpr $ NonNeg.toNumber (start+t)) msgs   installSound ::-   (Trans.C m, SoundMap.SoundParameters params) =>+   (Transport m, SoundMap.SoundParameters params) =>    String ->    Sound params ->    m ()@@ -143,13 +142,13 @@    SCPlay.simpleSync $ Schedule.installSoundMsg name Schedule.defaultChannel instr  -playAtom :: Trans.C m =>+playAtom :: Transport m =>       SCPlay.NodeId    -> String    -> [(String,Double)]    -> m () playAtom sid name params =-   Trans.send (Schedule.atomPlayMsg sid name params)+   SCPlay.send (Schedule.atomPlayMsg sid name params)   @@ -186,8 +185,8 @@  -} -scheduleWithPlayer :: Trans.C m =>-   (TimeList.T Time OSC -> m ()) ->+scheduleWithPlayer :: Transport m =>+   (TimeList.T Time OSC.Message -> m ()) ->    Schedule.T ->    m () scheduleWithPlayer player sc =@@ -203,8 +202,8 @@       http://lists.lurk.org/pipermail/haskell-art/2008-February/000102.html       -}       let isc = Schedule.initial sc-      mapM_ Trans.send isc-      mapM_ (const (Trans.wait "/done" >> return ())) isc+      mapM_ SCPlay.send isc+      mapM_ (const (waitReply "/done" >> return ())) isc        player (Schedule.body sc)       return ()@@ -218,18 +217,18 @@ that is, the maximal expected delay of creating and sending messages to the SuperCollider server. -}-messagesGrouped :: (Trans.C m) =>+messagesGrouped :: (Transport m) =>    Timer.T m ->    Time ->-   TimeList.T Time OSC -> m ()+   TimeList.T Time OSC.Message -> m () messagesGrouped timer latency =    liftM (const ()) .    TimeList.runTimeStampGrouped timer-      (\time -> Trans.send . timeStamp latency time)+      (\time -> SCPlay.send . timeStamp latency time) {-       (\time msgs ->          liftIO (print time) >>-         Trans.send (timeStamp latency time msgs))+         SCPlay.send (timeStamp latency time msgs)) -}  {-@@ -237,10 +236,10 @@ This results in splitted events which actually should occur at the same time. This makes SuperCollider switching the order messages in certain occasions. -}-messagesGroupedManual :: (Trans.C m) =>+messagesGroupedManual :: (Transport m) =>    Timer.T m ->    Time ->-   TimeList.T Time OSC -> m ()+   TimeList.T Time OSC.Message -> m () messagesGroupedManual timer latency =    liftM (const ()) .    -- (\ pf -> liftIO Timer.getTimeSeconds >>= \startTime ->@@ -255,25 +254,25 @@          (liftIO $ putStr (show (time-startTime) ++ ": ") >>                    (print $ map eventToMark es)) >>          -}-         (Trans.send . timeStamp latency time)) -- pf)+         (SCPlay.send . timeStamp latency time)) -- pf)      . TimeList.collectCoincident -messagesSingly :: (Trans.C m) =>+messagesSingly :: (Transport m) =>    Timer.T m ->    Time ->-   TimeList.T Time OSC -> m ()+   TimeList.T Time OSC.Message -> m () messagesSingly timer latency =    liftM (const ()) .    TimeList.runTimeStamp timer       (\time ->          -- (liftIO $ print $ eventToMark e) >>-         (Trans.send . timeStamp latency time . (:[])))+         (SCPlay.send . timeStamp latency time . (:[])))  -messagesSimple :: (Trans.C m) =>+messagesSimple :: (Transport m) =>    Timer.T m ->-   TimeList.T Time OSC ->+   TimeList.T Time OSC.Message ->    m () messagesSimple timer =    liftM (const ()) .-   TimeList.run timer Trans.send+   TimeList.run timer SCPlay.send
src/Haskore/Interface/SuperCollider/Play/Channel.hs view
@@ -7,7 +7,6 @@    {-# DEPRECATED "use Haskore.Interface.SuperCollider.Schedule.Channel instead" #-}    where -import qualified Sound.SC3.UGen.UGen as SCUGen import qualified Sound.SC3.UGen.Oscillator as SCOsci import qualified Sound.SC3.UGen.Filter     as SCFilt @@ -16,11 +15,11 @@ import qualified Sound.SC3.Server.PlayEasy  as SCPlay import qualified Sound.SC3.Server.Command   as SCCmd -import Sound.SC3.UGen.UGen (UGen)+import Sound.SC3.UGen.Type (UGen) -import Sound.OpenSoundControl.Transport (Transport)-import Sound.OpenSoundControl.Transport.UDP  (UDP)-import qualified Sound.OpenSoundControl.Transport.File  as File+import Sound.OSC.Transport.FD (Transport)+import Sound.OSC.Transport.FD.UDP  (UDP)+import qualified Sound.OpenSoundControl.Transport.File as File  import qualified Haskore.Interface.SuperCollider.Channel.State as ChannelState import qualified Haskore.Interface.SuperCollider.Channel as Channel@@ -48,7 +47,6 @@  import qualified Haskore.General.IdGenerator      as IdGen -import qualified Control.Monad.Trans.State as State import Control.Monad.Trans.State  (StateT, evalStateT, ) import Control.Monad.Trans.Reader (ReaderT, ) import Control.Monad.Trans.Class (lift, )
src/Haskore/Interface/SuperCollider/Play/Install.hs view
@@ -10,13 +10,11 @@    {-# DEPRECATED "use Haskore.Interface.SuperCollider.Schedule.Install instead" #-}    where -import qualified Sound.SC3.UGen.UGen as SCUGen- import qualified Sound.SC3.Server.PlayEasy  as SCPlay -import Sound.SC3.UGen.UGen (UGen)+import Sound.SC3.UGen.Type (UGen) -import qualified Sound.OpenSoundControl.Transport.Monad as Trans+import Sound.OSC.Transport.Monad (Transport, )  import Haskore.Interface.SuperCollider.Schedule.Install    (Sound(..),@@ -40,7 +38,7 @@   installSound ::-   (Trans.C m, SoundMap.SoundParameters params) =>+   (Transport m, SoundMap.SoundParameters params) =>    (parameterTuple -> AttributeList, graph -> SoundMap.Sound params) ->    String ->    graph ->@@ -51,7 +49,7 @@   installSound0 ::-   (Trans.C m, SoundMap.SoundParameters params) =>+   (Transport m, SoundMap.SoundParameters params) =>    String ->    SoundMap.Sound params ->    m (Sound params ())@@ -59,7 +57,7 @@    installSound SoundMap.with0Attributes  installSound1 ::-   (Trans.C m, SoundMap.SoundParameters params) =>+   (Transport m, SoundMap.SoundParameters params) =>    String ->    (UGen -> SoundMap.Sound params) ->    m (Sound params Double)@@ -67,7 +65,7 @@    installSound SoundMap.with1Attribute  installSound2 ::-   (Trans.C m, SoundMap.SoundParameters params) =>+   (Transport m, SoundMap.SoundParameters params) =>    String ->    (UGen -> UGen -> SoundMap.Sound params) ->    m (Sound params (Double,Double))@@ -77,7 +75,7 @@   -playMusic :: (Trans.C m, MonadIO m) =>+playMusic :: (Transport m, MonadIO m) =>    RhyMusic.T DrumAttributes InstrumentAttributes -> m () playMusic =    Play.performanceTrans Play.defaultLatency [] .
− src/Haskore/Interface/SuperCollider/Play/Life.hs
@@ -1,5 +0,0 @@-module Haskore.Interface.SuperCollider.Play.Life-   {-# DEPRECATED "use Play.Live instead" #-}-   (module Haskore.Interface.SuperCollider.Play.Live) where--import Haskore.Interface.SuperCollider.Play.Live
src/Haskore/Interface/SuperCollider/Play/Live.hs view
@@ -29,10 +29,10 @@ import qualified Sound.SC3.Server.PlayEasy  as SCPlay import qualified Sound.SC3.Server.Command   as SCCmd -import Sound.SC3.UGen.UGen (UGen)+import Sound.SC3.UGen.Type (UGen, constant, ) -import Sound.OpenSoundControl.Transport (Transport)-import qualified Sound.OpenSoundControl.Transport.Monad as Trans+import Sound.OSC.Transport.FD (Transport)+import qualified Sound.OSC.Transport.Monad as Trans  import qualified Haskore.Interface.SuperCollider.Example       as Example import qualified Haskore.Interface.SuperCollider.Play.Install  as IPlay@@ -157,7 +157,7 @@       chan <- Channel.next ChannelEnv.manager numChan       SCPlay.withSC3 $          SCPlay.simpleSync $ SCPlay.d_recv_synthdef name $-         SCIO.out (SCUGen.Constant (fromIntegral chan)) ugen+         SCIO.out (constant chan) ugen       return (chan, numChan)  
src/Haskore/Interface/SuperCollider/Render.hs view
@@ -17,7 +17,7 @@ -- import Sound.OpenSoundControl.Transport (Transport) -- import qualified Sound.OpenSoundControl.Transport.Monad as Trans -import Sound.OpenSoundControl.OSC (OSC(Bundle))+import qualified Sound.OpenSoundControl.Type as OSC import qualified Sound.OpenSoundControl.Time as OSCTime  import qualified Data.ByteString.Lazy as B@@ -105,14 +105,15 @@  scheduleToStream ::    Schedule.T ->-   [OSC]+   SCNRT.NRT scheduleToStream sc =+   SCNRT.NRT $    timeStamp 0 (Schedule.initial sc) :    messagesToStream (Schedule.body sc)  messagesToStream ::-   TimeList.T Time OSC ->-   [OSC]+   TimeList.T Time OSC.Message ->+   [OSC.Bundle] messagesToStream =    map (uncurry timeStamp) .    AbsoluteEventList.toPairList .@@ -121,5 +122,5 @@    AbsoluteEventList.collectCoincident .    TimeList.toAbsoluteEventList 0 -timeStamp :: Time -> [OSC] -> OSC-timeStamp = Bundle . OSCTime.NTPr . NonNeg.toNumber+timeStamp :: Time -> [OSC.Message] -> OSC.Bundle+timeStamp = OSC.Bundle . OSCTime.ut_to_ntpr . NonNeg.toNumber
src/Haskore/Interface/SuperCollider/Schedule.hs view
@@ -17,14 +17,12 @@     -- fromMelodyPerformance,   ) where -import qualified Sound.SC3.UGen.UGen as SCUGen- import qualified Sound.SC3.Server.Command   as SCCmd import qualified Sound.SC3.Server.PlayEasy  as SCPlay -import Sound.SC3.UGen.UGen (UGen)+import Sound.SC3.UGen.Type (UGen) -import Sound.OpenSoundControl.OSC (OSC)+import qualified Sound.OpenSoundControl.Type as OSC  import qualified Haskore.Interface.SuperCollider.Note          as Note import qualified Haskore.Interface.SuperCollider.Performance   as SCPf@@ -57,10 +55,10 @@  data T =    Cons {-      initial :: [OSC]+      initial :: [OSC.Message]           {- ^ All of these messages must be synchronous!                Otherwise the player might wait forever. -},-      body    :: TimeList.T Time OSC+      body    :: TimeList.T Time OSC.Message    }     deriving Show @@ -82,7 +80,7 @@    SCPf.fromMusic makeNote  fromMusicMsgs :: Ord note =>-   (Note.FromNote NonNeg.Double note, [OSC]) ->+   (Note.FromNote NonNeg.Double note, [OSC.Message]) ->    Music.T note ->    T fromMusicMsgs (makeNote, installSounds) =@@ -208,8 +206,8 @@   fromPerformance ::-   [OSC] ->-   [OSC] ->+   [OSC.Message] ->+   [OSC.Message] ->    SCPf.T Time ->    T fromPerformance installInstruments globalEffects pf =@@ -219,10 +217,10 @@          (resetMsgs ++ globalEffects) (messagesFromPerformance pf))  -prependInitialMsgs :: [OSC] -> TimeList.T Time OSC -> TimeList.T Time OSC+prependInitialMsgs :: [OSC.Message] -> TimeList.T Time OSC.Message -> TimeList.T Time OSC.Message prependInitialMsgs = flip (foldr (TimeList.cons 0)) -messagesFromPerformance :: SCPf.T Time -> TimeList.T Time OSC+messagesFromPerformance :: SCPf.T Time -> TimeList.T Time OSC.Message messagesFromPerformance =    flip TimeListPad.snocBody stopMsg .    TimeListPad.mapBody (uncurry eventToMsg)@@ -231,11 +229,11 @@  {- * Construction of OpenSoundControl messages -} -stopMsg :: OSC+stopMsg :: OSC.Message stopMsg = SCCmd.g_freeAll [SCPlay.homeId]  -resetMsgs :: [OSC]+resetMsgs :: [OSC.Message] resetMsgs =    [SCCmd.g_freeAll [SCPlay.rootId],     SCCmd.g_new [(SCPlay.homeId, SCCmd.AddToTail, SCPlay.rootId)]]@@ -245,7 +243,7 @@    SCPlay.NodeId ->    String ->    [(String, Double)] ->-   OSC+   OSC.Message atomPlayMsg sid name =    SCCmd.s_new name sid SCCmd.AddToHead SCPlay.homeId    -- adding to head is necessary for allowing global effects like in the Live module@@ -255,7 +253,7 @@    String ->    Channel ->    UGen ->-   OSC+   OSC.Message installUGenMsg name chan =    SCPlay.d_recv_synthdef name .    Channel.writeUGen chan@@ -265,7 +263,7 @@    String ->    Channel ->    Sound params ->-   OSC+   OSC.Message installSoundMsg name chan =    installUGenMsg name chan . SoundMap.ugenFromSound @@ -277,14 +275,14 @@ installSoundsMsg ::    Channel ->    [SoundAssign] ->-   [OSC]+   [OSC.Message] installSoundsMsg channel =    map (\(name,sound) ->            installUGenMsg name channel sound)  installChannelSoundsMsg ::    [(SoundMap.Name, Channel, UGen)] ->-   [OSC]+   [OSC.Message] installChannelSoundsMsg =    map (\(name, channel, ugen) ->            installUGenMsg name channel ugen)@@ -309,7 +307,7 @@ eventToMark (sid, note) =    (sid, maybe False (const True) note) -eventToMsg :: SCPlay.NodeId -> Maybe (Time, Note.T) -> OSC+eventToMsg :: SCPlay.NodeId -> Maybe (Time, Note.T) -> OSC.Message eventToMsg sid =    maybe       (SCCmd.n_free [sid])
src/Haskore/Interface/SuperCollider/Schedule/Channel.hs view
@@ -5,7 +5,6 @@ -} module Haskore.Interface.SuperCollider.Schedule.Channel where -import qualified Sound.SC3.UGen.UGen       as SCUGen import qualified Sound.SC3.UGen.Oscillator as SCOsci import qualified Sound.SC3.UGen.Filter     as SCFilt @@ -14,9 +13,9 @@ import qualified Sound.SC3.Server.PlayEasy  as SCPlay import qualified Sound.SC3.Server.Command   as SCCmd -import Sound.SC3.UGen.UGen (UGen)+import Sound.SC3.UGen.Type (UGen) -import Sound.OpenSoundControl.OSC (OSC)+import qualified Sound.OpenSoundControl.Type as OSC  import qualified Haskore.Interface.SuperCollider.Channel as Channel import Haskore.Interface.SuperCollider.Channel (Channel, NumberChannels)@@ -42,7 +41,6 @@  import qualified Haskore.General.IdGenerator      as IdGen -import qualified Control.Monad.Trans.State as State import Control.Monad.Trans.State  (StateT, runStateT, get, put, ) import Control.Monad.Trans.Writer (Writer, tell, runWriter, ) import Control.Monad.Trans.Class (lift, )@@ -55,13 +53,13 @@  newtype Environment a =    Environment {unwrapEnvironment ::-      StateT (Channel, NumberChannels) (Writer [OSC]) a}+      StateT (Channel, NumberChannels) (Writer [OSC.Message]) a}  instance Monad Environment where    x >>= y  = Environment $ unwrapEnvironment . y =<< unwrapEnvironment x    return   = Environment . return -writeOSC :: [OSC] -> Environment ()+writeOSC :: [OSC.Message] -> Environment () writeOSC = Environment . lift . tell  nextChannel :: NumberChannels -> Environment Channel
src/Haskore/Interface/SuperCollider/Schedule/Install.hs view
@@ -6,9 +6,9 @@ -} module Haskore.Interface.SuperCollider.Schedule.Install where -import Sound.SC3.UGen.UGen (UGen)+import Sound.SC3.UGen.Type (UGen) -import Sound.OpenSoundControl.OSC (OSC)+import qualified Sound.OpenSoundControl.Type as OSC  import qualified Haskore.Interface.SuperCollider.Example       as Example import qualified Haskore.Interface.SuperCollider.Play          as Play@@ -33,18 +33,18 @@   {- |-The @[OSC]@ state is used for messages for installing the instruments.+The @[OSC.Message]@ state is used for messages for installing the instruments. We cannot use a Writer monad for this purpose because we have to read the generated messages for 'playMusic'. -} newtype Environment a =-   Environment {unwrapEnvironment :: Writer [OSC] a}+   Environment {unwrapEnvironment :: Writer [OSC.Message] a}  instance Monad Environment where    x >>= y  = Environment $ unwrapEnvironment . y =<< unwrapEnvironment x    return   = Environment . return -writeOSC :: [OSC] -> Environment ()+writeOSC :: [OSC.Message] -> Environment () writeOSC = Environment . tell  
src/Haskore/Interface/SuperCollider/SoundMap.hs view
@@ -11,7 +11,7 @@ import qualified Sound.SC3.UGen.Rate as SCRate import qualified Sound.SC3.UGen.UGen as SCUGen -import Sound.SC3.UGen.UGen (UGen)+import Sound.SC3.UGen.Type (UGen)  import Data.Maybe.HT (toMaybe, ) import Data.Maybe (mapMaybe, )