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

Safe HaskellNone
LanguageHaskell2010

Synthesizer.Filter.TwoWay

Synopsis

Documentation

data Signal v Source #

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

Constructors

Signal 

Fields

Instances
Filter Signal T Source # 
Instance details

Defined in Synthesizer.Filter.TwoWay

Methods

apply :: (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 details

Defined in Synthesizer.Filter.TwoWay

Methods

(*>) :: a -> Signal v -> Signal v #

Eq v => Eq (Signal v) Source # 
Instance details

Defined in Synthesizer.Filter.TwoWay

Methods

(==) :: Signal v -> Signal v -> Bool #

(/=) :: Signal v -> Signal v -> Bool #

Show v => Show (Signal v) Source # 
Instance details

Defined in Synthesizer.Filter.TwoWay

Methods

showsPrec :: Int -> Signal v -> ShowS #

show :: Signal v -> String #

showList :: [Signal v] -> ShowS #

C v => C (Signal v) Source # 
Instance details

Defined in Synthesizer.Filter.TwoWay

Methods

zero :: 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
Filter Signal T Source # 
Instance details

Defined in Synthesizer.Filter.TwoWay

Methods

apply :: (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 #