LicenseRef-GPL licensed and maintained by Henning Thielemann
This version can be pinned in stack with:synthesizer-core-0.9.0.1@sha256:51ad09bc5e1d7819ef4ba96bc4d2352bc7696ad6bd906fbf88c92d5723932f12,11735

Module documentation for 0.9.0.1

Low level audio signal processing used by the other synthesizer packages. The routines can be really fast due to StorableVector, Stream-like list type and aggressive inlining. For an interface to Haskore see http://code.haskell.org/haskore/revised/synthesizer/. For introductory examples see Synthesizer.Plain.Tutorial and Synthesizer.Generic.Tutorial.

Functions: Oscillators, Noise generators, Frequency filters, Fast Fourier transform for computation of frequency spectrum

Changes

Change log for the synthesizer-core package

0.9

  • SigG.Read -> SigG.Consume

    SigG.Write -> SigG.Produce

    SigG.LazySize -> ChunkySize.LazySize

  • SigG.Produce: Remove LazySize parameter. This rules out the instance Produce StorableVector.Lazy. You only have instance Produce StorableVector.Typed, i.e. storable vectors with maximum chunk size encoded in a type parameter. instance Transform StorableVector.Lazy and instance Consume StorableVector.Lazy are still provided, though.

    The LazySize parameters in the Write class only had a meaning for chunky storable vectors. If you need to produce (chunky or monolithic) storable vectors, better program your signal generator with State.Signal and then render it using State.Signal.toStrictStorableSignal.

0.8.1

  • Plain.Filter.Recursive.FirstOrder.highpassInit, Plain.Filter.Recursive.FirstOrder.highpassModifierInit and derived functions change the meaning of the initial parameter. The previous meaning was pretty unclear and useless such that I consider it a bug. We do no longer negate the initial value. This is consistent with lowpassInit.