synthesizer-core-0.2: Audio signal processing coded in Haskell: Low level partSource codeContentsIndex
Synthesizer.Plain.Filter.Recursive.FirstOrderComplex
Portabilityrequires multi-parameter type classes
Stabilityprovisional
Maintainersynthesizer@henning-thielemann.de
Description
First order lowpass and highpass with complex valued feedback. The complex feedback allows resonance.
Synopsis
data Parameter a
parameter :: C a => Pole a -> Parameter a
parameterFromPeakWidth :: C a => a -> Pole a -> Parameter a
parameterFromPeakToDCRatio :: C a => Pole a -> Parameter a
step :: C a v => Parameter a -> v -> State (T v) (Result v)
modifierInit :: (C a, C a v) => Initialized (T v) (T v) (Parameter a) v (Result v)
modifier :: (C a, C a v) => Simple (T v) (Parameter a) v (Result v)
causal :: (C a, C a v) => T (Parameter a, v) (Result v)
runInit :: (C a, C a v) => T v -> T (Parameter a) -> T v -> T (Result v)
run :: (C a, C a v) => T (Parameter a) -> T v -> T (Result v)
Documentation
data Parameter a Source
show/hide Instances
C a v => C a (Parameter v)
parameter :: C a => Pole a -> Parameter aSource

The internal parameters are computed such that:

  • At the resonance frequency the filter amplifies by the factor resonance with no phase shift.
  • At resonance frequency plus half sample rate the filter amplifies by facter recip $ 2 - recip resonance with no phase shift, but you cannot observe this immediately, because it is outside the Nyquist band.
parameterFromPeakWidth :: C a => a -> Pole a -> Parameter aSource

The internal parameters are computed such that:

  • At the resonance frequency the filter amplifies by the factor resonance with no phase shift.
  • At resonance frequency plus and minus band width the filter amplifies by facter 1 with a non-zero phase shift.
parameterFromPeakToDCRatio :: C a => Pole a -> Parameter aSource

The internal parameters are computed such that:

  • At the resonance frequency the filter amplifies by the factor resonance with a non-zero phase shift.
  • The filter amplifies the direct current (frequency zero) by factor 1 with no phase shift.
  • The real component is a lowpass, the imaginary component is a highpass. You can interpolate between them using other complex projections.
step :: C a v => Parameter a -> v -> State (T v) (Result v)Source
Universal filter: Computes high pass, band pass, low pass in one go
modifierInit :: (C a, C a v) => Initialized (T v) (T v) (Parameter a) v (Result v)Source
modifier :: (C a, C a v) => Simple (T v) (Parameter a) v (Result v)Source
causal :: (C a, C a v) => T (Parameter a, v) (Result v)Source
runInit :: (C a, C a v) => T v -> T (Parameter a) -> T v -> T (Result v)Source
run :: (C a, C a v) => T (Parameter a) -> T v -> T (Result v)Source
Produced by Haddock version 2.4.2