packages feed

vivid-0.2.0.1: vivid.cabal

name:                vivid
version:             0.2.0.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
  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