Difference between revisions of "Synthesizer"

From HaskellWiki
Jump to navigation Jump to search
 
(text taken from synthesizer.cabal)
Line 1: Line 1:
  +
== Introduction ==
  +
  +
In the late 1990ies I (Henning Thielemann) developed a graphical audio signal synthesis and analysis application called [http://www.assampler.com/ Assampler] for [http://en.wikipedia.org/wiki/Commodore Amiga].
  +
However it turned out that graphical programming does not scale well.
  +
Thus some years later I started to rewrite much of its functionality in plain Haskell.
  +
There is both a low-level interface and
  +
a high-level framework for automatical inference of sample rate and use of physical units in a sound processing network.
  +
This generalizes the usual restricted splitting into audio rate and control rate signals.
  +
Routines are now also suitable for real-time processing using [[Storable Vector]] library, a Stream like data type and aggressive inlining.
  +
There is an [http://darcs.haskell.org/haskore-synthesizer/ interface] for using synthesized sounds for rendering [[Haskore]] music.
  +
The library uses the [[Numeric Prelude]] library and its numerical type class hierarchy.
  +
  +
== Links ==
  +
* [http://darcs.haskell.org/synthesizer/ Darcs repository]
  +
* [http://dafx04.na.infn.it/WebProc/Proc/P_201.pdf early paper] on the concepts.
   
 
[[Category:Music]]
 
[[Category:Music]]

Revision as of 14:39, 11 August 2008

Introduction

In the late 1990ies I (Henning Thielemann) developed a graphical audio signal synthesis and analysis application called Assampler for Amiga. However it turned out that graphical programming does not scale well. Thus some years later I started to rewrite much of its functionality in plain Haskell. There is both a low-level interface and a high-level framework for automatical inference of sample rate and use of physical units in a sound processing network. This generalizes the usual restricted splitting into audio rate and control rate signals. Routines are now also suitable for real-time processing using Storable Vector library, a Stream like data type and aggressive inlining. There is an interface for using synthesized sounds for rendering Haskore music. The library uses the Numeric Prelude library and its numerical type class hierarchy.

Links