packages feed

synthesizer-0.2: synthesizer.cabal

Name:           synthesizer
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
Category:       Sound
Synopsis:       Audio signal processing coded in Haskell
Description:
   Audio signal processing
   featuring both low-level functions
   and high-level functions which use physical units,
   abstract from the sample rate and are really fast
   due to StorableVector, Stream-like list type and aggressive inlining.
   For an interface to Haskore see <http://darcs.haskell.org/haskore-synthesizer/>.
   For introductory examples see "Synthesizer.Plain.Tutorial"
   and "Synthesizer.Generic.Tutorial".
   For an overview of the organization of the package
   and the discussion of various design issues see "Synthesizer.Overview".
Stability:      Experimental
Tested-With:    GHC==6.4.1, GHC==6.8.2
Cabal-Version:  >=1.6
Build-Type:     Simple

Extra-Source-Files:
  Makefile
  src/OsciDiffEq.hs
  src-3/Synthesizer/Causal/Process.hs
  src-4/Synthesizer/Causal/Process.hs
  src-4/Synthesizer/Inference/DesignStudy/Applicative.hs
  src-4/Synthesizer/Inference/DesignStudy/Monad.hs
  src-4/Synthesizer/Inference/DesignStudy/Arrow.hs

Flag splitBase
  description: Choose the new smaller, split-up base package.

Flag category
  description: Check whether Arrow class is split into Arrow and Category.

Flag optimizeAdvanced
  description: Enable advanced optimizations. They slow down compilation considerably.
  default:     True

Flag buildExamples
  description: Build example executables
  default:     False

Flag buildProfilers
  description: Build executables for investigating efficiency of code
  default:     False

Flag buildTests
  description: Build test suite
  default:     False


Source-Repository this
  Tag:         0.2
  Type:        darcs
  Location:    http://darcs.haskell.org/synthesizer/

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

Library
  Build-Depends:
    transformers >=0.0.1 && <0.2,
    event-list >=0.0.8 && <0.1,
    non-negative >=0.0.5 && <0.1,
    numeric-prelude >=0.1.1 && <0.2,
    utility-ht >=0.0.5 && <0.1,
    storable-record >=0.0.1 && <0.1,
    sox >=0.0 && <0.1,
    gnuplot >=0.2 && <0.4,
    -- numeric-quest/Orthogonals is only needed by Filter.Graph
    numeric-quest >= 0.1 && <0.2,
    -- bytestring and binary are only needed by SpeedTest
    bytestring >= 0.9 && <0.10,
    binary >=0.1 && <1,
    storablevector >=0.2.2 && <0.3,
    filepath >=1.1 && <1.2,
--    for ST.Lazy.read
    -- QuickCheck is needed for Filter.Delay.Block
    QuickCheck >=1 && <2

  If flag(category)
    Hs-Source-Dirs: src-4
    Build-Depends:
      base >= 4 && <5,
      array >=0.1 && <0.3,
      containers >=0.1 && <0.3,
      random >=1.0 && <2.0,
      process >=1.0 && <1.1
    Other-Modules:
      Synthesizer.Inference.DesignStudy.Applicative
      Synthesizer.Inference.DesignStudy.Arrow
      Synthesizer.Inference.DesignStudy.Monad
  Else
    Hs-Source-Dirs: src-3
    If flag(splitBase)
      Build-Depends:
        base >= 3 && <4,
        array >=0.1 && <0.3,
        containers >=0.1 && <0.3,
        random >=1.0 && <2.0,
        process >=1.0 && <1.1
    Else
      Build-Depends:
        base >= 1.0 && < 2,
        special-functors >= 1.0 && <1.1

  GHC-Options:    -Wall
  Hs-source-dirs: src
  Exposed-modules:
    Synthesizer.Overview
    Synthesizer.Storage
    Synthesizer.Dimensional.Overview
    Synthesizer.Inference.Overview

    Synthesizer.ApplicativeUtility
    Synthesizer.Format
    Synthesizer.RandomKnuth
    Synthesizer.Piecewise
    Synthesizer.Basic.Binary
    Synthesizer.Basic.Distortion
    Synthesizer.Basic.DistortionControlled
    Synthesizer.Basic.Phase
    Synthesizer.Basic.ToneModulation
    Synthesizer.Basic.Wave
    Synthesizer.Basic.WaveSmoothed
    Synthesizer.Interpolation
    Synthesizer.Interpolation.Class
    Synthesizer.Interpolation.Module
    Synthesizer.Interpolation.Custom
    Synthesizer.Frame.Stereo
    Synthesizer.Plain.Signal
    Synthesizer.Plain.Analysis
    Synthesizer.Plain.Cut
    Synthesizer.Plain.Control
    Synthesizer.Plain.Displacement
    Synthesizer.Plain.Filter.NonRecursive
    Synthesizer.Plain.Filter.Recursive
    Synthesizer.Plain.Filter.Recursive.Allpass
    Synthesizer.Plain.Filter.Recursive.AllpassPoly
    Synthesizer.Plain.Filter.Recursive.Butterworth
    Synthesizer.Plain.Filter.Recursive.Chebyshev
    Synthesizer.Plain.Filter.Recursive.Comb
    Synthesizer.Plain.Filter.Recursive.FirstOrder
    Synthesizer.Plain.Filter.Recursive.FirstOrderComplex
    Synthesizer.Plain.Filter.Recursive.Integration
    Synthesizer.Plain.Filter.Recursive.Moog
    Synthesizer.Plain.Filter.Recursive.MovingAverage
    Synthesizer.Plain.Filter.Recursive.SecondOrder
    Synthesizer.Plain.Filter.Recursive.SecondOrderCascade
    Synthesizer.Plain.Filter.Recursive.Universal
    Synthesizer.Plain.Filter.Recursive.Test
    Synthesizer.Plain.Filter.Delay
    Synthesizer.Plain.Filter.Delay.ST
    Synthesizer.Plain.Filter.Delay.List
    Synthesizer.Plain.Filter.Delay.Block
    Synthesizer.Plain.Filter.LinearPredictive
    Synthesizer.Plain.Interpolation
    Synthesizer.Plain.LorenzAttractor
    Synthesizer.Plain.Modifier
    Synthesizer.Plain.Noise
    Synthesizer.Plain.Oscillator
    Synthesizer.Plain.ToneModulation
    Synthesizer.Plain.Wave
    Synthesizer.Plain.Miscellaneous
    Synthesizer.Plain.Instrument
    Synthesizer.Plain.Effect
    Synthesizer.Plain.Effect.Fly
    Synthesizer.Plain.Effect.Glass
    Synthesizer.Plain.Builder
    Synthesizer.Plain.IO
    Synthesizer.Plain.File
    Synthesizer.Plain.Play
    Synthesizer.FusionList.Control
    Synthesizer.FusionList.Filter.NonRecursive
    Synthesizer.FusionList.Oscillator
    Synthesizer.FusionList.Signal
    Synthesizer.Storable.Cut
    Synthesizer.Storable.Oscillator
    Synthesizer.Storable.Signal
    Synthesizer.Storable.Instance
    Synthesizer.State.Analysis
    Synthesizer.State.Control
    Synthesizer.State.Cut
    Synthesizer.State.Displacement
    Synthesizer.State.Filter.NonRecursive
    Synthesizer.State.Filter.Delay
    Synthesizer.State.Filter.Recursive.Comb
    Synthesizer.State.Filter.Recursive.Integration
    Synthesizer.State.Filter.Recursive.MovingAverage
    Synthesizer.State.Interpolation
    Synthesizer.State.Miscellaneous
    Synthesizer.State.Noise
    Synthesizer.State.NoiseCustom
    Synthesizer.State.Oscillator
    Synthesizer.State.Signal
    Synthesizer.State.ToneModulation
    Synthesizer.Causal.Process
    Synthesizer.Causal.Displacement
    Synthesizer.Causal.Interpolation
    Synthesizer.Causal.Oscillator
    Synthesizer.Causal.ToneModulation
    Synthesizer.Generic.Analysis
    Synthesizer.Generic.Cut
    Synthesizer.Generic.Control
    Synthesizer.Generic.Displacement
    Synthesizer.Generic.Filter.NonRecursive
    Synthesizer.Generic.Filter.Delay
    Synthesizer.Generic.Filter.Recursive.Integration
    Synthesizer.Generic.Filter.Recursive.MovingAverage
    Synthesizer.Generic.Filter.Recursive.Comb
    Synthesizer.Generic.Interpolation
    Synthesizer.Generic.Noise
    Synthesizer.Generic.Oscillator
    Synthesizer.Generic.Signal
    Synthesizer.Generic.Signal2
    Synthesizer.Generic.Wave

    Synthesizer.Dimensional.Abstraction.Flat
    Synthesizer.Dimensional.Abstraction.Homogeneous
    Synthesizer.Dimensional.Abstraction.HomogeneousGen
    Synthesizer.Dimensional.Abstraction.RateIndependent
    Synthesizer.Dimensional.Amplitude
    Synthesizer.Dimensional.Amplitude.Analysis
    Synthesizer.Dimensional.Amplitude.Cut
    Synthesizer.Dimensional.Amplitude.Control
    Synthesizer.Dimensional.Amplitude.Displacement
    Synthesizer.Dimensional.Amplitude.Filter
    Synthesizer.Dimensional.Amplitude.Signal
    Synthesizer.Dimensional.Arrow
    Synthesizer.Dimensional.Map
    Synthesizer.Dimensional.Causal.Process
    Synthesizer.Dimensional.Causal.ControlledProcess
    Synthesizer.Dimensional.Causal.Displacement
    Synthesizer.Dimensional.Causal.Filter
    Synthesizer.Dimensional.Causal.Oscillator
    Synthesizer.Dimensional.ControlledProcess
    Synthesizer.Dimensional.Cyclic.Signal
    Synthesizer.Dimensional.Process
    Synthesizer.Dimensional.Rate
    Synthesizer.Dimensional.RatePhantom
    Synthesizer.Dimensional.RateWrapper
    Synthesizer.Dimensional.Rate.Analysis
    Synthesizer.Dimensional.Rate.Control
    Synthesizer.Dimensional.Rate.Cut
    Synthesizer.Dimensional.Rate.Dirac
    Synthesizer.Dimensional.Rate.Filter
    Synthesizer.Dimensional.Rate.Oscillator
    Synthesizer.Dimensional.RateAmplitude.Analysis
    Synthesizer.Dimensional.RateAmplitude.Cut
    Synthesizer.Dimensional.RateAmplitude.Control
    Synthesizer.Dimensional.RateAmplitude.Displacement
    Synthesizer.Dimensional.RateAmplitude.File
    Synthesizer.Dimensional.RateAmplitude.Filter
    Synthesizer.Dimensional.RateAmplitude.Instrument
    Synthesizer.Dimensional.RateAmplitude.Noise
    Synthesizer.Dimensional.RateAmplitude.Play
    Synthesizer.Dimensional.RateAmplitude.Signal
    Synthesizer.Dimensional.Straight.Displacement
    Synthesizer.Dimensional.Straight.Signal

  -- historical and experimental modules
    Synthesizer.Filter.Basic
    Synthesizer.Filter.Composition
    Synthesizer.Filter.Example
    Synthesizer.Filter.Fix
    Synthesizer.Filter.Graph
    Synthesizer.Filter.Graphic
    Synthesizer.Filter.MonadFix
    Synthesizer.Filter.OneWay
    Synthesizer.Filter.TwoWay

    -- this approach is replaced by Generic modules
    -- but we may still define an UArray instance of Generic classes
    Sound.Signal
    Sound.Signal.Block
    Sound.Signal.StrictBlock

    Synthesizer.Physical
    Synthesizer.Physical.Cut
    Synthesizer.Physical.Control
    Synthesizer.Physical.File
    Synthesizer.Physical.Filter
    Synthesizer.Physical.Noise
    Synthesizer.Physical.Oscillator
    Synthesizer.Physical.Play
    Synthesizer.Physical.Signal
    Synthesizer.Physical.Displacement
    Synthesizer.Amplitude.Signal
    Synthesizer.Amplitude.Cut
    Synthesizer.Amplitude.Control
    Synthesizer.Amplitude.Filter
    Synthesizer.Amplitude.Displacement
    Synthesizer.SampleRateContext.Rate
    Synthesizer.SampleRateContext.Signal
    Synthesizer.SampleRateContext.Oscillator
    Synthesizer.SampleRateContext.Cut
    Synthesizer.SampleRateContext.Control
    Synthesizer.SampleRateContext.Filter
    Synthesizer.SampleRateContext.Displacement
    Synthesizer.SampleRateContext.Noise
    Synthesizer.SampleRateContext.Play
    -- that's only exposed for Haddock
    Synthesizer.Plain.Tutorial
    Synthesizer.Generic.Tutorial

  Other-Modules:
    TruncatedSine
    FourierSeries
    Synthesizer.Utility

Executable demonstration
  If !flag(buildExamples)
    Buildable: False
  GHC-Options: -Wall -fexcess-precision
  If flag(optimizeAdvanced)
    GHC-Options: -O2 -fvia-C -optc-O2
-- -ddump-simpl-stats
  Hs-Source-Dirs: src
  If flag(category)
    Hs-Source-Dirs: src-4
  Else
    Hs-Source-Dirs: src-3
  Main-Is:
    Demonstration.hs
  Other-Modules:
    Synthesizer.Dimensional.RateAmplitude.Demonstration

Executable traumzauberbaum
  If !flag(buildExamples)
    Buildable: False
  GHC-Options: -Wall -fexcess-precision
  If flag(optimizeAdvanced)
    GHC-Options: -O2 -fvia-C -optc-O2
  Hs-Source-Dirs: src
  If flag(category)
    Hs-Source-Dirs: src-4
  Else
    Hs-Source-Dirs: src-3
  Main-Is: Synthesizer/Dimensional/RateAmplitude/Traumzauberbaum.hs

Executable test
  If !flag(buildTests)
    Buildable: False
  GHC-Options: -Wall
  Hs-Source-Dirs: src
  If flag(category)
    Hs-Source-Dirs: src-4
  Else
    Hs-Source-Dirs: src-3
  Other-Modules:
    Test.Utility
    Test.Sound.Synthesizer.Plain.Analysis
    Test.Sound.Synthesizer.Plain.Control
    Test.Sound.Synthesizer.Plain.Filter
    Test.Sound.Synthesizer.Plain.Interpolation
    Test.Sound.Synthesizer.Plain.Oscillator
    Test.Sound.Synthesizer.Plain.ToneModulation
    Test.Sound.Synthesizer.Plain.Wave
    Test.Sound.Synthesizer.Basic.ToneModulation
    Test.Sound.Synthesizer.Generic.ToneModulation
  Main-Is: Test/Main.hs

Executable fusiontest
  If !flag(buildProfilers)
    Buildable: False
  GHC-Options: -Wall -fexcess-precision
  If flag(optimizeAdvanced)
    GHC-Options: -ddump-simpl-stats
  Hs-Source-Dirs: speedtest, src
  If flag(category)
    Hs-Source-Dirs: src-4
  Else
    Hs-Source-Dirs: src-3
  Main-Is: FusionTest.hs

Executable speedtest
  If !flag(buildProfilers)
    Buildable: False
  GHC-Options: -Wall -fexcess-precision
  If flag(optimizeAdvanced)
    GHC-Options: -optc-ffast-math -optc-O3
  --  -funfolding-use-threshold=20 -funfolding-creation-threshold=100
  --  -optc-march=pentium4 -optc-mfpmath=sse
  Hs-Source-Dirs: speedtest, src
  If flag(category)
    Hs-Source-Dirs: src-4
  Else
    Hs-Source-Dirs: src-3
  Main-Is: SpeedTest.hs

Executable speedtest-exp
  If !flag(buildProfilers)
    Buildable: False
  GHC-Options: -Wall -fexcess-precision
  Hs-Source-Dirs: speedtest, src
  If flag(category)
    Hs-Source-Dirs: src-4
  Else
    Hs-Source-Dirs: src-3
  Main-Is: SpeedTestExp.hs
  If flag(splitBase)
    Build-Depends:
      old-time >= 1.0 && < 1.1, directory >= 1.0 && < 1.1

Executable speedtest-simple
  If !flag(buildProfilers)
    Buildable: False
  GHC-Options: -Wall
  Hs-Source-Dirs: speedtest, src
  If flag(category)
    Hs-Source-Dirs: src-4
  Else
    Hs-Source-Dirs: src-3
  Main-Is: SpeedTestSimple.hs