synthesizer-0.0.3: Audio signal processing coded in HaskellSource codeContentsIndex
Synthesizer.Dimensional.RateAmplitude.Signal
Portabilityrequires multi-parameter type classes
Stabilityprovisional
Maintainersynthesizer@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
data T v y sig yv Source
show/hide Instances
(C v, Show y, C sig) => C (T v y sig)
(C sig, C u) => C (T u y sig)
(C flat y, IsScalar scalar, C y) => C (T scalar y flat) y
(C v, Show y, Show yv, C sig) => Show (T v y sig yv)
type R s v y yv = T s (S v y) yvSource
toTimeScalar :: (C t, C u) => T u t -> T s u t tSource
toFrequencyScalar :: (C t, C u) => T (Recip u) t -> T s u t tSource
toAmplitudeScalar :: (C w, C y, C v) => w (T v y sig) yv -> T v y -> ySource
toGradientScalar :: (C q, C u, C v) => T v q -> T (DimensionGradient u v) q -> T s u q qSource
type DimensionGradient u v = Mul (Recip u) vSource
amplitude :: (C w, C v) => w (T v y sig) yv -> T v ySource
samples :: (C w, C v) => w (T v y (T sig)) yv -> sig yvSource
fromSignal :: T v y -> R s yv -> R s v y yvSource
fromSamples :: T v y -> T yv -> R s v y yvSource
scalarSamples :: (C w, C y, C v) => (T v y -> y) -> w (S v y) y -> T ySource
fromScalarSamples :: T v y -> T y -> R s v y ySource
scalarSamplesGeneric :: (C w, C y, C v, C y, C sig) => (T v y -> y) -> w (T v y (T sig)) y -> sig ySource
vectorSamples :: (C w, C y yv, C v) => (T v y -> y) -> w (S v y) yv -> T yvSource
fromVectorSamples :: T v y -> T yv -> R s v y yvSource
replaceAmplitude :: (C w, C v0, C v1) => T v1 y -> w (T v0 y sig) yv -> w (T v1 y sig) yvSource
replaceSamples :: (C w, C v) => sig1 yv1 -> w (T v y sig0) yv0 -> w (T v y (T sig1)) yv1Source
processSamples :: (C w, C v) => (sig0 yv0 -> sig1 yv1) -> w (T v y (T sig0)) yv0 -> w (T v y (T sig1)) yv1Source
asTypeOfAmplitude :: y -> w (T v y sig) yv -> ySource
($-) :: (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 aSource
($&) :: C y => T s u t (R s y -> a) -> T s u t (R s Scalar y y) -> T s u t aSource
(&*^) :: 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
newtype Peaks s 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
Peaks (T Bool)
fromPeaks :: (Ord q, C q, C u) => T s u q (Peaks s -> R s (Recip u) q q)Source
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 bSource
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 bSource
toStorableInt16Mono :: (C w, C a, C a) => w (S Voltage a) a -> w T Int16Source
toStorableInt16Stereo :: (C w, C a a, C a, C a) => w (S Voltage a) (T a) -> w T (T Int16)Source
Produced by Haddock version 2.3.0