synthesizer-filter-0.4.1.1: Audio signal processing coded in Haskell: Filter networks

Synthesizer.Filter.TwoWay

Synopsis

# Documentation

data Signal v Source #

A TwoWay.Signal stores values of the past and the future

Constructors

 Signal Fieldspast, future :: [v]
Instances
 Source # Instance detailsDefined in Synthesizer.Filter.TwoWay Methodsapply :: (C t, C t, C a v, C a (Signal v)) => T t a v -> Signal v -> Signal v Source #transferFunction :: (C t, C a t) => T t a v -> t -> T0 t Source # C a v => C a (Signal v) Source # Instance detailsDefined in Synthesizer.Filter.TwoWay Methods(*>) :: a -> Signal v -> Signal v # Eq v => Eq (Signal v) Source # Instance detailsDefined in Synthesizer.Filter.TwoWay Methods(==) :: Signal v -> Signal v -> Bool #(/=) :: Signal v -> Signal v -> Bool # Show v => Show (Signal v) Source # Instance detailsDefined in Synthesizer.Filter.TwoWay MethodsshowsPrec :: Int -> Signal v -> ShowS #show :: Signal v -> String #showList :: [Signal v] -> ShowS # C v => C (Signal v) Source # Instance detailsDefined in Synthesizer.Filter.TwoWay Methodszero :: Signal v #(+) :: Signal v -> Signal v -> Signal v #(-) :: Signal v -> Signal v -> Signal v #negate :: Signal v -> 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 c Source #

origin :: C a => Signal a -> a Source #

Take the value at time zero.

ones :: C a => Signal a Source #

A signal that consists entirely of ones

delay :: C v => Int -> Signal v -> Signal v Source #

shift signal in time, keep all values but if required pad with zeros

delayPad :: v -> Int -> Signal v -> Signal v Source #

delayOpt :: (Eq v, C v) => Int -> Signal v -> Signal v Source #

shift signal in time, zero values at either ends will be flushed

delayOnce :: C v => Signal v -> Signal v Source #

Delay by one sample.

delayOptOnce :: (Eq v, C 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.

flipPair :: (a, b) -> (b, a) Source #

for a Signal this means a reversion of the elements

nonRecursiveFilter :: C a v => [a] -> Signal v -> Signal v Source #

Unmodulated non-recursive filter

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.

interpolatePaddedCyclic :: (Ord a, C a) => T a b -> a -> Signal a -> Signal b -> Signal b Source #

interpolatePaddedExtrapolation :: (Ord a, C a) => T a b -> a -> Signal a -> Signal b -> Signal b Source #

interpolateCore :: (Ord a, C a) => T a b -> a -> Signal a -> Signal b -> Signal b Source #

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) 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!
Instances
 Source # Instance detailsDefined in Synthesizer.Filter.TwoWay Methodsapply :: (C t, C t, C a v, C a (Signal v)) => T t a v -> Signal v -> Signal v Source #transferFunction :: (C t, C a t) => T t a v -> t -> T0 t Source #