hommage-0.0.5: doc/Sound.Hommage.Filter.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><TITLE
>Sound.Hommage.Filter</TITLE
><LINK HREF = "haddock.css" REL = "stylesheet" TYPE = "text/css"
></HEAD
><BODY
><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
><TR
><TD CLASS = "topbar"
><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
><TR
><TD
><IMG SRC = "haskell_icon.gif" WIDTH = "16" HEIGHT = "16" ALT = " "
></TD
><TD CLASS = "title"
></TD
><TD CLASS = "topbut"
><A HREF = "Sound.Hommage.html"
>Parent</A
></TD
><TD CLASS = "topbut"
><A HREF = "index.html"
>Contents</A
></TD
><TD CLASS = "topbut"
><A HREF = "doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS = "modulebar"
><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
><TR
><TD
><FONT SIZE = "6"
>Sound.Hommage.Filter</FONT
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD
><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
><TR
><TD CLASS = "section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF = "#1"
> Filters</A
></DT
><DT
><A HREF = "#2"
> FilterSpec</A
></DT
><DT
><A HREF = "#3"
> FilterSpec and Lists</A
></DT
><DT
><A HREF = "#4"
> Other</A
></DT
><DT
><A HREF = "#5"
> Filterfunctions</A
></DT
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "section1"
>Synopsis</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "body"
><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Alowpass"
>lowpass</A
> :: [Double] -> [Double] -> [Double]</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Ahighpass"
>highpass</A
> :: [Double] -> [Double] -> [Double]</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Abandpass"
>bandpass</A
> :: [Double] -> [Double] -> [Double] -> [Double]</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Astretchpass"
>stretchpass</A
> :: <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
> -> [Double] -> [Double]</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Amorphpass"
>morphpass</A
> :: <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
> -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
> -> [Double] -> [Double]</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><SPAN CLASS = "keyword"
>type</SPAN
> <A HREF = "#t%3AFilterSpec"
>FilterSpec</A
> = [(Int, Double)]</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AshiftFilterSpec"
>shiftFilterSpec</A
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
> -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AfilterSpecToList"
>filterSpecToList</A
> :: <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
> -> [Double]</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AfilterSpecsToLists"
>filterSpecsToLists</A
> :: [(Int, <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
>)] -> [[Double]]</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AinterpolFilterLists"
>interpolFilterLists</A
> :: [Double] -> [Double] -> Double -> [Double]</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Affreq"
>ffreq</A
> :: Double -> Double</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Affreqi"
>ffreqi</A
> :: Double -> Int</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Aaverage512"
>average512</A
> :: [Double] -> [Double]</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AlowpassFS"
>lowpassFS</A
> :: Double -> Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AhighpassFS"
>highpassFS</A
> :: Double -> Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AbandpassFS"
>bandpassFS</A
> :: Double -> Double -> Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Alowp0FS"
>lowp0FS</A
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Alowp1FS"
>lowp1FS</A
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Abandp0FS"
>bandp0FS</A
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Abandp1FS"
>bandp1FS</A
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Ahighp0FS"
>highp0FS</A
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3Ahighp1FS"
>highp1FS</A
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "section1"
><A NAME = "1"
> Filters</A
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Alowpass"
></A
><B
>lowpass</B
> :: [Double] -> [Double] -> [Double]</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Ahighpass"
></A
><B
>highpass</B
> :: [Double] -> [Double] -> [Double]</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Abandpass"
></A
><B
>bandpass</B
> :: [Double] -> [Double] -> [Double] -> [Double]</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Astretchpass"
></A
><B
>stretchpass</B
> :: <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
> -> [Double] -> [Double]</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Amorphpass"
></A
><B
>morphpass</B
> :: <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
> -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
> -> [Double] -> [Double]</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "section1"
><A NAME = "2"
> FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><SPAN CLASS = "keyword"
>type</SPAN
> <A NAME = "t%3AFilterSpec"
></A
><B
>FilterSpec</B
> = [(Int, Double)]</TD
></TR
><TR
><TD CLASS = "doc"
> 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. </TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3AshiftFilterSpec"
></A
><B
>shiftFilterSpec</B
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
> -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "doc"
> 0..1: lower, 1..: higher</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "section1"
><A NAME = "3"
> FilterSpec and Lists</A
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3AfilterSpecToList"
></A
><B
>filterSpecToList</B
> :: <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
> -> [Double]</TD
></TR
><TR
><TD CLASS = "doc"
> Converting a FilterSpec to a list of 512 Doubles</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3AfilterSpecsToLists"
></A
><B
>filterSpecsToLists</B
> :: [(Int, <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
>)] -> [[Double]]</TD
></TR
><TR
><TD CLASS = "doc"
> 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. </TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3AinterpolFilterLists"
></A
><B
>interpolFilterLists</B
> :: [Double] -> [Double] -> Double -> [Double]</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "section1"
><A NAME = "4"
> Other</A
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Affreq"
></A
><B
>ffreq</B
> :: Double -> Double</TD
></TR
><TR
><TD CLASS = "doc"
> for filter coefficient number: (0.0 .. 1.0) -> (1.0 .. 512.0)</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Affreqi"
></A
><B
>ffreqi</B
> :: Double -> Int</TD
></TR
><TR
><TD CLASS = "doc"
> floor of <TT
><A HREF = "Sound.Hommage.Filter.html#v%3Affreq"
>ffreq</A
></TT
> </TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Aaverage512"
></A
><B
>average512</B
> :: [Double] -> [Double]</TD
></TR
><TR
><TD CLASS = "doc"
> the resulting list is 1 / 512 as long as the input list.
512 elements are read and their average is the next output value.</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "section1"
><A NAME = "5"
> Filterfunctions</A
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3AlowpassFS"
></A
><B
>lowpassFS</B
> :: Double -> Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3AhighpassFS"
></A
><B
>highpassFS</B
> :: Double -> Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3AbandpassFS"
></A
><B
>bandpassFS</B
></TD
></TR
><TR
><TD CLASS = "body"
><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
><TR
><TD CLASS = "decl"
>:: Double</TD
><TD CLASS = "rdoc"
> width of freq-window</TD
></TR
><TR
><TD CLASS = "decl"
>-> Double</TD
><TD CLASS = "rdoc"
></TD
></TR
><TR
><TD CLASS = "decl"
>-> Double</TD
><TD CLASS = "rdoc"
> cutoff</TD
></TR
><TR
><TD CLASS = "decl"
>-> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
><TD CLASS = "rdoc"
></TD
></TR
><TR
><TD CLASS = "ndoc" COLSPAN = "2"
> range, curve, cutoff</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Alowp0FS"
></A
><B
>lowp0FS</B
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Alowp1FS"
></A
><B
>lowp1FS</B
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Abandp0FS"
></A
><B
>bandp0FS</B
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Abandp1FS"
></A
><B
>bandp1FS</B
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Ahighp0FS"
></A
><B
>highp0FS</B
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3Ahighp1FS"
></A
><B
>highp1FS</B
> :: Double -> <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
>FilterSpec</A
></TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "botbar"
>Produced by <A HREF = "http://www.haskell.org/haddock/"
>Haddock</A
> version HADDOCK_VERSION</TD
></TR
></TABLE
></BODY
></HTML
>