Portability | requires multi-parameter type classes |
---|---|
Stability | provisional |
Maintainer | synthesizer@henning-thielemann.de |
Safe Haskell | None |
- 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 yvSource
bandpassFromUniversal :: Signal s amp (Result yv) -> Signal s amp yvSource
lowpassFromUniversal :: Signal s amp (Result yv) -> Signal s amp yvSource
bandlimitFromUniversal :: Signal s amp (Result yv) -> Signal s amp yvSource
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 => aSource
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.
Helper functions
interpolateMultiRelativeZeroPad :: (C q, C yv) => T q yv -> T q -> T yv -> T yvSource