Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Signal v = Signal {}
- take :: Int -> Signal v -> [v]
- zipSignalWith :: (a -> b -> c) -> Signal a -> Signal b -> Signal c
- origin :: C a => Signal a -> a
- ones :: C a => Signal a
- delay :: C v => Int -> Signal v -> Signal v
- delayPad :: v -> Int -> Signal v -> Signal v
- delayOpt :: (Eq v, C v) => Int -> Signal v -> Signal v
- delayOnce :: C v => Signal v -> Signal v
- delayPadOnce :: v -> Signal v -> Signal v
- delayOptOnce :: (Eq v, C v) => Signal v -> Signal v
- delayGen :: (Signal v -> Signal v) -> Int -> Signal v -> Signal v
- reverseTwoWay :: Signal v -> Signal v
- flipPair :: (a, b) -> (b, a)
- testDelayGen :: Signal Double
- nonRecursiveFilter :: C a v => [a] -> Signal v -> Signal v
- nonRecursiveFilterMod :: C a v => Signal [a] -> Signal v -> Signal v
- interpolatePaddedZero :: (Ord a, C a) => b -> T a b -> a -> Signal a -> Signal b -> Signal b
- interpolatePaddedCyclic :: (Ord a, C a) => T a b -> a -> Signal a -> Signal b -> Signal b
- interpolatePaddedExtrapolation :: (Ord a, C a) => T a b -> a -> Signal a -> Signal b -> Signal b
- interpolateCore :: (Ord a, C a) => T a b -> a -> Signal a -> Signal b -> Signal b
- interpolateHalfWay :: (Ord a, C a) => T a b -> a -> [a] -> Signal b -> [b]
- data T t a v
Documentation
A TwoWay.Signal stores values of the past and the future
delay :: C v => Int -> Signal v -> Signal v Source #
shift signal in time, keep all values but if required pad with zeros
delayOpt :: (Eq v, C v) => Int -> Signal v -> Signal v Source #
shift signal in time, zero values at either ends will be flushed
delayPadOnce :: v -> Signal v -> Signal v Source #
delayGen :: (Signal v -> Signal v) -> Int -> Signal v -> Signal v Source #
General routine that supports delaying and prefetching using a general one-sample delaying routine.
reverseTwoWay :: Signal v -> Signal v Source #
nonRecursiveFilterMod :: C a v => Signal [a] -> Signal v -> Signal v Source #
Modulated non-recursive filter. The number of values before time 0 (past) or the filter mask lengths must be at most finite.
interpolatePaddedZero :: (Ord a, C a) => b -> T a b -> a -> Signal a -> Signal b -> Signal b Source #
Interpolation allowing negative frequencies, but requires storage of all past values.
interpolatePaddedExtrapolation :: (Ord a, C a) => T a b -> a -> Signal a -> Signal b -> Signal b Source #
Description of a basic filter that can be used in larger networks.
Mask [a] | A static filter described by its mask |
ModMask (Signal [a]) | A modulated filter described by a list of masks |
FracDelay (T t v) t | Delay the signal by a fractional amount of samples. This is achieved by interpolation. |
ModFracDelay (T t v) (Signal t) | Delay with varying delay times. |
Delay Int | Delay the signal by given amount of samples. |
Past [v] | Replace the past by the given one. This must be present in each recursive filter cycle to let the magic work! |