packages feed

synthesizer-llvm-0.2: synthesizer-llvm.cabal

Name:           synthesizer-llvm
Version:        0.2
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.
  If you compile with Cabal flag @buildExamples@
  you get the executable @synthi-llvm-server@,
  that is a realtime software synthesizer
  that receives MIDI events via ALSA
  and in response plays some tones via ALSA.
Stability:      Experimental
Tested-With:    GHC==6.10.4
Cabal-Version:  >=1.2
Build-Type:     Simple

Flag buildExamples
  description: Build example executables
  default:     False

Flag buildTests
  description: Build test suite
  default:     False

Library
  Build-Depends:
    llvm-extra >= 0.1 && <0.2,
    -- llvm must be imported with restrictive version bounds,
    -- because we import implicitly and unqualified
    llvm-ht >=0.7.0 && <0.7.1,
    type-level >=0.2.3 && <0.3,
    functional-arrow >=0.0 && <0.1,
    HList >=0.2 && <0.3,
    synthesizer-core >=0.4 && <0.5,
    -- for ALSA.BendModulation
    synthesizer-alsa >=0.3 && <0.4,
    alsa-seq >=0.5 && <0.6,
    alsa-pcm >=0.5 && <0.6,
    midi >= 0.1.5 && <0.2,
    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.2 && <0.3,
    non-negative >=0.1 && <0.2,
    event-list >=0.1 && <0.2,
    -- data-accessor >=0.1 && <0.2,
    random >= 1.0 && < 1.1,
    containers >=0.1 && <0.4,
    transformers >=0.2 && <0.3,
    utility-ht >=0.0.1 && <0.1

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

  GHC-Options:    -Wall
  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.Causal.Process
    Synthesizer.LLVM.CausalParameterized.Process
    Synthesizer.LLVM.CausalParameterized.ProcessPacked
    Synthesizer.LLVM.CausalParameterized.Controlled
    Synthesizer.LLVM.CausalParameterized.ControlledPacked
    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.Sample
    Synthesizer.LLVM.Frame.Stereo
    Synthesizer.LLVM.Wave
    Synthesizer.LLVM.Server.Common
    Synthesizer.LLVM.Server.Packed.Test
    Synthesizer.LLVM.Server.Packed.Run
    Synthesizer.LLVM.Server.Packed.Instrument
    Synthesizer.LLVM.Server.Scalar.Test
    Synthesizer.LLVM.Server.Scalar.Run
    Synthesizer.LLVM.Server.Scalar.Instrument
    -- may be moved to a separate package
    Synthesizer.LLVM.ALSA.MIDI

  Other-Modules:
    Synthesizer.LLVM.Random
    Synthesizer.LLVM.EventIterator
    Synthesizer.LLVM.Storable.ChunkIterator
    Synthesizer.LLVM.Storable.LazySizeIterator
    Synthesizer.LLVM.Parameterized.SignalPrivate
    Synthesizer.LLVM.CausalParameterized.ProcessPrivate
    -- belongs to Synthesizer.LLVM.ALSA.MIDI
    Synthesizer.LLVM.ALSA.BendModulation
    -- may be moved to llvm-extra
    Synthesizer.LLVM.Execution

Executable synthi-llvm-example
  If !flag(buildExamples)
    Buildable: False
  GHC-Options:    -Wall
  Hs-Source-Dirs: src
  Main-Is:     Synthesizer/LLVM/Test.hs

Executable synthi-llvm-server
  If !flag(buildExamples)
    Buildable: False
  GHC-Options:    -Wall -threaded
  Hs-Source-Dirs: src
  Main-Is:     Synthesizer/LLVM/Server.hs
  Other-Modules:
    Synthesizer.LLVM.Server.Packed.Instrument
    Synthesizer.LLVM.Server.Packed.Test
    Synthesizer.LLVM.Server.Packed.Run
    Synthesizer.LLVM.Server.Scalar.Instrument
    Synthesizer.LLVM.Server.Scalar.Test
    Synthesizer.LLVM.Server.Scalar.Run
    Synthesizer.LLVM.Server.Common

Executable synthi-llvm-test
  If flag(buildTests)
    Build-Depends: QuickCheck >= 1 && <3
  Else
    Buildable: False
  GHC-Options:    -Wall
  Hs-Source-Dirs: src
  Main-Is:     Test/Main.hs
  Other-Modules:
    Test.Synthesizer.LLVM.Filter
    Test.Synthesizer.LLVM.Packed
    Test.Synthesizer.LLVM.Utility