synthesizer-core-0.5.2: Audio signal processing coded in Haskell: Low level part

Safe HaskellNone

Synthesizer.Causal.Process

Description

Processes that use only the current and past data. Essentially this is a data type for the crochetL function.

Synopsis

Documentation

data T a b Source

Cf. StreamFusion T

Constructors

forall s . Cons !(a -> StateT s Maybe b) !s 

Instances

fromStateMaybe :: (a -> StateT s Maybe b) -> s -> T a bSource

fromState :: (a -> State s b) -> s -> T a bSource

fromSimpleModifier :: Simple s ctrl a b -> T (ctrl, a) bSource

id :: T a aSource

map :: (a -> b) -> T a bSource

first :: Arrow a => forall b c d. a b c -> a (b, d) (c, d)

Send the first component of the input through the argument arrow, and copy the rest unchanged to the output.

second :: Arrow a => forall b c d. a b c -> a (d, b) (d, c)

A mirror image of first.

The default definition may be overridden with a more efficient version if desired.

compose :: T a b -> T b c -> T a cSource

split :: T a b -> T c d -> T (a, c) (b, d)Source

fanout :: T a b -> T a c -> T a (b, c)Source

loop :: ArrowLoop a => forall b d c. a (b, d) (c, d) -> a b c

apply :: Transform sig a b => T a b -> sig a -> sig bSource

applyFst :: Read sig a => T (a, b) c -> sig a -> T b cSource

I think this function does too much. Better use feedFst and (>>>).

applySnd :: Read sig b => T (a, b) c -> sig b -> T a cSource

I think this function does too much. Better use feedSnd and (>>>).

applySameType :: Transform sig a => T a a -> sig a -> sig aSource

applyConst :: T a b -> a -> T bSource

applyConst c x == apply c (repeat x)

apply2 :: (Read sig a, Transform sig b c) => T (a, b) c -> sig a -> sig b -> sig cSource

apply3 :: (Read sig a, Read sig b, Transform sig c d) => T (a, b, c) d -> sig a -> sig b -> sig c -> sig dSource

feed :: Read sig a => sig a -> T () aSource

feedFst :: Read sig a => sig a -> T b (a, b)Source

feedSnd :: Read sig a => sig a -> T b (b, a)Source

feedGenericFst :: Read sig a => sig a -> T b (a, b)Source

feedGenericSnd :: Read sig a => sig a -> T b (b, a)Source

feedConstFst :: a -> T b (a, b)Source

feedConstSnd :: a -> T b (b, a)Source

crochetL :: (x -> acc -> Maybe (y, acc)) -> acc -> T x ySource

scanL :: (acc -> x -> acc) -> acc -> T x accSource

scanL1 :: (x -> x -> x) -> T x xSource

zipWith :: Read sig a => (a -> b -> c) -> sig a -> T b cSource

consInit :: x -> T x xSource

Prepend an element to a signal, but keep the signal length, i.e. drop the last element.

chainControlled :: [T (c, x) x] -> T (c, x) xSource

replicateControlled :: Int -> T (c, x) x -> T (c, x) xSource

If T would be the function type -> then replicateControlled 3 f computes (c,x) -> f(c, f(c, f(c, x))).

feedback :: T (a, c) b -> T b c -> T a bSource

feedbackControlled :: T ((ctrl, a), c) b -> T (ctrl, b) c -> T (ctrl, a) bSource

applyFst' :: Read sig a => T (a, b) c -> sig a -> T b cSource

I think this function does too much. Better use feedFst and (>>>).

applySnd' :: Read sig b => T (a, b) c -> sig b -> T a cSource

I think this function does too much. Better use feedSnd and (>>>).