Copyright | (c) Henning Thielemann 2008 |
---|---|
License | GPL |
Maintainer | synthesizer@henning-thielemann.de |
Stability | provisional |
Portability | requires multi-parameter type classes |
Safe Haskell | None |
Language | Haskell2010 |
- negate :: (C yv, C u) => T s u t (Signal s amp yv -> Signal s amp yv)
- envelope :: (C y0 flat, C y0, C u) => T s u t (Signal s flat y0 -> Signal s amp y0 -> Signal s amp y0)
- envelopeVector :: (C y0 flat, C y0 yv, C u) => T s u t (Signal s flat y0 -> Signal s amp yv -> Signal s amp yv)
- convolveVector :: (C q yv, C q, C u) => T s u q (R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv)
- mean :: (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 -> Signal s amp yv -> Signal s amp yv)
- meanStatic :: (C yv, C q, C q yv, C u) => T (Recip u) q -> T s u q (Signal s amp yv -> Signal s amp yv)
- delay :: (C yv, C t, C u, Write sig yv) => T u t -> T s u t (T (Phantom s) amp (sig yv) -> T (Phantom s) amp (sig yv))
- phaseModulation :: (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 -> Signal s amp yv -> Signal s amp yv)
- phaser :: (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 -> Signal s amp yv -> Signal s amp yv)
- phaserStereo :: (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 -> Signal s amp yv -> Signal s amp (T yv))
- frequencyModulation :: (C t flat, C yv, C t, C u) => T t yv -> T s u t (Signal s flat t -> Signal s amp yv -> Signal s amp yv)
- frequencyModulationDecoupled :: (C t flat, C yv, C t, C u) => T t yv -> T (Dimensional u t) amp (T yv) -> T s u t (Signal s flat t -> Signal s amp yv)
- firstOrderLowpass :: (C q, C q yv, C u) => T s u q (R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv)
- firstOrderHighpass :: (C q, C q yv, C u) => T s u q (R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv)
- butterworthLowpass :: (C q flat, C q, C q yv, C u) => Int -> T s u q (Signal s flat q -> R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv)
- butterworthHighpass :: (C q flat, C q, C q yv, C u) => Int -> T s u q (Signal s flat q -> R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv)
- chebyshevALowpass :: (C q flat, C q, C q yv, C u) => Int -> T s u q (Signal s flat q -> R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv)
- chebyshevAHighpass :: (C q flat, C q, C q yv, C u) => Int -> T s u q (Signal s flat q -> R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv)
- chebyshevBLowpass :: (C q flat, C q, C q yv, C u) => Int -> T s u q (Signal s flat q -> R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv)
- chebyshevBHighpass :: (C q flat, C q, C q yv, C u) => Int -> T s u q (Signal s flat q -> R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv)
- universal :: (C q flat, C q, C q yv, C u) => T s u q (Signal s flat q -> R s (Recip u) q q -> Signal s amp yv -> Signal s amp (Result yv))
- highpassFromUniversal :: Signal s amp (Result yv) -> Signal s amp yv
- bandpassFromUniversal :: Signal s amp (Result yv) -> Signal s amp yv
- lowpassFromUniversal :: Signal s amp (Result yv) -> Signal s amp yv
- bandlimitFromUniversal :: Signal s amp (Result yv) -> Signal s amp yv
- moogLowpass :: (C q flat, C q, C q yv, C u) => Int -> T s u q (Signal s flat q -> R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv)
- allpassCascade :: (C q, C q yv, C u) => Int -> q -> T s u q (R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv)
- allpassFlangerPhase :: C a => a
- comb :: (C t, C y yv, C u, Storable yv) => T u t -> y -> T s u t (Signal s amp yv -> Signal s amp yv)
- interpolateMultiRelativeZeroPad :: (C q, C yv) => T q yv -> T q -> T yv -> T yv
Non-recursive
Amplification
envelope :: (C y0 flat, C y0, C u) => T s u t (Signal s flat y0 -> Signal s amp y0 -> Signal s amp y0) Source #
envelopeVector :: (C y0 flat, C y0 yv, C u) => T s u t (Signal s flat y0 -> Signal s amp yv -> Signal s amp yv) Source #
convolveVector :: (C q yv, C q, C u) => T s u q (R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv) Source #
Smooth
:: (C yv, C q, C q yv, C u, Storable q, Storable yv) | |
=> T (Recip u) q | minimum cut-off frequency |
-> T s u q (R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv) |
needs a better handling of boundaries, yet
:: (C yv, C q, C q yv, C u) | |
=> T (Recip u) q | cut-off frequency |
-> T s u q (Signal s amp yv -> Signal s amp yv) |
needs a better handling of boundaries, yet
Delay
delay :: (C yv, C t, C u, Write sig yv) => T u t -> T s u t (T (Phantom s) amp (sig yv) -> T (Phantom s) amp (sig yv)) Source #
:: (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 -> Signal s amp yv -> Signal s amp yv) |
symmetric phaser
frequencyModulation :: (C t flat, C yv, C t, C u) => T t yv -> T s u t (Signal s flat t -> Signal s amp yv -> Signal s amp yv) Source #
frequencyModulationDecoupled :: (C t flat, C yv, C t, C u) => T t yv -> T (Dimensional u t) amp (T yv) -> T s u t (Signal s flat t -> Signal s amp 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 q, C q yv, C u) => T s u q (R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv) Source #
firstOrderHighpass :: (C q, C q yv, C u) => T s u q (R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv) Source #
With resonance
highpassFromUniversal :: Signal s amp (Result yv) -> Signal s amp yv Source #
bandpassFromUniversal :: Signal s amp (Result yv) -> Signal s amp yv Source #
lowpassFromUniversal :: Signal s amp (Result yv) -> Signal s amp yv Source #
bandlimitFromUniversal :: Signal s amp (Result yv) -> Signal s amp yv Source #
moogLowpass :: (C q flat, C q, C q yv, C u) => Int -> T s u q (Signal s flat q -> R s (Recip u) q q -> Signal s amp yv -> Signal s amp yv) Source #
Allpass
allpassFlangerPhase :: C a => a Source #
Reverb
comb :: (C t, C y yv, C u, Storable yv) => T u t -> y -> T s u t (Signal s amp yv -> Signal s amp yv) Source #
Infinitely many equi-delayed exponentially decaying echos.