packages feed

hommage-0.0.5: doc/Sound.Hommage.Sample.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.Sample</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.Sample</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"
		    > Sample Datastructure</A
		    ></DT
		  ><DT
		  ><A HREF = "#2"
		    > File Operations</A
		    ></DT
		  ><DT
		  ><A HREF = "#3"
		    > Pitching, Playing and Scratching</A
		    ></DT
		  ><DT
		  ><A HREF = "#4"
		    > Transforming Samples</A
		    ></DT
		  ><DT
		  ><A HREF = "#5"
		    > Filter and Fourier Coeffs</A
		    ></DT
		  ><DT
		  ><A HREF = "#6"
		    > Playing a Sample</A
		    ></DT
		  ><DT
		  ><A HREF = "#7"
		    > Array functions</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"
	      ><SPAN CLASS = "keyword"
		>data</SPAN
		> <A HREF = "#t%3ASample"
		>Sample</A
		> a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AarraySample"
		>arraySample</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; IOArray Int a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AsizeSample"
		>sizeSample</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AnewSample"
		>newSample</A
		> :: Int -&gt; a -&gt; IO (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AnewSampleFromList"
		>newSampleFromList</A
		> :: [a] -&gt; IO (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenWavSample"
		>openWavSample</A
		> :: FilePath -&gt; IO (Either (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> <A HREF = "Sound.Hommage.Signal.html#t%3AMono"
		>Mono</A
		>) (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> <A HREF = "Sound.Hommage.Signal.html#t%3AStereo"
		>Stereo</A
		>))</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AsaveWavSampleMono"
		>saveWavSampleMono</A
		> :: FilePath -&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> Double -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AsaveWavSampleStereo"
		>saveWavSampleStereo</A
		> :: FilePath -&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> <A HREF = "Sound.Hommage.Signal.html#t%3AStereo"
		>Stereo</A
		> -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3ApitchWavSignal"
		>pitchWavSignal</A
		> :: FilePath -&gt; [Double] -&gt; <A HREF = "Sound.Hommage.Signal.html#t%3ASignal"
		>Signal</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AscratchWavSignal"
		>scratchWavSignal</A
		> :: FilePath -&gt; [Double] -&gt; <A HREF = "Sound.Hommage.Signal.html#t%3ASignal"
		>Signal</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AplaySample"
		>playSample</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; [a]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3ApitchSample"
		>pitchSample</A
		> :: (Fractional a) =&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; [Double] -&gt; [a]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AscratchSample"
		>scratchSample</A
		> :: (Fractional a) =&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; [Double] -&gt; [a]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AplayCoeffs"
		>playCoeffs</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
		>Coeffs</A
		> -&gt; [Complex Double]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AmapSample"
		>mapSample</A
		> :: (a -&gt; b) -&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; IO (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> b)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AfoldlSample"
		>foldlSample</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; (b -&gt; a -&gt; b) -&gt; b -&gt; IO b</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AupdateSample"
		>updateSample</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; (a -&gt; a) -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AnormaliseSample"
		>normaliseSample</A
		> :: (Ord a, Fractional a) =&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AfadeinoutSample"
		>fadeinoutSample</A
		> :: (Fractional a) =&gt; (Int, Int) -&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AstretchSample"
		>stretchSample</A
		> :: (Fractional a) =&gt; Int -&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; IO (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>data</SPAN
		> <A HREF = "#t%3ACoeffs"
		>Coeffs</A
		> </TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AarrayCoeffs"
		>arrayCoeffs</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
		>Coeffs</A
		> -&gt; IOArray Int <A HREF = "Sound.Hommage.DFTFilter.html#t%3ACoeffArr"
		>CoeffArr</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AsizeCoeffs"
		>sizeCoeffs</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
		>Coeffs</A
		> -&gt; Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwavesizeCoeffs"
		>wavesizeCoeffs</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
		>Coeffs</A
		> -&gt; Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AsyntheseSample"
		>syntheseSample</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
		>Coeffs</A
		> -&gt; IO (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> <A HREF = "Sound.Hommage.Signal.html#t%3AMono"
		>Mono</A
		>)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AanalyseSample"
		>analyseSample</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> <A HREF = "Sound.Hommage.Signal.html#t%3AMono"
		>Mono</A
		> -&gt; IO <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
		>Coeffs</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AfilterCoeffs"
		>filterCoeffs</A
		> :: IO (<A HREF = "Sound.Hommage.DFTFilter.html#t%3ACoeffMap"
		>CoeffMap</A
		> ()) -&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
		>Coeffs</A
		> -&gt; IO <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
		>Coeffs</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AmkPlayCoeffs"
		>mkPlayCoeffs</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
		>Coeffs</A
		> -&gt; IO (IO (Maybe (Complex Double)))</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AreadCoeffs"
		>readCoeffs</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
		>Coeffs</A
		> -&gt; Int -&gt; Int -&gt; IO (Complex Double)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwriteCoeffs"
		>writeCoeffs</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
		>Coeffs</A
		> -&gt; Int -&gt; Int -&gt; Complex Double -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AmkTriggerSample"
		>mkTriggerSample</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; a -&gt; IO (Bool -&gt; IO a)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AmkPlaySample"
		>mkPlaySample</A
		> :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; IO (IO (Maybe a))</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AmkScratchSample"
		>mkScratchSample</A
		> :: (Fractional a) =&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; IO (Double -&gt; IO a)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AmkPitchSample"
		>mkPitchSample</A
		> :: (Fractional a) =&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
		>Sample</A
		> a -&gt; IO (Double -&gt; IO (Maybe a))</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AinterpolArray"
		>interpolArray</A
		> :: (Fractional a, MArray array a IO) =&gt; array Int a -&gt; Int -&gt; Double -&gt; IO a</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AmkLoopArray"
		>mkLoopArray</A
		> :: (Fractional a, MArray arr a IO) =&gt; arr Int a -&gt; Int -&gt; IO (Double -&gt; IO a)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AmkPlayArray"
		>mkPlayArray</A
		> :: (Fractional a, MArray arr a IO) =&gt; arr Int a -&gt; Int -&gt; IO (Double -&gt; IO (Maybe 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"
	  > Sample Datastructure</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >data</SPAN
	  > <A NAME = "t%3ASample"
	  ></A
	  ><B
	  >Sample</B
	  > a</TD
	></TR
      ><TR
      ><TD CLASS = "body"
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AarraySample"
	  ></A
	  ><B
	  >arraySample</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; IOArray Int a</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AsizeSample"
	  ></A
	  ><B
	  >sizeSample</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; Int</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AnewSample"
	  ></A
	  ><B
	  >newSample</B
	  > :: Int -&gt; a -&gt; IO (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AnewSampleFromList"
	  ></A
	  ><B
	  >newSampleFromList</B
	  > :: [a] -&gt; IO (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "2"
	  > File Operations</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenWavSample"
	  ></A
	  ><B
	  >openWavSample</B
	  > :: FilePath -&gt; IO (Either (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > <A HREF = "Sound.Hommage.Signal.html#t%3AMono"
	  >Mono</A
	  >) (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > <A HREF = "Sound.Hommage.Signal.html#t%3AStereo"
	  >Stereo</A
	  >))</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AsaveWavSampleMono"
	  ></A
	  ><B
	  >saveWavSampleMono</B
	  > :: FilePath -&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > Double -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AsaveWavSampleStereo"
	  ></A
	  ><B
	  >saveWavSampleStereo</B
	  > :: FilePath -&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > <A HREF = "Sound.Hommage.Signal.html#t%3AStereo"
	  >Stereo</A
	  > -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "3"
	  > Pitching, Playing and Scratching</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3ApitchWavSignal"
	  ></A
	  ><B
	  >pitchWavSignal</B
	  > :: FilePath -&gt; [Double] -&gt; <A HREF = "Sound.Hommage.Signal.html#t%3ASignal"
	  >Signal</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Open a Wav-File, but play it with variable (positive) speed/ frequency. </TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AscratchWavSignal"
	  ></A
	  ><B
	  >scratchWavSignal</B
	  > :: FilePath -&gt; [Double] -&gt; <A HREF = "Sound.Hommage.Signal.html#t%3ASignal"
	  >Signal</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Open a Wav-File, but play it with variable (positive and/or negative) speed/ frequency. 
   Backward playing is possible.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AplaySample"
	  ></A
	  ><B
	  >playSample</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; [a]</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Creates a finite list with the content of the Sample.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3ApitchSample"
	  ></A
	  ><B
	  >pitchSample</B
	  > :: (Fractional a) =&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; [Double] -&gt; [a]</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Creates a list with the content of the Sample, but played with variable speed/frequency.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AscratchSample"
	  ></A
	  ><B
	  >scratchSample</B
	  > :: (Fractional a) =&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; [Double] -&gt; [a]</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Creates a list with the content of the Sample, but played with variable speed/frequency, 
   backward playing possible.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AplayCoeffs"
	  ></A
	  ><B
	  >playCoeffs</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
	  >Coeffs</A
	  > -&gt; [Complex Double]</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> Creates a list with the content of <TT
	  ><A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
	    >Coeffs</A
	    ></TT
	  > (a representation of the fourier coefficients of 
   a <TT
	  ><A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	    >Sample</A
	    ></TT
	  >). </TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "4"
	  > Transforming Samples</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmapSample"
	  ></A
	  ><B
	  >mapSample</B
	  > :: (a -&gt; b) -&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; IO (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > b)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AfoldlSample"
	  ></A
	  ><B
	  >foldlSample</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; (b -&gt; a -&gt; b) -&gt; b -&gt; IO b</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AupdateSample"
	  ></A
	  ><B
	  >updateSample</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; (a -&gt; a) -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AnormaliseSample"
	  ></A
	  ><B
	  >normaliseSample</B
	  > :: (Ord a, Fractional a) =&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AfadeinoutSample"
	  ></A
	  ><B
	  >fadeinoutSample</B
	  > :: (Fractional a) =&gt; (Int, Int) -&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AstretchSample"
	  ></A
	  ><B
	  >stretchSample</B
	  > :: (Fractional a) =&gt; Int -&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; IO (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "5"
	  > Filter and Fourier Coeffs</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >data</SPAN
	  > <A NAME = "t%3ACoeffs"
	  ></A
	  ><B
	  >Coeffs</B
	  > </TD
	></TR
      ><TR
      ><TD CLASS = "body"
	><TABLE CLASS = "vanilla" CELLSPACING = "0" CELLPADDING = "0"
	  ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AarrayCoeffs"
	  ></A
	  ><B
	  >arrayCoeffs</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
	  >Coeffs</A
	  > -&gt; IOArray Int <A HREF = "Sound.Hommage.DFTFilter.html#t%3ACoeffArr"
	  >CoeffArr</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AsizeCoeffs"
	  ></A
	  ><B
	  >sizeCoeffs</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
	  >Coeffs</A
	  > -&gt; Int</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwavesizeCoeffs"
	  ></A
	  ><B
	  >wavesizeCoeffs</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
	  >Coeffs</A
	  > -&gt; Int</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AsyntheseSample"
	  ></A
	  ><B
	  >syntheseSample</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
	  >Coeffs</A
	  > -&gt; IO (<A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > <A HREF = "Sound.Hommage.Signal.html#t%3AMono"
	  >Mono</A
	  >)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AanalyseSample"
	  ></A
	  ><B
	  >analyseSample</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > <A HREF = "Sound.Hommage.Signal.html#t%3AMono"
	  >Mono</A
	  > -&gt; IO <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
	  >Coeffs</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AfilterCoeffs"
	  ></A
	  ><B
	  >filterCoeffs</B
	  > :: IO (<A HREF = "Sound.Hommage.DFTFilter.html#t%3ACoeffMap"
	  >CoeffMap</A
	  > ()) -&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
	  >Coeffs</A
	  > -&gt; IO <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
	  >Coeffs</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmkPlayCoeffs"
	  ></A
	  ><B
	  >mkPlayCoeffs</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
	  >Coeffs</A
	  > -&gt; IO (IO (Maybe (Complex Double)))</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AreadCoeffs"
	  ></A
	  ><B
	  >readCoeffs</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
	  >Coeffs</A
	  > -&gt; Int -&gt; Int -&gt; IO (Complex Double)</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> usage: <TT
	  > readCoeffs obj nrOfCoeffarr nrOfCoefficient </TT
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwriteCoeffs"
	  ></A
	  ><B
	  >writeCoeffs</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
	  >Coeffs</A
	  > -&gt; Int -&gt; Int -&gt; Complex Double -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "6"
	  > Playing a Sample</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmkTriggerSample"
	  ></A
	  ><B
	  >mkTriggerSample</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; a -&gt; IO (Bool -&gt; IO a)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmkPlaySample"
	  ></A
	  ><B
	  >mkPlaySample</B
	  > :: <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; IO (IO (Maybe a))</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmkScratchSample"
	  ></A
	  ><B
	  >mkScratchSample</B
	  > :: (Fractional a) =&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; IO (Double -&gt; IO a)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmkPitchSample"
	  ></A
	  ><B
	  >mkPitchSample</B
	  > :: (Fractional a) =&gt; <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
	  >Sample</A
	  > a -&gt; IO (Double -&gt; IO (Maybe a))</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "7"
	  > Array functions</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AinterpolArray"
	  ></A
	  ><B
	  >interpolArray</B
	  > :: (Fractional a, MArray array a IO) =&gt; array Int a -&gt; Int -&gt; Double -&gt; IO a</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmkLoopArray"
	  ></A
	  ><B
	  >mkLoopArray</B
	  > :: (Fractional a, MArray arr a IO) =&gt; arr Int a -&gt; Int -&gt; IO (Double -&gt; IO a)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AmkPlayArray"
	  ></A
	  ><B
	  >mkPlayArray</B
	  > :: (Fractional a, MArray arr a IO) =&gt; arr Int a -&gt; Int -&gt; IO (Double -&gt; IO (Maybe 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
>