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

Portabilityrequires multi-parameter type classes
Stabilityprovisional
Maintainersynthesizer@henning-thielemann.de
Safe HaskellNone

Synthesizer.Plain.Filter.Recursive.SecondOrder

Description

All recursive filters with real coefficients can be decomposed into first order and second order filters with real coefficients. This follows from the Fundamental theorem of algebra.

Synopsis

Documentation

data Parameter a Source

Parameters for a general recursive filter of 2nd order.

Constructors

Parameter 

Fields

c0 :: !a
 
c1 :: !a
 
c2 :: !a
 
d1 :: !a
 
d2 :: !a
 

data State a Source

Constructors

State 

Fields

u1 :: !a
 
u2 :: !a
 
y1 :: !a
 
y2 :: !a
 

adjustPassband :: C a => Passband -> (a -> Parameter a) -> a -> Parameter aSource

Given a function which computes the filter parameters of a lowpass filter for a given frequency, turn that into a function which generates highpass parameters, if requested filter type is Highpass.

amplify :: C a => a -> Parameter a -> Parameter aSource

Change filter parameter such that result is amplified by a given factor.

step :: (C a, C a v) => Parameter a -> v -> State (State v) vSource

modifierInit :: (C a, C a v) => Initialized (State v) (State v) (Parameter a) v vSource

modifier :: (C a, C a v) => Simple (State v) (Parameter a) v vSource

causal :: (C a, C a v) => T (Parameter a, v) vSource

runInit :: (C a, C a v) => State v -> T (Parameter a) -> T v -> T vSource

run :: (C a, C a v) => T (Parameter a) -> T v -> T vSource