hommage-0.0.5: Haskell Offline Music Manipulation And Generation EDSLSource codeContentsIndex
Sound.Hommage.Filter
Contents
Filters
FilterSpec
FilterSpec and Lists
Other
Filterfunctions
Synopsis
lowpass :: [Double] -> [Double] -> [Double]
highpass :: [Double] -> [Double] -> [Double]
bandpass :: [Double] -> [Double] -> [Double] -> [Double]
stretchpass :: FilterSpec -> [Double] -> [Double]
morphpass :: FilterSpec -> FilterSpec -> [Double] -> [Double]
type FilterSpec = [(Int, Double)]
shiftFilterSpec :: Double -> FilterSpec -> FilterSpec
filterSpecToList :: FilterSpec -> [Double]
filterSpecsToLists :: [(Int, FilterSpec)] -> [[Double]]
interpolFilterLists :: [Double] -> [Double] -> Double -> [Double]
ffreq :: Double -> Double
ffreqi :: Double -> Int
average512 :: [Double] -> [Double]
lowpassFS :: Double -> Double -> FilterSpec
highpassFS :: Double -> Double -> FilterSpec
bandpassFS :: Double -> Double -> Double -> FilterSpec
lowp0FS :: Double -> FilterSpec
lowp1FS :: Double -> FilterSpec
bandp0FS :: Double -> FilterSpec
bandp1FS :: Double -> FilterSpec
highp0FS :: Double -> FilterSpec
highp1FS :: Double -> FilterSpec
Filters
lowpass :: [Double] -> [Double] -> [Double]Source
highpass :: [Double] -> [Double] -> [Double]Source
bandpass :: [Double] -> [Double] -> [Double] -> [Double]Source
stretchpass :: FilterSpec -> [Double] -> [Double]Source
morphpass :: FilterSpec -> FilterSpec -> [Double] -> [Double]Source
FilterSpec
type FilterSpec = [(Int, Double)]Source
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 -> FilterSpecSource
0..1: lower, 1..: higher
FilterSpec and Lists
filterSpecToList :: FilterSpec -> [Double]Source
Converting a FilterSpec to a list of 512 Doubles
filterSpecsToLists :: [(Int, FilterSpec)] -> [[Double]]Source
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]Source
Other
ffreq :: Double -> DoubleSource
for filter coefficient number: (0.0 .. 1.0) -> (1.0 .. 512.0)
ffreqi :: Double -> IntSource
floor of ffreq
average512 :: [Double] -> [Double]Source
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 -> FilterSpecSource
highpassFS :: Double -> Double -> FilterSpecSource
bandpassFSSource
:: Doublewidth of freq-window
-> Double
-> Doublecutoff
-> FilterSpec
range, curve, cutoff
lowp0FS :: Double -> FilterSpecSource
lowp1FS :: Double -> FilterSpecSource
bandp0FS :: Double -> FilterSpecSource
bandp1FS :: Double -> FilterSpecSource
highp0FS :: Double -> FilterSpecSource
highp1FS :: Double -> FilterSpecSource
Produced by Haddock version 2.4.2