name: vivid version: 0.2.0.1 x-revision: 1 synopsis: Sound synthesis with SuperCollider description: Music and sound synthesis with SuperCollider. . Example usage: . @ {-\# LANGUAGE DataKinds \#-} @ > import Vivid > > theSound = sd (0 ::I "note") $ do > wobble <- sinOsc (freq_ 5) ? KR ~* 10 ~+ 10 > s <- 0.1 ~* sinOsc (freq_ $ midiCPS (V::V "note") ~+ wobble) > out 0 [s,s] > > playSong = do > fork $ do > s0 <- synth theSound (36 ::I "note") > wait 1 > free s0 > s1 <- synth theSound (60 ::I "note") > forM_ [62,66,64] $ \note -> do > wait (1/4) > set s1 (note ::I "note") > wait (1/4) > free s1 > > main = do > putStrLn "Simplest:" > playSong > > putStrLn "With precise timing:" > doScheduledIn 0.1 playSong > wait 1 > > putStrLn "Written to a file, non-realtime synthesis:" > putStrLn "(Need to quit the running server for NRT)" > quitSCServer > writeNRT "/tmp/song.wav" playSong author: Tom Murphy maintainer: Tom Murphy category: Audio, Music, Sound build-type: Simple cabal-version: >=1.8 stability: experimental license: GPL library -- broken release: Could not find module ‘Vivid.OSC.Util’ build-depends: base<0 exposed-modules: Vivid , Vivid.Actions , Vivid.Actions.Class , Vivid.Actions.IO , Vivid.Actions.NRT , Vivid.Actions.Scheduled , Vivid.ByteBeat , Vivid.Envelopes , Vivid.NoPlugins , Vivid.OSC , Vivid.Randomness , Vivid.SCServer , Vivid.SCServer.Connection , Vivid.SCServer.State , Vivid.SCServer.Types , Vivid.SynthDef , Vivid.SynthDef.FromUA , Vivid.SynthDef.Literally , Vivid.SynthDef.ToSig , Vivid.SynthDef.Types , Vivid.SynthDef.TypesafeArgs , Vivid.UGens , Vivid.UGens.Algebraic , Vivid.UGens.Analysis , Vivid.UGens.Args , Vivid.UGens.Buffer , Vivid.UGens.Conversion , Vivid.UGens.Convolution , Vivid.UGens.Delays , Vivid.UGens.Demand , Vivid.UGens.Dynamics , Vivid.UGens.Envelopes , Vivid.UGens.Examples , Vivid.UGens.FFT , Vivid.UGens.Filters , Vivid.UGens.Filters.BEQSuite , Vivid.UGens.Filters.Linear , Vivid.UGens.Filters.Nonlinear , Vivid.UGens.Filters.Pitch , Vivid.UGens.Generators.Chaotic , Vivid.UGens.Generators.Deterministic , Vivid.UGens.Generators.Granular , Vivid.UGens.Generators.SingleValue , Vivid.UGens.Generators.Stochastic , Vivid.UGens.Info , Vivid.UGens.InOut , Vivid.UGens.Maths , Vivid.UGens.Multichannel , Vivid.UGens.Random , Vivid.UGens.Reverbs , Vivid.UGens.SynthControl , Vivid.UGens.Triggers , Vivid.UGens.Undocumented , Vivid.UGens.UserInteraction -- other-modules: build-depends: -- These package bounds are to comply with the PVP -- (https://wiki.haskell.org/Package_versioning_policy). -- Most/all of these upper bounds will be able to be bumped -- forevermore: if you're having trouble building this because -- of an upper bound, you can probably just bump it up. -- I'll try to bump version bounds whenever new compatible -- versions come out. -- Auto bounds from 'cabal init': base > 3 && < 5 -- Lower bound: -- Just a guess -- 0.5.0.2 is >5 years old -- I don't have a reason to think it needs a lower bound -- 0.2 is the oldest version on Hackage -- Upper bound: -- 0.9 doesn't exist yet , binary > 0.5.0.2 && < 0.9 -- Lower bound: -- Just a guess -- 0.9.1.8 is >5 years old -- I don't have a reason to think it needs a lower bound -- 0.9 is the oldest version on Hackage -- Upper bound: -- 0.11 doesn't exist yet , bytestring > 0.9.1.8 && < 0.11 -- Lower bound: -- Just a guess -- 0.4.0.0 is >5 years old -- I don't have a reason to think it needs a lower bound -- 0.1.0.0 is the oldest version on Hackage -- Upper bound: -- 0.6 doesn't exist yet , containers > 0.4.0.0 && < 0.6 -- Lower bound: -- 1.0 is the oldest version with 'takeExtension' -- (It's from 2007-05) -- Upper bound: -- 1.5 doesn't exist yet , filepath >= 1.0 && < 1.5 -- Lower bound: -- 1.1.1.0 is the first version with 'hashWithSalt' -- (It's from 2011-02) -- (Also betw 1.2 and 1.2.0.5 are marked as broken!) -- Upper bound: -- 1.3 doesn't exist yet , hashable >= 1.2.0.6 && < 1.3 -- Lower bound: -- 0.1 is the oldest version on Hackage -- Upper bound: -- 0.5 doesn't exist yet , MonadRandom >= 0.1 && < 0.5 -- Lower bound: -- Just a guess -- 0.2.0.0 is >5 years old -- I don't have a reason to think it needs a lower bound -- 1.0 is the oldest version on Hackage -- Upper bound: -- 2.3 doesn't exist yet , mtl >= 2.0.0.0 && < 2.3 -- Lower bound: -- Just a guess -- 2.3 is >5 years old -- I don't have a reason to think it needs a lower bound -- 2.0 is the oldest version on Hackage -- Upper bound: -- 2.7 doesn't exist yet , network >= 2.3 && < 2.7 -- Lower bound: -- Just a guess -- 1.0.1.4 is >5 years old -- I don't have a reason to think it needs a lower bound -- 1.0.0.0 is the oldest version on Hackage -- Upper bound: -- 1.5 doesn't exist yet , process >= 1.0.1.4 && < 1.5 -- Lower bound: -- Just a guess -- 1.0.0.3 is >5 years old -- I don't have a reason to think it needs a lower bound -- 1.0.0.0 is the oldest version on Hackage -- Upper bound: -- 1.2 doesn't exist yet -- /= : 1.0.1.3 is deprecated , random (>= 1.0.0.3 && <= 1.0.1.1) || (>= 1.1 && < 1.2) -- Lower bound: -- 0.0.3 is the first version with 'shuffleM' -- Upper bound: -- 0.1 doesn't exist yet (will it ever?) , random-shuffle >= 0.0.3 && < 0.1 -- Lower bound: -- 0.2.0.0 is the first version with 'chunksOf' -- Upper bound: -- 0.3 doesn't exist yet , split >= 0.2.0.0 && < 0.3 -- Lower bound: -- Just a guess -- 2.2.0.1 is >5 years old -- I don't have a reason to think it needs a lower bound -- 2.1 is the oldest version on Hackage -- Upper bound: -- 2.5 doesn't exist yet , stm >= 2.2.0.1 && < 2.5 -- Lower bound: -- Just a guess -- 1.2 is >5 years old -- I don't have a reason to think it needs a lower bound -- (Although check out 'old-time' and those changes -- but -- that's before 1.2) -- 1.0 is the oldest version on Hackage -- Upper bound: -- 1.7 doesn't exist yet , time >= 1.2 && < 1.7 -- Lower bound: -- Only need it for 'MonadIO' which came in 0.2.0.0 -- (0.2.0.0 is from 2010-03) -- Upper bound: -- 0.6 doesn't exist yet -- Note there are lots of deprecated versions but I'm taking -- a guess for now that 'liftIO' is fine in all of them , transformers >= 0.2.0.0 && < 0.6 ghc-options: -O2