|
|
|
|
|
|
Synopsis |
|
|
|
|
Filters |
|
lowpass :: [Double] -> [Double] -> [Double] |
|
highpass :: [Double] -> [Double] -> [Double] |
|
bandpass :: [Double] -> [Double] -> [Double] -> [Double] |
|
stretchpass :: FilterSpec -> [Double] -> [Double] |
|
morphpass :: FilterSpec -> FilterSpec -> [Double] -> [Double] |
|
FilterSpec |
|
type FilterSpec = [(Int, Double)] |
Filtering starts at coeff nr 0 and value 0.0 (constant coeff is always zero).
The elements in FilterSpec define the next value and how many
coeffs it takes to reach this value. |
|
shiftFilterSpec :: Double -> FilterSpec -> FilterSpec |
0..1: lower, 1..: higher |
|
FilterSpec and Lists |
|
filterSpecToList :: FilterSpec -> [Double] |
Converting a FilterSpec to a list of 512 Doubles |
|
filterSpecsToLists :: [(Int, FilterSpec)] -> [[Double]] |
Converting and interpolating a sequence of FilterSpecs to a list of lists. The first elemet of the
tuple, an Int, describes how many lists it takes to reach the given FilterSpec. |
|
interpolFilterLists :: [Double] -> [Double] -> Double -> [Double] |
|
Other |
|
ffreq :: Double -> Double |
for filter coefficient number: (0.0 .. 1.0) -> (1.0 .. 512.0) |
|
ffreqi :: Double -> Int |
floor of ffreq |
|
average512 :: [Double] -> [Double] |
the resulting list is 1 / 512 as long as the input list.
512 elements are read and their average is the next output value. |
|
Filterfunctions |
|
lowpassFS :: Double -> Double -> FilterSpec |
|
highpassFS :: Double -> Double -> FilterSpec |
|
bandpassFS |
:: Double | width of freq-window | -> Double | | -> Double | cutoff | -> FilterSpec | | range, curve, cutoff |
|
|
lowp0FS :: Double -> FilterSpec |
|
lowp1FS :: Double -> FilterSpec |
|
bandp0FS :: Double -> FilterSpec |
|
bandp1FS :: Double -> FilterSpec |
|
highp0FS :: Double -> FilterSpec |
|
highp1FS :: Double -> FilterSpec |
|
Produced by Haddock version HADDOCK_VERSION |