|
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) => 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, Storable q, Storable 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, Storable q, Storable 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, Storable q, Storable 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, Storable q, Storable 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 t, C yv, C t, C u) => T t yv -> T s u t (T s flat t -> T s sig yv -> T s sig yv) | | frequencyModulationDecoupled :: (C sig, C flat t, C yv, C t, C u) => T t yv -> T u t sig yv -> T s u t (T s flat t -> T s sig yv) | | firstOrderLowpass :: (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) | | 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) | | butterworthLowpass :: (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) | | butterworthHighpass :: (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) | | chebyshevALowpass :: (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) | | chebyshevAHighpass :: (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) | | chebyshevBLowpass :: (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) | | chebyshevBHighpass :: (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) | | 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)) | | highpassFromUniversal :: C sig => T s sig (Result yv) -> T s sig yv | | bandpassFromUniversal :: C sig => T s sig (Result yv) -> T s sig yv | | lowpassFromUniversal :: C sig => T s sig (Result yv) -> T s sig yv | | bandlimitFromUniversal :: C sig => 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) | | allpassFlangerPhase :: C a => a | | comb :: (C sig, C t, C y yv, C u, Storable 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) => 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, Storable q, Storable 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) | | needs a better handling of boundaries, yet
|
|
|
|
:: (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) | | needs a better handling of boundaries, yet
|
|
|
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, Storable q, Storable 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, Storable q, Storable 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) | | symmetric phaser
|
|
|
|
:: (C sig, C yv, C q, C q yv, C u, Storable q, Storable 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 t, C yv, C t, C u) => T t yv -> T s u t (T s flat t -> T s sig yv -> T s sig yv) | Source |
|
|
frequencyModulationDecoupled :: (C sig, C flat t, C yv, C t, C u) => T t yv -> T u t sig yv -> T s u t (T s flat t -> T s sig yv) | Source |
|
Frequency modulation where the input signal can have a sample rate
different from the output.
(The sample rate values can differ, the unit must be the same.
We could lift that restriction,
but then the unit handling becomes more complicated,
and I didn't have a use for it so far.)
The function can be used for resampling.
|
|
Recursive
|
|
Without resonance
|
|
firstOrderLowpass :: (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 |
|
|
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 flat q, 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.
| -> T s u q (T s flat q -> R s (Recip u) q q -> T s sig yv -> T s sig yv) | |
|
|
|
:: (C sig, C flat q, 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.
| -> T s u q (T s flat q -> R s (Recip u) q q -> T s sig yv -> T s sig yv) | |
|
|
|
:: (C sig, C flat q, 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.
| -> T s u q (T s flat q -> R s (Recip u) q q -> T s sig yv -> T s sig yv) | |
|
|
|
:: (C sig, C flat q, 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.
| -> T s u q (T s flat q -> R s (Recip u) q q -> T s sig yv -> T s sig yv) | |
|
|
|
:: (C sig, C flat q, 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.
| -> T s u q (T s flat q -> R s (Recip u) q q -> T s sig yv -> T s sig yv) | |
|
|
|
:: (C sig, C flat q, 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.
| -> T s u q (T s flat 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
|
|
|
|
|
|
|
|
|
|
|
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) | |
|
|
allpassFlangerPhase :: C a => a | Source |
|
|
Reverb
|
|
|
Infinitely many equi-delayed exponentially decaying echos.
|
|
Helper functions
|
|
interpolateMultiRelativeZeroPad :: (C q, C yv) => T q yv -> T q -> T yv -> T yv | Source |
|
|
Produced by Haddock version 2.4.2 |