packages feed

synthesizer-llvm-0.5.0.1: synthesizer-llvm.cabal

Name:           synthesizer-llvm
Version:        0.5.0.1
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/Synthesizer
Package-URL:    http://code.haskell.org/synthesizer/llvm/
Category:       Sound, Music
Synopsis:       Efficient signal processing using runtime compilation
Description:
  Efficient signal processing
  using runtime compilation and vector instructions.
  It uses LLVM library, thus it is not bound to a specific CPU.
  There are some example executables that you can build
  with Cabal flag @buildExamples@:
  .
  * @synthi-llvm-render@:
    Render a MIDI file into an audio file
    using some arbitrary instruments.
  .
  * @synthi-llvm-alsa@:
    A realtime software synthesizer
    that receives MIDI events via ALSA
    and in response plays tones via ALSA.
    If you have no ALSA (or Linux at all),
    then you can disable this example with @-f-alsa@.
  .
  * @synthi-llvm-jack@:
    The same realtime software synthesizer using JACK.
    If you have no JACK,
    then you can disable this example with @-f-jack@.
  .
  * @synthi-llvm-example@:
    Not very useful as an executable.
    You should better load the according module into GHCi
    and play around with it.
Stability:      Experimental
Tested-With:    GHC==6.10.4, GHC==6.12.3
Tested-With:    GHC==7.0.4, GHC==7.2.1, GHC==7.4.1, GHC==7.6.3
Cabal-Version:  >=1.14
Build-Type:     Simple

Flag buildExamples
  description: Build example executables
  default:     False

Flag buildTests
  description: Build test suite
  default:     False

Flag alsa
  description: Build ALSA synthesizer if examples are built
  default:     True

Flag jack
  description: Build JACK synthesizer if examples are built
  default:     True

Source-Repository this
  Tag:         0.5.0.1
  Type:        darcs
  Location:    http://code.haskell.org/synthesizer/llvm/

Source-Repository head
  Type:        darcs
  Location:    http://code.haskell.org/synthesizer/llvm/


Library
  Build-Depends:
    llvm-extra >=0.4.1 && <0.5,
    -- llvm must be imported with restrictive version bounds,
    -- because we import implicitly and unqualified
    llvm-tf >=3.0 && <3.0.1,
    tfp >=0.7 && <0.8,
    vault >=0.1 && <0.3,
    synthesizer-core >=0.6 && <0.7,
    synthesizer-midi >=0.6 && <0.7,
    midi >=0.2.1 && <0.3,
    storable-record >=0.0.2 && <0.1,
    storable-tuple >=0.0.2 && <0.1,
    sox >=0.2 && <0.3,
    sample-frame-np >=0.0.1 && <0.1,
    sample-frame >=0.0.1 && <0.1,
    storablevector >=0.2.6 && <0.3,
    unsafe >=0.0 && <0.1,
    numeric-prelude >=0.3 && <0.5,
    non-negative >=0.1 && <0.2,
    event-list >=0.1 && <0.2,
    filepath >=1.1 && <1.4,
    random >=1.0 && <1.1,
    containers >=0.1 && <0.6,
    transformers >=0.2 && <0.4,
    utility-ht >=0.0.8 && <0.1

  Build-Depends:
    -- base-4 needed for Control.Category
    base >=4 && <5

  Default-Language: Haskell98
  GHC-Options:    -Wall
  If impl(ghc>=7.0)
    GHC-Options: -fwarn-unused-do-bind -fcontext-stack=1000
    CPP-Options: -DNoImplicitPrelude=RebindableSyntax
    Default-Extensions: CPP

  Hs-source-dirs: src
  Exposed-Modules:
    Synthesizer.LLVM.Simple.Signal
    Synthesizer.LLVM.Simple.Value
    Synthesizer.LLVM.Simple.Vanilla
    Synthesizer.LLVM.Parameterized.Signal
    Synthesizer.LLVM.Parameterized.SignalPacked
    -- Synthesizer.LLVM.Parameterized.Value
    Synthesizer.LLVM.Parameter
    Synthesizer.LLVM.Storable.Signal
    Synthesizer.LLVM.Storable.Process
    Synthesizer.LLVM.Causal.Process
    Synthesizer.LLVM.CausalParameterized.Process
    Synthesizer.LLVM.CausalParameterized.ProcessValue
    Synthesizer.LLVM.CausalParameterized.ProcessPacked
    Synthesizer.LLVM.CausalParameterized.Controlled
    Synthesizer.LLVM.CausalParameterized.ControlledPacked
    Synthesizer.LLVM.CausalParameterized.Functional
    Synthesizer.LLVM.CausalParameterized.FunctionalPlug
    Synthesizer.LLVM.Plug.Input
    Synthesizer.LLVM.Plug.Output
    Synthesizer.LLVM.Filter.Allpass
    Synthesizer.LLVM.Filter.Butterworth
    Synthesizer.LLVM.Filter.Chebyshev
    Synthesizer.LLVM.Filter.ComplexFirstOrder
    Synthesizer.LLVM.Filter.ComplexFirstOrderPacked
    Synthesizer.LLVM.Filter.FirstOrder
    Synthesizer.LLVM.Filter.SecondOrder
    Synthesizer.LLVM.Filter.SecondOrderPacked
    Synthesizer.LLVM.Filter.SecondOrderCascade
    Synthesizer.LLVM.Filter.Moog
    Synthesizer.LLVM.Filter.Universal
    Synthesizer.LLVM.Generator.Exponential2
    Synthesizer.LLVM.RingBuffer
    Synthesizer.LLVM.ConstantPiece
    Synthesizer.LLVM.Frame.SerialVector
    Synthesizer.LLVM.Frame
    Synthesizer.LLVM.Frame.Stereo
    Synthesizer.LLVM.Frame.StereoInterleaved
    Synthesizer.LLVM.Complex
    Synthesizer.LLVM.Wave
    Synthesizer.LLVM.MIDI
    Synthesizer.LLVM.MIDI.BendModulation
    Synthesizer.LLVM.Server.Packed.Instrument
    Synthesizer.LLVM.Server.Scalar.Instrument
    Synthesizer.LLVM.Server.CausalPacked.Instrument
    Synthesizer.LLVM.Server.CausalPacked.InstrumentPlug
    Synthesizer.LLVM.Server.CausalPacked.Speech
    Synthesizer.LLVM.Server.CausalPacked.Arrange
    Synthesizer.LLVM.Server.SampledSound
    Synthesizer.LLVM.Server.Common
    Synthesizer.LLVM.Server.CommonPacked

  Other-Modules:
    Synthesizer.LLVM.Random
    Synthesizer.LLVM.EventIterator
    Synthesizer.LLVM.Storable.ChunkIterator
    Synthesizer.LLVM.Storable.LazySizeIterator
    Synthesizer.LLVM.Parameterized.SignalPrivate
    Synthesizer.LLVM.CausalParameterized.ProcessPrivate
    Synthesizer.LLVM.Debug.Counter
    Synthesizer.LLVM.Debug.StablePtr
    Synthesizer.LLVM.Debug.Storable
    -- may be moved to llvm-extra
    Synthesizer.LLVM.Execution
    -- shall be removed when Foreign.Marshal.Alloc is fixed
    Synthesizer.LLVM.Alloc

Executable synthi-llvm-example
  If flag(buildExamples) && flag(alsa)
    Build-Depends:
      synthesizer-llvm,

      llvm-extra >=0.4.1 && <0.5,
      llvm-tf,
      tfp >=0.7 && <0.8,
      synthesizer-core >=0.6 && <0.7,
      synthesizer-midi >=0.6 && <0.7,
      midi >=0.2.1 && <0.3,
      storable-record >=0.0.2 && <0.1,
      storable-tuple >=0.0.2 && <0.1,
      sox >=0.2 && <0.3,
      sample-frame-np >=0.0.1 && <0.1,
      sample-frame >=0.0.1 && <0.1,
      storablevector >=0.2.6 && <0.3,
      numeric-prelude >=0.3 && <0.5,
      non-negative >=0.1 && <0.2,
      event-list >=0.1 && <0.2,
      random >=1.0 && <1.1,
      containers >=0.1 && <0.6,
      transformers >=0.2 && <0.4,
      utility-ht >=0.0.8 && <0.1,

      synthesizer-alsa >=0.5 && <0.6,
      alsa-pcm >=0.6 && <0.7,
      base >=4 && <5
  Else
    Buildable: False
  Default-Language: Haskell98
  GHC-Options:      -Wall
  GHC-Prof-Options: -auto-all
  If impl(ghc>=7.0)
    GHC-Options: -fwarn-unused-do-bind -fcontext-stack=1000
    CPP-Options: -DNoImplicitPrelude=RebindableSyntax
    Default-Extensions: CPP
  Hs-Source-Dirs: example
  Main-Is:     Synthesizer/LLVM/Test.hs
  Other-Modules:
    Synthesizer.LLVM.LAC2011
    Synthesizer.LLVM.LNdW2011

Executable synthi-llvm-alsa
  If flag(buildExamples) && flag(alsa)
    Build-Depends:
      synthesizer-llvm,

      llvm-extra >=0.4.1 && <0.5,
      llvm-tf,
      tfp >=0.7 && <0.8,
      synthesizer-core >=0.6 && <0.7,
      synthesizer-midi >=0.6 && <0.7,
      midi >=0.2.1 && <0.3,
      storable-record >=0.0.2 && <0.1,
      storable-tuple >=0.0.2 && <0.1,
      sample-frame-np >=0.0.1 && <0.1,
      sample-frame >=0.0.1 && <0.1,
      storablevector >=0.2.6 && <0.3,
      numeric-prelude >=0.3 && <0.5,
      non-negative >=0.1 && <0.2,
      event-list >=0.1 && <0.2,
      filepath >=1.1 && <1.4,
      containers >=0.1 && <0.6,
      transformers >=0.2 && <0.4,
      utility-ht >=0.0.8 && <0.1,

      synthesizer-alsa >=0.5 && <0.6,
      midi-alsa >=0.2.1 && <0.3,
      alsa-seq >=0.6 && <0.7,
      alsa-pcm >=0.6 && <0.7,
      base >=4 && <5
  Else
    Buildable: False
  Default-Language: Haskell98
  --  -threaded -debug
  GHC-Options:      -Wall
  GHC-Options:      -rtsopts
  GHC-Prof-Options: -auto-all
  If impl(ghc>=7.0)
    GHC-Options: -fwarn-unused-do-bind -fcontext-stack=1000
    CPP-Options: -DNoImplicitPrelude=RebindableSyntax
    Default-Extensions: CPP
  Hs-Source-Dirs: alsa
  Main-Is:        Synthesizer/LLVM/Server.hs
  Other-Modules:
    Synthesizer.LLVM.Server.Packed.Test
    Synthesizer.LLVM.Server.Packed.Run
    Synthesizer.LLVM.Server.Scalar.Test
    Synthesizer.LLVM.Server.Scalar.Run
    Synthesizer.LLVM.Server.CausalPacked.Run
    Synthesizer.LLVM.Server.CausalPacked.Test
    Synthesizer.LLVM.Server.ALSA
    Synthesizer.LLVM.Server.Option

Executable synthi-llvm-jack
  If flag(buildExamples) && flag(jack)
    Build-Depends:
      synthesizer-llvm,

      jack >=0.7 && <0.8,

      llvm-extra >=0.4.1 && <0.5,
      llvm-tf,
      tfp >=0.7 && <0.8,
      synthesizer-core >=0.6 && <0.7,
      synthesizer-midi >=0.6 && <0.7,
      midi >=0.2.1 && <0.3,
      storable-record >=0.0.2 && <0.1,
      storable-tuple >=0.0.2 && <0.1,
      sample-frame-np >=0.0.1 && <0.1,
      sample-frame >=0.0.1 && <0.1,
      storablevector >=0.2.6 && <0.3,
      numeric-prelude >=0.3 && <0.5,
      non-negative >=0.1 && <0.2,
      explicit-exception >=0.1.7 && <0.2,
      event-list >=0.1 && <0.2,
      filepath >=1.1 && <1.4,
      containers >=0.1 && <0.6,
      transformers >=0.2 && <0.4,
      utility-ht >=0.0.8 && <0.1,

      base >=4 && <5

  Else
    Buildable: False
  Default-Language: Haskell98
  --  -threaded -debug
  GHC-Options:      -Wall
  GHC-Options:      -rtsopts
  GHC-Prof-Options: -auto-all
  If impl(ghc>=7.0)
    GHC-Options: -fwarn-unused-do-bind
    CPP-Options: -DNoImplicitPrelude=RebindableSyntax
    Default-Extensions: CPP
  Hs-Source-Dirs: jack
  Main-Is:        Synthesizer/LLVM/Server/JACK.hs

Executable synthi-llvm-render
  If flag(buildExamples)
    Build-Depends:
      synthesizer-llvm,

      llvm-extra >=0.4.1 && <0.5,
      llvm-tf,
      tfp >=0.7 && <0.8,
      sox >=0.2.1 && <0.3,
      synthesizer-core >=0.6 && <0.7,
      synthesizer-midi >=0.6 && <0.7,
      midi >=0.2.1 && <0.3,
      storable-record >=0.0.2 && <0.1,
      storable-tuple >=0.0.2 && <0.1,
      sample-frame-np >=0.0.1 && <0.1,
      sample-frame >=0.0.1 && <0.1,
      storablevector >=0.2.6 && <0.3,
      numeric-prelude >=0.3 && <0.5,
      non-negative >=0.1 && <0.2,
      explicit-exception >=0.1.7 && <0.2,
      event-list >=0.1 && <0.2,
      filepath >=1.1 && <1.4,
      containers >=0.1 && <0.6,
      transformers >=0.2 && <0.4,
      utility-ht >=0.0.8 && <0.1,

      base >=4 && <5

  Else
    Buildable: False
  Default-Language: Haskell98
  --  -threaded -debug
  GHC-Options:      -Wall
  GHC-Options:      -rtsopts
  GHC-Prof-Options: -auto-all
  If impl(ghc>=7.0)
    GHC-Options: -fwarn-unused-do-bind
    CPP-Options: -DNoImplicitPrelude=RebindableSyntax
    Default-Extensions: CPP
  Hs-Source-Dirs: render
  Main-Is:        Synthesizer/LLVM/Server/Render.hs

Executable synthi-llvm-test
  If flag(buildTests)
    Build-Depends:
      synthesizer-llvm,

      llvm-extra >=0.4.1 && <0.5,
      llvm-tf,
      tfp >=0.7 && <0.8,
      synthesizer-core >=0.6 && <0.7,
      storablevector >=0.2.6 && <0.3,
      numeric-prelude >=0.3 && <0.5,
      random >=1.0 && <1.1,
      utility-ht >=0.0.8 && <0.1,

      QuickCheck >=1 && <3,
      base >=4 && <5
  Else
    Buildable: False
  Default-Language: Haskell98
  GHC-Options:    -Wall
  If impl(ghc>=7.0)
    GHC-Options: -fwarn-unused-do-bind -fcontext-stack=1000
    CPP-Options: -DNoImplicitPrelude=RebindableSyntax
    Default-Extensions: CPP
  Hs-Source-Dirs: testsuite
  Main-Is:     Test/Main.hs
  Other-Modules:
    Test.Synthesizer.LLVM.Filter
    Test.Synthesizer.LLVM.Packed
    Test.Synthesizer.LLVM.Utility