synthesizer-dimensional-0.8.1: Audio signal processing with static physical dimensions

Copyright(c) Henning Thielemann 2008-2011
LicenseGPL
Maintainersynthesizer@henning-thielemann.de
Stabilityprovisional
Portabilityrequires multi-parameter type classes
Safe HaskellNone
LanguageHaskell2010

Synthesizer.Dimensional.Causal.FilterParameter

Contents

Description

 

Synopsis

Recursive

Without resonance

highpassFromFirstOrder :: Single s amp amp (Result yv) yv #

lowpassFromFirstOrder :: Single s amp amp (Result yv) yv #

firstOrder :: (C u, C q, Arrow arrow) => T s u q (T arrow (Dimensional (Recip u) q q) (T FirstOrderGlobal (RateDep s (Parameter q)))) #

data FirstOrderGlobal #

Instances

Primitive FirstOrderGlobal # 
C FirstOrderGlobal # 
C q yv => C FirstOrderGlobal (Parameter q) (T amp yv) (T amp (Result yv)) # 

Methods

process :: C u => T s u t (T s (T FirstOrderGlobal (RateDep s (Parameter q)), T amp yv) (T amp (Result yv))) #

butterworthLowpass #

Arguments

:: (Arrow arrow, C q, Storable q, C u) 
=> Int

Order of the filter, must be even, the higher the order, the sharper is the separation of frequencies.

-> SecondOrderCascade s u q arrow 

butterworthHighpass #

Arguments

:: (Arrow arrow, C q, Storable q, C u) 
=> Int

Order of the filter, must be even, the higher the order, the sharper is the separation of frequencies.

-> SecondOrderCascade s u q arrow 

chebyshevALowpass :: (Arrow arrow, C q, Storable q, C u) => Int -> SecondOrderCascade s u q arrow #

chebyshevAHighpass :: (Arrow arrow, C q, Storable q, C u) => Int -> SecondOrderCascade s u q arrow #

chebyshevBLowpass :: (Arrow arrow, C q, Storable q, C u) => Int -> SecondOrderCascade s u q arrow #

chebyshevBHighpass :: (Arrow arrow, C q, Storable q, C u) => Int -> SecondOrderCascade s u q arrow #

data SecondOrderCascadeGlobal #

Instances

C SecondOrderCascadeGlobal # 
(Storable q, Storable yv, C q yv) => C SecondOrderCascadeGlobal (Parameter q) (T amp yv) (T amp yv) # 

Methods

process :: C u => T s u t (T s (T SecondOrderCascadeGlobal (RateDep s (Parameter q)), T amp yv) (T amp yv)) #

Allpass

allpassCascade #

Arguments

:: (C u, C q, Arrow arrow) 
=> Int

order, number of filters in the cascade

-> q

the phase shift to be achieved for the given frequency

-> T s u q (T arrow (Dimensional (Recip u) q q) (T AllpassCascadeGlobal (RateDep s (Parameter q)))) 

data AllpassCascadeGlobal #

Instances

C AllpassCascadeGlobal # 
C q yv => C AllpassCascadeGlobal (Parameter q) (T amp yv) (T amp yv) # 

Methods

process :: C u => T s u t (T s (T AllpassCascadeGlobal (RateDep s (Parameter q)), T amp yv) (T amp yv)) #

allpassPhaser #

Arguments

:: (C u, C q, Arrow arrow) 
=> Int

order, number of filters in the cascade

-> T s u q (T arrow (Dimensional Scalar q q, Dimensional (Recip u) q q) (T AllpassPhaserGlobal (RateDep s (q, Parameter q)))) 

data AllpassPhaserGlobal #

Instances

C AllpassPhaserGlobal # 
C q yv => C AllpassPhaserGlobal (q, Parameter q) (T amp yv) (T amp yv) # 

Methods

process :: C u => T s u t (T s (T AllpassPhaserGlobal (RateDep s (q, Parameter q)), T amp yv) (T amp yv)) #

With resonance

universal :: (C u, C q, Arrow arrow) => T s u q (T arrow (Dimensional Scalar q q, Dimensional (Recip u) q q) (T UniversalGlobal (RateDep s (Parameter q)))) #

data UniversalGlobal #

Instances

Primitive UniversalGlobal # 
C UniversalGlobal # 
C q yv => C UniversalGlobal (Parameter q) (T amp yv) (T amp (Result yv)) # 

Methods

process :: C u => T s u t (T s (T UniversalGlobal (RateDep s (Parameter q)), T amp yv) (T amp (Result yv))) #

highpassFromUniversal :: Single s amp amp (Result yv) yv #

bandpassFromUniversal :: Single s amp amp (Result yv) yv #

lowpassFromUniversal :: Single s amp amp (Result yv) yv #

bandlimitFromUniversal :: Single s amp amp (Result yv) yv #

moogLowpass :: (C u, C q, Arrow arrow) => Int -> T s u q (T arrow (Dimensional Scalar q q, Dimensional (Recip u) q q) (T MoogLowpassGlobal (RateDep s (Parameter q)))) #

The returned arrow has intentionally no s type parameter, in order to let you apply the parameter generator to control signals with control sampling rate that is different from the one target audio sampling rate.

data MoogLowpassGlobal #

Instances

C MoogLowpassGlobal # 
C q yv => C MoogLowpassGlobal (Parameter q) (T amp yv) (T amp yv) # 

Methods

process :: C u => T s u t (T s (T MoogLowpassGlobal (RateDep s (Parameter q)), T amp yv) (T amp yv)) #