|
Synthesizer.Dimensional.Rate.Filter | Portability | requires multi-parameter type classes | Stability | provisional | Maintainer | synthesizer@henning-thielemann.de |
|
|
|
|
|
Description |
|
|
Synopsis |
|
negate :: (C sig, C yv, C u) => T s u t (T s sig yv -> T s sig yv) | | envelope :: (C sig, C flat y0, C y0, C u) => T s u t (T s flat y0 -> T s sig y0 -> T s sig y0) | | envelopeVector :: (C sig, C flat y0, C y0 yv, C u) => T s u t (T s flat y0 -> T s sig yv -> T s sig yv) | | convolveVector :: (C sig, C q yv, C q, C u, C q) => T s u q (R s (Recip u) q q -> T s sig yv -> T s sig yv) | | mean :: (C sig, C yv, C q, C q yv, C u, C q, C yv) => T (Recip u) q -> T s u q (R s (Recip u) q q -> T s sig yv -> T s sig yv) | | meanStatic :: (C sig, C yv, C q, C q yv, C u) => T (Recip u) q -> T s u q (T s sig yv -> T s sig yv) | | delay :: (C sig, C yv, C t, C u) => T u t -> T s u t (T s sig yv -> T s sig yv) | | phaseModulation :: (C sig, C yv, C q, C u, C q, C yv) => T q yv -> T u q -> T u q -> T s u q (R s u q q -> T s sig yv -> T s sig yv) | | phaser :: (C sig, C yv, C q, C q yv, C u, C q, C yv) => T q yv -> T u q -> T s u q (R s u q q -> T s sig yv -> T s sig yv) | | phaserStereo :: (C sig, C yv, C q, C q yv, C u, C q, C yv) => T q yv -> T u q -> T s u q (R s u q q -> T s sig yv -> T s sig (T yv)) | | frequencyModulation :: (C sig, C flat q, C yv, C q, C u) => T q yv -> T s u q (T s flat q -> T s sig yv -> T s sig yv) | | frequencyModulationDecoupled :: (C yv, C q, C u) => T q yv -> T s u q (R s q -> T u q (T T) yv -> R s yv) | | firstOrderHighpass :: (C sig, C q, C q yv, C u) => T s u q (R s (Recip u) q q -> T s sig yv -> T s sig yv) | | butterworthHighpass :: (C sig, C q, C q yv, C u) => Int -> q -> T s u q (R s (Recip u) q q -> T s sig yv -> T s sig yv) | | universal :: (C sig, C flat q, C q, C q yv, C u) => T s u q (T s flat q -> R s (Recip u) q q -> T s sig yv -> T s sig (Result yv)) | | bandpassFromUniversal :: (C sig, C u) => T s u q (T s sig (Result yv) -> T s sig yv) | | moogLowpass :: (C sig, C flat q, C q, C q yv, C u) => Int -> T s u q (T s flat q -> R s (Recip u) q q -> T s sig yv -> T s sig yv) | | allpassCascade :: (C sig, C q, C q yv, C u) => Int -> q -> T s u q (R s (Recip u) q q -> T s sig yv -> T s sig yv) | | comb :: (C sig, C t, C y yv, C u, C yv) => T u t -> y -> T s u t (T s sig yv -> T s sig yv) | | interpolateMultiRelativeZeroPad :: (C q, C yv) => T q yv -> T q -> T yv -> T yv |
|
|
|
Non-recursive
|
|
Amplification
|
|
negate :: (C sig, C yv, C u) => T s u t (T s sig yv -> T s sig yv) | Source |
|
|
envelope :: (C sig, C flat y0, C y0, C u) => T s u t (T s flat y0 -> T s sig y0 -> T s sig y0) | Source |
|
|
envelopeVector :: (C sig, C flat y0, C y0 yv, C u) => T s u t (T s flat y0 -> T s sig yv -> T s sig yv) | Source |
|
|
convolveVector :: (C sig, C q yv, C q, C u, C q) => T s u q (R s (Recip u) q q -> T s sig yv -> T s sig yv) | Source |
|
|
Smooth
|
|
|
:: (C sig, C yv, C q, C q yv, C u, C q, C yv) | | => T (Recip u) q | minimum cut-off freqeuncy
| -> T s u q (R s (Recip u) q q -> T s sig yv -> T s sig yv) | |
|
|
|
:: (C sig, C yv, C q, C q yv, C u) | | => T (Recip u) q | cut-off freqeuncy
| -> T s u q (T s sig yv -> T s sig yv) | |
|
|
Delay
|
|
delay :: (C sig, C yv, C t, C u) => T u t -> T s u t (T s sig yv -> T s sig yv) | Source |
|
|
|
:: (C sig, C yv, C q, C u, C q, C yv) | | => T q yv | | -> T u q | minimal deviation from current time, usually negative
| -> T u q | maximal deviation, it must be minDev <= maxDev
and the modulation must always be
in the range [minDev,maxDev].
| -> T s u q (R s u q q -> T s sig yv -> T s sig yv) | |
|
|
|
:: (C sig, C yv, C q, C q yv, C u, C q, C yv) | | => T q yv | | -> T u q | maxDev, must be positive
| -> T s u q (R s u q q -> T s sig yv -> T s sig yv) | |
|
|
|
:: (C sig, C yv, C q, C q yv, C u, C q, C yv) | | => T q yv | | -> T u q | maxDev, must be positive
| -> T s u q (R s u q q -> T s sig yv -> T s sig (T yv)) | |
|
|
frequencyModulation :: (C sig, C flat q, C yv, C q, C u) => T q yv -> T s u q (T s flat q -> T s sig yv -> T s sig yv) | Source |
|
|
frequencyModulationDecoupled :: (C yv, C q, C u) => T q yv -> T s u q (R s q -> T u q (T T) yv -> R s yv) | Source |
|
|
Recursive
|
|
Without resonance
|
|
firstOrderHighpass :: (C sig, C q, C q yv, C u) => T s u q (R s (Recip u) q q -> T s sig yv -> T s sig yv) | Source |
|
|
|
:: (C sig, C q, C q yv, C u) | | => Int | Order of the filter, must be even,
the higher the order, the sharper is the separation of frequencies.
| -> q | The attenuation at the cut-off frequency.
Should be between 0 and 1.
| -> T s u q (R s (Recip u) q q -> T s sig yv -> T s sig yv) | |
|
|
With resonance
|
|
|
:: (C sig, C flat q, C q, C q yv, C u) | | => T s u q (T s flat q -> R s (Recip u) q q -> T s sig yv -> T s sig (Result yv)) | highpass, bandpass, lowpass filter
|
|
|
bandpassFromUniversal :: (C sig, C u) => T s u q (T s sig (Result yv) -> T s sig yv) | Source |
|
|
moogLowpass :: (C sig, C flat q, C q, C q yv, C u) => Int -> T s u q (T s flat q -> R s (Recip u) q q -> T s sig yv -> T s sig yv) | Source |
|
|
Allpass
|
|
|
:: (C sig, C q, C q yv, C u) | | => Int | order, number of filters in the cascade
| -> q | the phase shift to be achieved for the given frequency
| -> T s u q (R s (Recip u) q q -> T s sig yv -> T s sig yv) | |
|
|
Reverb
|
|
comb :: (C sig, C t, C y yv, C u, C yv) => T u t -> y -> T s u t (T s sig yv -> T s sig yv) | Source |
|
|
Helper functions
|
|
interpolateMultiRelativeZeroPad :: (C q, C yv) => T q yv -> T q -> T yv -> T yv | Source |
|
|
Produced by Haddock version 2.3.0 |