packages feed

hommage-0.0.5: doc/Sound.Hommage.WavFile.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.WavFile</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.WavFile</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"
		    > Binary Files</A
		    ></DT
		  ><DT
		  ><A HREF = "#2"
		    > WAV-Files</A
		    ></DT
		  ><DT
		  ><A HREF = "#3"
		    > Cast between Int16 and Double representation of WAV-data</A
		    ></DT
		  ><DT
		  ><A HREF = "#4"
		    > Low-Level implemetation </A
		    ></DT
		  ><DD
		  ><DL
		    ><DT
		      ><A HREF = "#5"
			> Arrays and Files</A
			></DT
		      ><DT
		      ><A HREF = "#6"
			> Single Stream</A
			></DT
		      ><DT
		      ><A HREF = "#7"
			> Buffered Stream</A
			></DT
		      ><DT
		      ><A HREF = "#8"
			> Header Stuff and others</A
			></DT
		      ></DL
		    ></DD
		  ></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%3AwriteDataFile"
		>writeDataFile</A
		> :: (Storable a) =&gt; FilePath -&gt; [a] -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AreadDataFile"
		>readDataFile</A
		> :: (Storable a) =&gt; FilePath -&gt; IO [a]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenDataFile"
		>openDataFile</A
		> :: (Storable a) =&gt; FilePath -&gt; [a]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwriteWavFile"
		>writeWavFile</A
		> :: FilePath -&gt; Either [Int16] [(Int16, Int16)] -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwriteWavFileMono"
		>writeWavFileMono</A
		> :: FilePath -&gt; [Int16] -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwriteWavFileStereo"
		>writeWavFileStereo</A
		> :: FilePath -&gt; [(Int16, Int16)] -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AreadWavFile"
		>readWavFile</A
		> :: FilePath -&gt; IO (Either [Int16] [(Int16, Int16)])</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenWavFile"
		>openWavFile</A
		> :: FilePath -&gt; Either [Int16] [(Int16, Int16)]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwriteWavFiles"
		>writeWavFiles</A
		> :: FilePath -&gt; String -&gt; [Either [Int16] [(Int16, Int16)]] -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwavInt16ToDouble"
		>wavInt16ToDouble</A
		> :: Int16 -&gt; Double</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwavDoubleToInt16"
		>wavDoubleToInt16</A
		> :: Double -&gt; Int16</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AreadArrayFromFile"
		>readArrayFromFile</A
		> :: (Storable a) =&gt; <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderSize"
		>HeaderSize</A
		> -&gt; FilePath -&gt; IO (StorableArray Int a, Int)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwriteArrayToFileWithHeader"
		>writeArrayToFileWithHeader</A
		> :: (MArray StorableArray a IO, Storable a) =&gt; <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderFun"
		>HeaderFun</A
		> -&gt; FilePath -&gt; StorableArray Int a -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwriteArrayToFile"
		>writeArrayToFile</A
		> :: (MArray StorableArray a IO, Storable a) =&gt; FilePath -&gt; StorableArray Int a -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenSingleInputFile"
		>openSingleInputFile</A
		> :: (Storable a) =&gt; Int -&gt; <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderSize"
		>HeaderSize</A
		> -&gt; FilePath -&gt; IO (IO (), IO (Maybe a), Int)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenSingleOutputFile"
		>openSingleOutputFile</A
		> :: (Storable a) =&gt; Int -&gt; FilePath -&gt; IO (IO (), a -&gt; IO ())</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenSingleInputWavFile"
		>openSingleInputWavFile</A
		> :: Int -&gt; FilePath -&gt; IO (IO (), Either (IO (Maybe Int16)) (IO (Maybe (Int16, Int16))), Int)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenSingleOutputWavFileMono"
		>openSingleOutputWavFileMono</A
		> :: Int -&gt; FilePath -&gt; IO (IO (), Int16 -&gt; IO ())</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenSingleOutputWavFileStereo"
		>openSingleOutputWavFileStereo</A
		> :: Int -&gt; FilePath -&gt; IO (IO (), (Int16, Int16) -&gt; IO ())</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenInputFile"
		>openInputFile</A
		> :: (Storable a) =&gt; <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderSize"
		>HeaderSize</A
		> -&gt; FilePath -&gt; Int -&gt; IO (IO (), StorableArray Int a -&gt; Int -&gt; IO Int, Int)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenOutputFile"
		>openOutputFile</A
		> :: (Storable a) =&gt; FilePath -&gt; IO (IO (), StorableArray Int a -&gt; Int -&gt; IO ())</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenOutputFileWithHeader"
		>openOutputFileWithHeader</A
		> :: (Storable a) =&gt; <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderFun"
		>HeaderFun</A
		> -&gt; FilePath -&gt; IO (IO (), StorableArray Int a -&gt; Int -&gt; IO ())</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenInputWavFile"
		>openInputWavFile</A
		> :: FilePath -&gt; IO (IO (), StorableArray Int Int16 -&gt; Int -&gt; IO (), Int, Bool)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenOutputWavFileMono"
		>openOutputWavFileMono</A
		> :: FilePath -&gt; IO (IO (), StorableArray Int Int16 -&gt; Int -&gt; IO ())</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AopenOutputWavFileStereo"
		>openOutputWavFileStereo</A
		> :: FilePath -&gt; IO (IO (), StorableArray Int Int16 -&gt; Int -&gt; IO ())</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>type</SPAN
		> <A HREF = "#t%3AHeaderFun"
		>HeaderFun</A
		> = (Handle -&gt; IO (), Handle -&gt; Int -&gt; IO ())</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><SPAN CLASS = "keyword"
		>type</SPAN
		> <A HREF = "#t%3AHeaderSize"
		>HeaderSize</A
		> = Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AnoHeader"
		>noHeader</A
		> :: <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderFun"
		>HeaderFun</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwavHeaderFunMono"
		>wavHeaderFunMono</A
		> :: <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderFun"
		>HeaderFun</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwavHeaderFunStereo"
		>wavHeaderFunStereo</A
		> :: <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderFun"
		>HeaderFun</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AwavHeaderSize"
		>wavHeaderSize</A
		> :: <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderSize"
		>HeaderSize</A
		></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AinitWriteWavHeaderMono"
		>initWriteWavHeaderMono</A
		> :: Handle -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AinitWriteWavHeaderStereo"
		>initWriteWavHeaderStereo</A
		> :: Handle -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AinitReadWavHeader"
		>initReadWavHeader</A
		> :: Handle -&gt; IO (Maybe (Bool, Int, Int, Int))</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AcloseWriteWavHeader"
		>closeWriteWavHeader</A
		> :: Handle -&gt; Int -&gt; IO ()</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Aencode"
		>encode</A
		> :: Int -&gt; String</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3Adecode"
		>decode</A
		> :: String -&gt; Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AencodeWavLengt"
		>encodeWavLengt</A
		> :: Int -&gt; (String, String)</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AinitWavHeaderMono"
		>initWavHeaderMono</A
		> :: [Char]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AinitWavHeaderStereo"
		>initWavHeaderStereo</A
		> :: [Char]</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AsizeOfArrayElements"
		>sizeOfArrayElements</A
		> :: (Storable a) =&gt; StorableArray Int a -&gt; Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AinferSizeOfArrayElements"
		>inferSizeOfArrayElements</A
		> :: (Storable a) =&gt; (StorableArray Int a -&gt; IO Int) -&gt; StorableArray Int a -&gt; Int</TD
	      ></TR
	    ><TR
	    ><TD CLASS = "s8"
	      ></TD
	      ></TR
	    ><TR
	    ><TD CLASS = "decl"
	      ><A HREF = "#v%3AinferSizeOfArrayElements'"
		>inferSizeOfArrayElements'</A
		> :: (Storable a) =&gt; (StorableArray Int a -&gt; Int -&gt; IO ()) -&gt; StorableArray Int a -&gt; Int</TD
	      ></TR
	    ></TABLE
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "1"
	  > Binary Files</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwriteDataFile"
	  ></A
	  ><B
	  >writeDataFile</B
	  > :: (Storable a) =&gt; FilePath -&gt; [a] -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AreadDataFile"
	  ></A
	  ><B
	  >readDataFile</B
	  > :: (Storable a) =&gt; FilePath -&gt; IO [a]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenDataFile"
	  ></A
	  ><B
	  >openDataFile</B
	  > :: (Storable a) =&gt; FilePath -&gt; [a]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "2"
	  > WAV-Files</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwriteWavFile"
	  ></A
	  ><B
	  >writeWavFile</B
	  > :: FilePath -&gt; Either [Int16] [(Int16, Int16)] -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwriteWavFileMono"
	  ></A
	  ><B
	  >writeWavFileMono</B
	  > :: FilePath -&gt; [Int16] -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwriteWavFileStereo"
	  ></A
	  ><B
	  >writeWavFileStereo</B
	  > :: FilePath -&gt; [(Int16, Int16)] -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AreadWavFile"
	  ></A
	  ><B
	  >readWavFile</B
	  > :: FilePath -&gt; IO (Either [Int16] [(Int16, Int16)])</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenWavFile"
	  ></A
	  ><B
	  >openWavFile</B
	  > :: FilePath -&gt; Either [Int16] [(Int16, Int16)]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwriteWavFiles"
	  ></A
	  ><B
	  >writeWavFiles</B
	  > :: FilePath -&gt; String -&gt; [Either [Int16] [(Int16, Int16)]] -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "3"
	  > Cast between Int16 and Double representation of WAV-data</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwavInt16ToDouble"
	  ></A
	  ><B
	  >wavInt16ToDouble</B
	  > :: Int16 -&gt; Double</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwavDoubleToInt16"
	  ></A
	  ><B
	  >wavDoubleToInt16</B
	  > :: Double -&gt; Int16</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section1"
	><A NAME = "4"
	  > Low-Level implemetation </A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section2"
	><A NAME = "5"
	  > Arrays and Files</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AreadArrayFromFile"
	  ></A
	  ><B
	  >readArrayFromFile</B
	  > :: (Storable a) =&gt; <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderSize"
	  >HeaderSize</A
	  > -&gt; FilePath -&gt; IO (StorableArray Int a, Int)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwriteArrayToFileWithHeader"
	  ></A
	  ><B
	  >writeArrayToFileWithHeader</B
	  > :: (MArray StorableArray a IO, Storable a) =&gt; <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderFun"
	  >HeaderFun</A
	  > -&gt; FilePath -&gt; StorableArray Int a -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwriteArrayToFile"
	  ></A
	  ><B
	  >writeArrayToFile</B
	  > :: (MArray StorableArray a IO, Storable a) =&gt; FilePath -&gt; StorableArray Int a -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section2"
	><A NAME = "6"
	  > Single Stream</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenSingleInputFile"
	  ></A
	  ><B
	  >openSingleInputFile</B
	  > :: (Storable a) =&gt; Int -&gt; <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderSize"
	  >HeaderSize</A
	  > -&gt; FilePath -&gt; IO (IO (), IO (Maybe a), Int)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenSingleOutputFile"
	  ></A
	  ><B
	  >openSingleOutputFile</B
	  > :: (Storable a) =&gt; Int -&gt; FilePath -&gt; IO (IO (), a -&gt; IO ())</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenSingleInputWavFile"
	  ></A
	  ><B
	  >openSingleInputWavFile</B
	  > :: Int -&gt; FilePath -&gt; IO (IO (), Either (IO (Maybe Int16)) (IO (Maybe (Int16, Int16))), Int)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenSingleOutputWavFileMono"
	  ></A
	  ><B
	  >openSingleOutputWavFileMono</B
	  > :: Int -&gt; FilePath -&gt; IO (IO (), Int16 -&gt; IO ())</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenSingleOutputWavFileStereo"
	  ></A
	  ><B
	  >openSingleOutputWavFileStereo</B
	  > :: Int -&gt; FilePath -&gt; IO (IO (), (Int16, Int16) -&gt; IO ())</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section2"
	><A NAME = "7"
	  > Buffered Stream</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenInputFile"
	  ></A
	  ><B
	  >openInputFile</B
	  > :: (Storable a) =&gt; <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderSize"
	  >HeaderSize</A
	  > -&gt; FilePath -&gt; Int -&gt; IO (IO (), StorableArray Int a -&gt; Int -&gt; IO Int, Int)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenOutputFile"
	  ></A
	  ><B
	  >openOutputFile</B
	  > :: (Storable a) =&gt; FilePath -&gt; IO (IO (), StorableArray Int a -&gt; Int -&gt; IO ())</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenOutputFileWithHeader"
	  ></A
	  ><B
	  >openOutputFileWithHeader</B
	  > :: (Storable a) =&gt; <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderFun"
	  >HeaderFun</A
	  > -&gt; FilePath -&gt; IO (IO (), StorableArray Int a -&gt; Int -&gt; IO ())</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenInputWavFile"
	  ></A
	  ><B
	  >openInputWavFile</B
	  > :: FilePath -&gt; IO (IO (), StorableArray Int Int16 -&gt; Int -&gt; IO (), Int, Bool)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenOutputWavFileMono"
	  ></A
	  ><B
	  >openOutputWavFileMono</B
	  > :: FilePath -&gt; IO (IO (), StorableArray Int Int16 -&gt; Int -&gt; IO ())</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AopenOutputWavFileStereo"
	  ></A
	  ><B
	  >openOutputWavFileStereo</B
	  > :: FilePath -&gt; IO (IO (), StorableArray Int Int16 -&gt; Int -&gt; IO ())</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "section2"
	><A NAME = "8"
	  > Header Stuff and others</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >type</SPAN
	  > <A NAME = "t%3AHeaderFun"
	  ></A
	  ><B
	  >HeaderFun</B
	  > = (Handle -&gt; IO (), Handle -&gt; Int -&gt; IO ())</TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> The first Action is applied after opening the file. Then the data
   bytes are written. The second Action is then called with the number of
   bytes of the data. It must close the handle. </TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><SPAN CLASS = "keyword"
	  >type</SPAN
	  > <A NAME = "t%3AHeaderSize"
	  ></A
	  ><B
	  >HeaderSize</B
	  > = Int</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AnoHeader"
	  ></A
	  ><B
	  >noHeader</B
	  > :: <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderFun"
	  >HeaderFun</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwavHeaderFunMono"
	  ></A
	  ><B
	  >wavHeaderFunMono</B
	  > :: <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderFun"
	  >HeaderFun</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "doc"
	> The first Action writes the Header of the wav-file.
   Then the wav-data is written. The second action moves
   the Handle to the positions where the lenght of the wav-file 
   are encoded (in the header) and writes the right number, which 
   is unknown before all data is written. 
   Afterwards it closes the file.</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwavHeaderFunStereo"
	  ></A
	  ><B
	  >wavHeaderFunStereo</B
	  > :: <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderFun"
	  >HeaderFun</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AwavHeaderSize"
	  ></A
	  ><B
	  >wavHeaderSize</B
	  > :: <A HREF = "Sound.Hommage.WavFile.html#t%3AHeaderSize"
	  >HeaderSize</A
	  ></TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AinitWriteWavHeaderMono"
	  ></A
	  ><B
	  >initWriteWavHeaderMono</B
	  > :: Handle -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AinitWriteWavHeaderStereo"
	  ></A
	  ><B
	  >initWriteWavHeaderStereo</B
	  > :: Handle -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AinitReadWavHeader"
	  ></A
	  ><B
	  >initReadWavHeader</B
	  > :: Handle -&gt; IO (Maybe (Bool, Int, Int, Int))</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AcloseWriteWavHeader"
	  ></A
	  ><B
	  >closeWriteWavHeader</B
	  > :: Handle -&gt; Int -&gt; IO ()</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3Aencode"
	  ></A
	  ><B
	  >encode</B
	  > :: Int -&gt; String</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3Adecode"
	  ></A
	  ><B
	  >decode</B
	  > :: String -&gt; Int</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AencodeWavLengt"
	  ></A
	  ><B
	  >encodeWavLengt</B
	  > :: Int -&gt; (String, String)</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AinitWavHeaderMono"
	  ></A
	  ><B
	  >initWavHeaderMono</B
	  > :: [Char]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AinitWavHeaderStereo"
	  ></A
	  ><B
	  >initWavHeaderStereo</B
	  > :: [Char]</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AsizeOfArrayElements"
	  ></A
	  ><B
	  >sizeOfArrayElements</B
	  > :: (Storable a) =&gt; StorableArray Int a -&gt; Int</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AinferSizeOfArrayElements"
	  ></A
	  ><B
	  >inferSizeOfArrayElements</B
	  > :: (Storable a) =&gt; (StorableArray Int a -&gt; IO Int) -&gt; StorableArray Int a -&gt; Int</TD
	></TR
      ><TR
      ><TD CLASS = "s15"
	></TD
	></TR
      ><TR
      ><TD CLASS = "decl"
	><A NAME = "v%3AinferSizeOfArrayElements'"
	  ></A
	  ><B
	  >inferSizeOfArrayElements'</B
	  > :: (Storable a) =&gt; (StorableArray Int a -&gt; Int -&gt; IO ()) -&gt; StorableArray Int a -&gt; Int</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
>