synthesizer-core-0.2.1: Audio signal processing coded in Haskell: Low level partSource codeContentsIndex
Synthesizer.State.Filter.NonRecursive
Portabilityrequires multi-parameter type classes
Stabilityprovisional
Maintainersynthesizer@henning-thielemann.de
Contents
Envelope application
Smoothing
Filter operators from calculus
Description
Synopsis
amplify :: C a => a -> T a -> T a
amplifyVector :: C a v => a -> T v -> T v
envelope :: C a => T a -> T a -> T a
envelopeVector :: C a v => T a -> T v -> T v
fadeInOut :: C a => Int -> Int -> Int -> T a -> T a
generic :: C a v => T a -> T v -> T v
binomial :: (C a, C a, C a v) => a -> a -> T v -> T v
ratioFreqToVariance :: C a => a -> a -> a
binomial1 :: C v => T v -> T v
sums :: C v => Int -> T v -> T v
differentiate :: C v => T v -> T v
differentiateCenter :: C v => T v -> T v
differentiate2 :: C v => T v -> T v
Envelope application
amplify :: C a => a -> T a -> T aSource
amplifyVector :: C a v => a -> T v -> T vSource
envelopeSource
:: C a
=> T athe envelope
-> T athe signal to be enveloped
-> T a
envelopeVectorSource
:: C a v
=> T athe envelope
-> T vthe signal to be enveloped
-> T v
fadeInOut :: C a => Int -> Int -> Int -> T a -> T aSource
Smoothing
generic :: C a v => T a -> T v -> T vSource
Unmodulated non-recursive filter
binomial :: (C a, C a, C a v) => a -> a -> T v -> T vSource
ratioFreqToVariance :: C a => a -> a -> aSource
Compute the variance of the Gaussian such that its Fourier transform has value ratio at frequency freq.
binomial1 :: C v => T v -> T vSource
sums :: C v => Int -> T v -> T vSource
Moving (uniformly weighted) average in the most trivial form. This is very slow and needs about n * length x operations.
Filter operators from calculus
differentiate :: C v => T v -> T vSource
Forward difference quotient. Shortens the signal by one. Inverts Synthesizer.State.Filter.Recursive.Integration.run in the sense that differentiate (zero : integrate x) == x. The signal is shifted by a half time unit.
differentiateCenter :: C v => T v -> T vSource

Central difference quotient. Shortens the signal by two elements, and shifts the signal by one element. (Which can be fixed by prepending an appropriate value.) For linear functions this will yield essentially the same result as differentiate. You obtain the result of differentiateCenter if you smooth the one of differentiate by averaging pairs of adjacent values.

ToDo: Vector variant

differentiate2 :: C v => T v -> T vSource
Second derivative. It is differentiate2 == differentiate . differentiate but differentiate2 should be faster.
Produced by Haddock version 2.4.2