packages feed

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] -&gt; [Double] -&gt; [Double]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Ahighpass"
		>highpass</A
		> :: [Double] -&gt; [Double] -&gt; [Double]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Abandpass"
		>bandpass</A
		> :: [Double] -&gt; [Double] -&gt; [Double] -&gt; [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
		> -&gt; [Double] -&gt; [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
		> -&gt; <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
		>FilterSpec</A
		> -&gt; [Double] -&gt; [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 -&gt; <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
		>FilterSpec</A
		> -&gt; <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
		> -&gt; [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
		>)] -&gt; [[Double]]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AinterpolFilterLists"
		>interpolFilterLists</A
		> :: [Double] -&gt; [Double] -&gt; Double -&gt; [Double]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Affreq"
		>ffreq</A
		> :: Double -&gt; Double</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Affreqi"
		>ffreqi</A
		> :: Double -&gt; Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Aaverage512"
		>average512</A
		> :: [Double] -&gt; [Double]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AlowpassFS"
		>lowpassFS</A
		> :: Double -&gt; Double -&gt; <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 -&gt; Double -&gt; <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 -&gt; Double -&gt; Double -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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] -&gt; [Double] -&gt; [Double]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3Ahighpass"
	  ></A
	  ><B
	  >highpass</B
	  > :: [Double] -&gt; [Double] -&gt; [Double]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3Abandpass"
	  ></A
	  ><B
	  >bandpass</B
	  > :: [Double] -&gt; [Double] -&gt; [Double] -&gt; [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
	  > -&gt; [Double] -&gt; [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
	  > -&gt; <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
	  >FilterSpec</A
	  > -&gt; [Double] -&gt; [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 -&gt; <A HREF = "Sound.Hommage.Filter.html#t%3AFilterSpec"
	  >FilterSpec</A
	  > -&gt; <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
	  > -&gt; [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
	  >)] -&gt; [[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] -&gt; [Double] -&gt; Double -&gt; [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 -&gt; Double</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> for filter coefficient number: (0.0 .. 1.0) -&gt; (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 -&gt; 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] -&gt; [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 -&gt; Double -&gt; <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 -&gt; Double -&gt; <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"
	      >-&gt; Double</TD
	      ><TD CLASS = "rdoc"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      >-&gt; Double</TD
	      ><TD CLASS = "rdoc"
	      > cutoff</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      >-&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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
>