synthesizer-llvm: Efficient signal processing using runtime compilation

[ gpl, library, music, sound ] [ Propose Tags ]

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.

Modules

[Last Documentation]

  • Synthesizer
    • LLVM
      • Causal
        • Synthesizer.LLVM.Causal.Process
      • CausalParameterized
        • Synthesizer.LLVM.CausalParameterized.Controlled
        • Synthesizer.LLVM.CausalParameterized.ControlledPacked
        • Synthesizer.LLVM.CausalParameterized.Functional
        • Synthesizer.LLVM.CausalParameterized.FunctionalPlug
        • Synthesizer.LLVM.CausalParameterized.Process
        • Synthesizer.LLVM.CausalParameterized.ProcessPacked
        • Synthesizer.LLVM.CausalParameterized.ProcessValue
      • Synthesizer.LLVM.Complex
      • Synthesizer.LLVM.ConstantPiece
      • Filter
        • 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.Moog
        • Synthesizer.LLVM.Filter.SecondOrder
        • Synthesizer.LLVM.Filter.SecondOrderCascade
        • Synthesizer.LLVM.Filter.SecondOrderPacked
        • Synthesizer.LLVM.Filter.Universal
      • Synthesizer.LLVM.Frame
        • Synthesizer.LLVM.Frame.SerialVector
        • Synthesizer.LLVM.Frame.Stereo
        • Synthesizer.LLVM.Frame.StereoInterleaved
      • Generator
        • Synthesizer.LLVM.Generator.Exponential2
      • Synthesizer.LLVM.MIDI
        • Synthesizer.LLVM.MIDI.BendModulation
      • Synthesizer.LLVM.Parameter
      • Parameterized
        • Synthesizer.LLVM.Parameterized.Signal
        • Synthesizer.LLVM.Parameterized.SignalPacked
      • Plug
        • Synthesizer.LLVM.Plug.Input
        • Synthesizer.LLVM.Plug.Output
      • Synthesizer.LLVM.RingBuffer
      • Server
        • CausalPacked
          • Synthesizer.LLVM.Server.CausalPacked.Arrange
          • Synthesizer.LLVM.Server.CausalPacked.Instrument
          • Synthesizer.LLVM.Server.CausalPacked.InstrumentPlug
          • Synthesizer.LLVM.Server.CausalPacked.Speech
        • Synthesizer.LLVM.Server.Common
        • Synthesizer.LLVM.Server.CommonPacked
        • Packed
          • Synthesizer.LLVM.Server.Packed.Instrument
        • Synthesizer.LLVM.Server.SampledSound
        • Scalar
          • Synthesizer.LLVM.Server.Scalar.Instrument
      • Simple
        • Synthesizer.LLVM.Simple.Signal
        • Synthesizer.LLVM.Simple.Value
        • Synthesizer.LLVM.Simple.Vanilla
      • Storable
        • Synthesizer.LLVM.Storable.Process
        • Synthesizer.LLVM.Storable.Signal
      • Synthesizer.LLVM.Wave

Flags

Automatic Flags
NameDescriptionDefault
buildexamples

Build example executables

Disabled
buildtests

Build test suite

Disabled
alsa

Build ALSA synthesizer if examples are built

Enabled
jack

Build JACK synthesizer if examples are built

Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.2, 0.2.0.1, 0.3, 0.5, 0.5.0.1, 0.5.0.2, 0.6, 0.7, 0.7.0.1, 0.8, 0.8.1, 0.8.1.1, 0.8.1.2, 0.8.2, 0.8.2.1, 0.8.3, 0.9, 1.0, 1.1, 1.1.0.1
Dependencies alsa-pcm (>=0.6 && <0.7), alsa-seq (>=0.6 && <0.7), base (>=4 && <5), containers (>=0.1 && <0.6), event-list (>=0.1 && <0.2), explicit-exception (>=0.1.7 && <0.2), filepath (>=1.1 && <1.4), jack (>=0.7 && <0.8), llvm-extra (>=0.4.1 && <0.5), llvm-tf (>=3.0 && <3.0.1), midi (>=0.2.1 && <0.3), midi-alsa (>=0.2.1 && <0.3), non-negative (>=0.1 && <0.2), numeric-prelude (>=0.3 && <0.5), QuickCheck (>=1 && <3), random (>=1.0 && <1.1), sample-frame (>=0.0.1 && <0.1), sample-frame-np (>=0.0.1 && <0.1), sox (>=0.2 && <0.3), storable-record (>=0.0.2 && <0.1), storable-tuple (>=0.0.2 && <0.1), storablevector (>=0.2.6 && <0.3), synthesizer-alsa (>=0.5 && <0.6), synthesizer-core (>=0.6 && <0.7), synthesizer-llvm, synthesizer-midi (>=0.6 && <0.7), tfp (>=0.7 && <0.8), transformers (>=0.2 && <0.4), unsafe (>=0.0 && <0.1), utility-ht (>=0.0.8 && <0.1), vault (>=0.1 && <0.3) [details]
License LicenseRef-GPL
Author Henning Thielemann <haskell@henning-thielemann.de>
Maintainer Henning Thielemann <haskell@henning-thielemann.de>
Category Sound, Music
Home page http://www.haskell.org/haskellwiki/Synthesizer
Source repo this: darcs get code.haskell.org:/srv/code/synthesizer/llvm/ --tag 0.5
head: darcs get code.haskell.org:/srv/code/synthesizer/llvm/
Uploaded by HenningThielemann at 2013-05-17T17:11:11Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables synthi-llvm-test, synthi-llvm-render, synthi-llvm-jack, synthi-llvm-alsa, synthi-llvm-example
Downloads 10113 total (47 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-12-21 [all 7 reports]