synthesizer-0.2.0.1: Audio signal processing coded in HaskellSource codeContentsIndex
Synthesizer.Filter.TwoWay
Synopsis
data Signal v = Signal {
past :: [v]
future :: [v]
}
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
= Mask [a]
| ModMask (Signal [a])
| FracDelay (T t v) t
| ModFracDelay (T t v) (Signal t)
| Delay Int
| Past [v]
Documentation
data Signal v Source
A TwoWay.Signal stores values of the past and the future
Constructors
Signal
past :: [v]
future :: [v]
show/hide Instances
Filter Signal T
C a v => C a (Signal v)
Eq v => Eq (Signal v)
Show v => Show (Signal v)
C v => C (Signal v)
take :: Int -> Signal v -> [v]Source
Take n values starting from time zero. If you want clips from elsewhere, call take after delay.
zipSignalWith :: (a -> b -> c) -> Signal a -> Signal b -> Signal cSource
origin :: C a => Signal a -> aSource
Take the value at time zero.
ones :: C a => Signal aSource
A signal that consists entirely of ones
delay :: C v => Int -> Signal v -> Signal vSource
shift signal in time, keep all values but if required pad with zeros
delayPad :: v -> Int -> Signal v -> Signal vSource
delayOpt :: (Eq v, C v) => Int -> Signal v -> Signal vSource
shift signal in time, zero values at either ends will be flushed
delayOnce :: C v => Signal v -> Signal vSource
Delay by one sample.
delayPadOnce :: v -> Signal v -> Signal vSource
delayOptOnce :: (Eq v, C v) => Signal v -> Signal vSource
delayGen :: (Signal v -> Signal v) -> Int -> Signal v -> Signal vSource
General routine that supports delaying and prefetching using a general one-sample delaying routine.
reverseTwoWay :: Signal v -> Signal vSource
flipPair :: (a, b) -> (b, a)Source
for a Signal this means a reversion of the elements
testDelayGen :: Signal DoubleSource
nonRecursiveFilter :: C a v => [a] -> Signal v -> Signal vSource
Unmodulated non-recursive filter
nonRecursiveFilterMod :: C a v => Signal [a] -> Signal v -> Signal vSource
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 bSource
Interpolation allowing negative frequencies, but requires storage of all past values.
interpolatePaddedCyclic :: (Ord a, C a) => T a b -> a -> Signal a -> Signal b -> Signal bSource
interpolatePaddedExtrapolation :: (Ord a, C a) => T a b -> a -> Signal a -> Signal b -> Signal bSource
interpolateCore :: (Ord a, C a) => T a b -> a -> Signal a -> Signal b -> Signal bSource
interpolateHalfWay :: (Ord a, C a) => T a b -> a -> [a] -> Signal b -> [b]Source
data T t a v Source
Description of a basic filter that can be used in larger networks.
Constructors
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) tDelay 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 IntDelay 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!
show/hide Instances
Produced by Haddock version 2.4.2