synthesizer-0.2.0.1: Audio signal processing coded in HaskellSource codeContentsIndex
Synthesizer.Dimensional.ControlledProcess
PortabilityHaskell 98
Stabilityprovisional
Maintainersynthesizer@henning-thielemann.de
Description
Basic definitions for signal processors which are controlled by another signal. If a control curve is expensive to compute, or, what happens more frequently, the conversion from natural control parameters to internal control parameters is expensive, then it can be more efficient to compute the control curve at a lower rate and interpolate the internal control parameters of a particular process. CSound and SuperCollider have a sample rate that is common to all control curves, the ratio between audio and control rate must be integral, and they use constant interpolation exclusively. With some more sophisticated interpolation one may choose a larger gap between control and audio rate.
Synopsis
data T s ec ic a = Cons {
converter :: ec -> T ic
processor :: T ic -> a
}
runSynchronous :: T s u t (T s ec ic a) -> T s u t (ec -> a)
runSynchronous1 :: T s u t (T s (T s sig0 ec0) ic a) -> T s u t (T s sig0 ec0 -> a)
runSynchronous2 :: T s u t (T s (T s sig0 ec0, T s sig1 ec1) ic a) -> T s u t (T s sig0 ec0 -> T s sig1 ec1 -> a)
runSynchronous3 :: T s u t (T s (T s sig0 ec0, T s sig1 ec1, T s sig2 ec2) ic a) -> T s u t (T s sig0 ec0 -> T s sig1 ec1 -> T s sig2 ec2 -> a)
runAsynchronous :: (C u, C ic, C t) => T t ic -> T s u t (T s ec ic a) -> T r u t -> ec -> T s u t a
runAsynchronous1 :: (C u, C ic, C t) => T t ic -> T s u t (T s (T r sig0 ec0) ic a) -> T u t sig0 ec0 -> T s u t a
runAsynchronous2 :: (C u, C ic, C t) => T t ic -> T s u t (T s (T r sig0 ec0, T r sig1 ec1) ic a) -> T u t sig0 ec0 -> T u t sig1 ec1 -> T s u t a
runAsynchronous3 :: (C u, C ic, C t) => T t ic -> T s u t (T s (T r sig0 ec0, T r sig1 ec1, T r sig2 ec2) ic a) -> T u t sig0 ec0 -> T u t sig1 ec1 -> T u t sig2 ec2 -> T s u t a
Documentation
data T s ec ic a Source
ec is the type for the curve of external control parameters, ic for internal control parameters.
Constructors
Cons
converter :: ec -> T ic
processor :: T ic -> a
runSynchronous :: T s u t (T s ec ic a) -> T s u t (ec -> a)Source
runSynchronous1 :: T s u t (T s (T s sig0 ec0) ic a) -> T s u t (T s sig0 ec0 -> a)Source
runSynchronous2 :: T s u t (T s (T s sig0 ec0, T s sig1 ec1) ic a) -> T s u t (T s sig0 ec0 -> T s sig1 ec1 -> a)Source
runSynchronous3 :: T s u t (T s (T s sig0 ec0, T s sig1 ec1, T s sig2 ec2) ic a) -> T s u t (T s sig0 ec0 -> T s sig1 ec1 -> T s sig2 ec2 -> a)Source
runAsynchronous :: (C u, C ic, C t) => T t ic -> T s u t (T s ec ic a) -> T r u t -> ec -> T s u t aSource
runAsynchronous1 :: (C u, C ic, C t) => T t ic -> T s u t (T s (T r sig0 ec0) ic a) -> T u t sig0 ec0 -> T s u t aSource
runAsynchronous2 :: (C u, C ic, C t) => T t ic -> T s u t (T s (T r sig0 ec0, T r sig1 ec1) ic a) -> T u t sig0 ec0 -> T u t sig1 ec1 -> T s u t aSource
runAsynchronous3 :: (C u, C ic, C t) => T t ic -> T s u t (T s (T r sig0 ec0, T r sig1 ec1, T r sig2 ec2) ic a) -> T u t sig0 ec0 -> T u t sig1 ec1 -> T u t sig2 ec2 -> T s u t aSource
Produced by Haddock version 2.4.2