|
Synthesizer.Dimensional.RateAmplitude.Signal | Portability | requires multi-parameter type classes | Stability | provisional | Maintainer | synthesizer@henning-thielemann.de |
|
|
|
Description |
For a description see Synthesizer.Dimensional.Process.
|
|
Synopsis |
|
data T v y sig yv | | type R s v y yv = T s (S v y) yv | | toTimeScalar :: (C t, C u) => T u t -> T s u t t | | toFrequencyScalar :: (C t, C u) => T (Recip u) t -> T s u t t | | toAmplitudeScalar :: (C w, C y, C v) => w (T v y sig) yv -> T v y -> y | | toGradientScalar :: (C q, C u, C v) => T v q -> T (DimensionGradient u v) q -> T s u q q | | type DimensionGradient u v = Mul (Recip u) v | | amplitude :: (C w, C v) => w (T v y sig) yv -> T v y | | samples :: (C w, C v) => w (T v y (T sig)) yv -> sig yv | | fromSignal :: T v y -> R s yv -> R s v y yv | | fromSamples :: T v y -> T yv -> R s v y yv | | scalarSamples :: (C w, C y, C v) => (T v y -> y) -> w (S v y) y -> T y | | fromScalarSamples :: T v y -> T y -> R s v y y | | scalarSamplesGeneric :: (C w, C y, C v, C y, C sig) => (T v y -> y) -> w (T v y (T sig)) y -> sig y | | vectorSamples :: (C w, C y yv, C v) => (T v y -> y) -> w (S v y) yv -> T yv | | fromVectorSamples :: T v y -> T yv -> R s v y yv | | replaceAmplitude :: (C w, C v0, C v1) => T v1 y -> w (T v0 y sig) yv -> w (T v1 y sig) yv | | replaceSamples :: (C w, C v) => sig1 yv1 -> w (T v y sig0) yv0 -> w (T v y (T sig1)) yv1 | | processSamples :: (C w, C v) => (sig0 yv0 -> sig1 yv1) -> w (T v y (T sig0)) yv0 -> w (T v y (T sig1)) yv1 | | asTypeOfAmplitude :: y -> w (T v y sig) yv -> y | | ($-) :: (C y, C y, C u, C v) => T s u t (R s v y y -> a) -> T v y -> T s u t a | | ($&) :: C y => T s u t (R s y -> a) -> T s u t (R s Scalar y y) -> T s u t a | | (&*^) :: C flat y => T v y -> T s u t (T s flat y) -> T s u t (R s v y y) | | (&*>^) :: T v y -> T s u t (R s yv) -> T s u t (R s v y yv) | | newtype Peaks s = Peaks (T Bool) | | fromPeaks :: (Ord q, C q, C u) => T s u q (Peaks s -> R s (Recip u) q q) | | cache :: (C v, C w, C yv0) => T s u t (w (T v y (T T)) yv0) -> T s u t (w (T v y (T T)) yv0) | | bindCached :: (C v, C w, C yv0) => T s u t (w (T v y (T T)) yv0) -> (w (T v y (T T)) yv0 -> T s u t b) -> T s u t b | | share :: (C v, C w, C yv0) => T s u t (w (T v y (T T)) yv0) -> (T s u t (w (T v y (T T)) yv0) -> T s u t b) -> T s u t b | | toStorableInt16Mono :: (C w, C a, C a) => w (S Voltage a) a -> w T Int16 | | toStorableInt16Stereo :: (C w, C a a, C a, C a) => w (S Voltage a) (T a) -> w T (T Int16) |
|
|
Documentation |
|
|
Instances | |
|
|
|
|
toTimeScalar :: (C t, C u) => T u t -> T s u t t | Source |
|
|
|
|
toAmplitudeScalar :: (C w, C y, C v) => w (T v y sig) yv -> T v y -> y | Source |
|
|
|
|
|
|
amplitude :: (C w, C v) => w (T v y sig) yv -> T v y | Source |
|
|
samples :: (C w, C v) => w (T v y (T sig)) yv -> sig yv | Source |
|
|
fromSignal :: T v y -> R s yv -> R s v y yv | Source |
|
|
fromSamples :: T v y -> T yv -> R s v y yv | Source |
|
|
scalarSamples :: (C w, C y, C v) => (T v y -> y) -> w (S v y) y -> T y | Source |
|
|
fromScalarSamples :: T v y -> T y -> R s v y y | Source |
|
|
scalarSamplesGeneric :: (C w, C y, C v, C y, C sig) => (T v y -> y) -> w (T v y (T sig)) y -> sig y | Source |
|
|
vectorSamples :: (C w, C y yv, C v) => (T v y -> y) -> w (S v y) yv -> T yv | Source |
|
|
fromVectorSamples :: T v y -> T yv -> R s v y yv | Source |
|
|
replaceAmplitude :: (C w, C v0, C v1) => T v1 y -> w (T v0 y sig) yv -> w (T v1 y sig) yv | Source |
|
|
replaceSamples :: (C w, C v) => sig1 yv1 -> w (T v y sig0) yv0 -> w (T v y (T sig1)) yv1 | Source |
|
|
processSamples :: (C w, C v) => (sig0 yv0 -> sig1 yv1) -> w (T v y (T sig0)) yv0 -> w (T v y (T sig1)) yv1 | Source |
|
|
asTypeOfAmplitude :: y -> w (T v y sig) yv -> y | Source |
|
|
($-) :: (C y, C y, C u, C v) => T s u t (R s v y y -> a) -> T v y -> T s u t a | Source |
|
|
|
|
(&*^) :: C flat y => T v y -> T s u t (T s flat y) -> T s u t (R s v y y) | Source |
|
|
(&*>^) :: T v y -> T s u t (R s yv) -> T s u t (R s v y yv) | Source |
|
|
|
We want to represent streams of discrete events
in a manner that is more safe than plain [Bool].
Each peak can be imagined as a Dirac impulse.
A [Bool] could be used accidentally for Synthesizer.Dimensional.Amplitude.Cut.selectBool,
where selectBool is intended for piecewise constant control curves.
You may think that a type like Peak = Peak Bool as sample type
in T s Peak would also do the job.
Actually, this wouldn't be a good idea
since you can apply constant interpolation on it,
which obviously fools the idea of a peak.
| Constructors | |
|
|
|
|
cache :: (C v, C w, C yv0) => T s u t (w (T v y (T T)) yv0) -> T s u t (w (T v y (T T)) yv0) | Source |
|
|
bindCached :: (C v, C w, C yv0) => T s u t (w (T v y (T T)) yv0) -> (w (T v y (T T)) yv0 -> T s u t b) -> T s u t b | Source |
|
|
share :: (C v, C w, C yv0) => T s u t (w (T v y (T T)) yv0) -> (T s u t (w (T v y (T T)) yv0) -> T s u t b) -> T s u t b | Source |
|
|
|
|
|
|
Produced by Haddock version 2.3.0 |