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 -> 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 -> Int</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AnewSample"
>newSample</A
> :: Int -> a -> 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] -> 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 -> 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 -> <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> Double -> IO ()</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AsaveWavSampleStereo"
>saveWavSampleStereo</A
> :: FilePath -> <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> <A HREF = "Sound.Hommage.Signal.html#t%3AStereo"
>Stereo</A
> -> IO ()</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3ApitchWavSignal"
>pitchWavSignal</A
> :: FilePath -> [Double] -> <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 -> [Double] -> <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 -> [a]</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3ApitchSample"
>pitchSample</A
> :: (Fractional a) => <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> [Double] -> [a]</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AscratchSample"
>scratchSample</A
> :: (Fractional a) => <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> [Double] -> [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
> -> [Complex Double]</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AmapSample"
>mapSample</A
> :: (a -> b) -> <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> 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 -> (b -> a -> b) -> b -> 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 -> (a -> a) -> IO ()</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AnormaliseSample"
>normaliseSample</A
> :: (Ord a, Fractional a) => <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> IO ()</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AfadeinoutSample"
>fadeinoutSample</A
> :: (Fractional a) => (Int, Int) -> <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> IO ()</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AstretchSample"
>stretchSample</A
> :: (Fractional a) => Int -> <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> 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
> -> 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
> -> 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
> -> 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
> -> 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
> -> 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
> ()) -> <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
>Coeffs</A
> -> 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
> -> 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
> -> Int -> Int -> 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
> -> Int -> Int -> Complex Double -> 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 -> a -> IO (Bool -> 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 -> IO (IO (Maybe a))</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AmkScratchSample"
>mkScratchSample</A
> :: (Fractional a) => <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> IO (Double -> IO a)</TD
></TR
><TR
><TD CLASS = "s8"
></TD
></TR
><TR
><TD CLASS = "decl"
><A HREF = "#v%3AmkPitchSample"
>mkPitchSample</A
> :: (Fractional a) => <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> IO (Double -> 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) => array Int a -> Int -> Double -> 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) => arr Int a -> Int -> IO (Double -> 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) => arr Int a -> Int -> IO (Double -> 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 -> 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 -> Int</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3AnewSample"
></A
><B
>newSample</B
> :: Int -> a -> 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] -> 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 -> 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 -> <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> Double -> IO ()</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3AsaveWavSampleStereo"
></A
><B
>saveWavSampleStereo</B
> :: FilePath -> <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> <A HREF = "Sound.Hommage.Signal.html#t%3AStereo"
>Stereo</A
> -> 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 -> [Double] -> <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 -> [Double] -> <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 -> [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) => <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> [Double] -> [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) => <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> [Double] -> [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
> -> [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 -> b) -> <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> 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 -> (b -> a -> b) -> b -> 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 -> (a -> a) -> 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) => <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> IO ()</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3AfadeinoutSample"
></A
><B
>fadeinoutSample</B
> :: (Fractional a) => (Int, Int) -> <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> IO ()</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3AstretchSample"
></A
><B
>stretchSample</B
> :: (Fractional a) => Int -> <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> 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
> -> 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
> -> 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
> -> 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
> -> 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
> -> 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
> ()) -> <A HREF = "Sound.Hommage.Sample.html#t%3ACoeffs"
>Coeffs</A
> -> 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
> -> 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
> -> Int -> Int -> 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
> -> Int -> Int -> Complex Double -> 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 -> a -> IO (Bool -> 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 -> 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) => <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> IO (Double -> IO a)</TD
></TR
><TR
><TD CLASS = "s15"
></TD
></TR
><TR
><TD CLASS = "decl"
><A NAME = "v%3AmkPitchSample"
></A
><B
>mkPitchSample</B
> :: (Fractional a) => <A HREF = "Sound.Hommage.Sample.html#t%3ASample"
>Sample</A
> a -> IO (Double -> 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) => array Int a -> Int -> Double -> 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) => arr Int a -> Int -> IO (Double -> 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) => arr Int a -> Int -> IO (Double -> 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
>