|
| Synthesizer.Dimensional.Causal.Filter | | Portability | requires multi-parameter type classes | | Stability | provisional | | Maintainer | synthesizer@henning-thielemann.de |
|
|
|
|
|
| Description |
|
|
| Synopsis |
|
| amplify :: C y amp => y -> T s u t (T s amp amp yv yv) | | | amplifyDimension :: (C y, C u, C v0, C v1) => T v0 y -> T s u t (T s (T v1 y) (T (Mul v0 v1) y) yv yv) | | | negate :: C yv => T s u t (T s amp amp yv yv) | | | envelope :: C y => T s u t (T s (Flat, amp) amp (y, y) y) | | | envelopeVector :: C y yv => T s u t (T s (Flat, amp) amp (y, yv) yv) | | | envelopeVectorDimension :: (C y0 yv, C y, C u, C v0, C v1) => T s u t (T s (T v0 y, T v1 y) (T (Mul v0 v1) y) (y0, yv) yv) | | | differentiate :: (C yv, C q, C u, C v) => T s u q (T s (T v q) (T (DimensionGradient u v) q) yv yv) | | | type ResonantFilter s u q ic amp yv0 yv1 = T s u q (T (Converter s (Scalar q, T (Recip u) q) (q, q) ic) (T s (amp, Flat) amp (yv0, RateDep s ic) yv1)) | | | type FrequencyFilter s u q ic amp yv0 yv1 = T s u q (T (Converter s (T (Recip u) q) q ic) (T s (amp, Flat) amp (yv0, RateDep s ic) yv1)) | | | firstOrderLowpass :: (C q, C q yv, C u) => FrequencyFilter s u q (Parameter q) amp yv yv | | | firstOrderHighpass :: (C q, C q yv, C u) => FrequencyFilter s u q (Parameter q) amp yv yv | | | butterworthLowpass :: (C a, C a yv, Storable a, Storable yv, C u) => Int -> ResonantFilter s u a (Parameter a) amp yv yv | | | butterworthHighpass :: (C a, C a yv, Storable a, Storable yv, C u) => Int -> ResonantFilter s u a (Parameter a) amp yv yv | | | chebyshevALowpass :: (C a, C a yv, Storable a, Storable yv, C u) => Int -> ResonantFilter s u a (ParameterA a) amp yv yv | | | chebyshevAHighpass :: (C a, C a yv, Storable a, Storable yv, C u) => Int -> ResonantFilter s u a (ParameterA a) amp yv yv | | | chebyshevBLowpass :: (C a, C a yv, Storable a, Storable yv, C u) => Int -> ResonantFilter s u a (ParameterB a) amp yv yv | | | chebyshevBHighpass :: (C a, C a yv, Storable a, Storable yv, C u) => Int -> ResonantFilter s u a (ParameterB a) amp yv yv | | | butterworthLowpassPole :: (C q, C q yv, C u) => Int -> ResonantFilter s u q (Pole q) amp yv yv | | | butterworthHighpassPole :: (C q, C q yv, C u) => Int -> ResonantFilter s u q (Pole q) amp yv yv | | | chebyshevALowpassPole :: (C q, C q yv, C u) => Int -> ResonantFilter s u q (Pole q) amp yv yv | | | chebyshevAHighpassPole :: (C q, C q yv, C u) => Int -> ResonantFilter s u q (Pole q) amp yv yv | | | chebyshevBLowpassPole :: (C q, C q yv, C u) => Int -> ResonantFilter s u q (Pole q) amp yv yv | | | chebyshevBHighpassPole :: (C q, C q yv, C u) => Int -> ResonantFilter s u q (Pole q) amp yv yv | | | universal :: (C q, C q yv, C u) => ResonantFilter s u q (Parameter q) amp yv (Result yv) | | | highpassFromUniversal :: T s amp amp (Result yv) yv | | | bandpassFromUniversal :: T s amp amp (Result yv) yv | | | lowpassFromUniversal :: T s amp amp (Result yv) yv | | | bandlimitFromUniversal :: T s amp amp (Result yv) yv | | | moogLowpass :: (C q, C q yv, C u) => Int -> ResonantFilter s u q (Parameter q) amp yv yv | | | allpassCascade :: (C q, C q yv, C u) => Int -> q -> FrequencyFilter s u q (Parameter q) amp yv yv | | | allpassPhaser :: (C q, C q yv, C u) => Int -> ResonantFilter s u q (q, Parameter q) amp yv yv | | | allpassFlangerPhase :: C a => a | | | integrate :: (C yv, C q, C u, C v) => T s u q (T s (T v q) (T (Mul u v) q) yv yv) |
|
|
|
| Non-recursive
|
|
| Amplification
|
|
| amplify :: C y amp => y -> T s u t (T s amp amp yv yv) | Source |
|
| The amplification factor must be positive.
|
|
| amplifyDimension :: (C y, C u, C v0, C v1) => T v0 y -> T s u t (T s (T v1 y) (T (Mul v0 v1) y) yv yv) | Source |
|
|
| negate :: C yv => T s u t (T s amp amp yv yv) | Source |
|
|
|
|
| envelopeVector :: C y yv => T s u t (T s (Flat, amp) amp (y, yv) yv) | Source |
|
|
| envelopeVectorDimension :: (C y0 yv, C y, C u, C v0, C v1) => T s u t (T s (T v0 y, T v1 y) (T (Mul v0 v1) y) (y0, yv) yv) | Source |
|
|
| Filter operators from calculus
|
|
|
|
| Recursive
|
|
|
|
|
|
| Without resonance
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| :: (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.
| | -> ResonantFilter s u q (Pole q) amp yv yv | |
|
|
|
| :: (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.
| | -> ResonantFilter s u q (Pole q) amp yv yv | |
|
|
|
| :: (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.
| | -> ResonantFilter s u q (Pole q) amp yv yv | |
|
|
|
| :: (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.
| | -> ResonantFilter s u q (Pole q) amp yv yv | |
|
|
|
| :: (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.
| | -> ResonantFilter s u q (Pole q) amp yv yv | |
|
|
|
| :: (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.
| | -> ResonantFilter s u q (Pole q) amp yv yv | |
|
|
| With resonance
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Allpass
|
|
|
| :: (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
| | -> FrequencyFilter s u q (Parameter q) amp yv yv | | | the lowest comb frequency is used as the filter frequency
|
|
|
|
| :: (C q, C q yv, C u) | | | => Int | order, number of filters in the cascade
| | -> ResonantFilter s u q (q, Parameter q) amp yv yv | | | We use the mixing ratio as resonance parameter.
Mixing ratio r means:
Amplify input by r and delayed signal by 1-r.
Maximum effect is achieved for r=0.5.
|
|
|
| allpassFlangerPhase :: C a => a | Source |
|
|
| Filter operators from calculus
|
|
| integrate :: (C yv, C q, C u, C v) => T s u q (T s (T v q) (T (Mul u v) q) yv yv) | Source |
|
|
| Produced by Haddock version 2.4.2 |