6249      !"#$%&'()*+,-./012345678('A generic datatype for SoundFile data. 9:The type of the   , Internal is a special type used for the SndFile class. WBasic information about the audio data: number of channels, samplerate, and bit depth.  DThe basic class datatypes that represent soundfiles should support. get a % with data for the current SoundFile (get the type of the underlying instance /Get the AudioSig from the SndFileCls instance. 5convert a SndFileCls instance to the SoundFile type. )Get the length of audio data, in frames. unspecified error. %Specified bit depth is not supported (File is not in a recognized file format +Audio format information not found in file !Monad to support error handling. FAn audio data stream. This has both the raw audio data (as a list of ), " and the total length, in frames. ;The audio data. length of the audio data. ;A position in a data stream, or a length, in frame values. MOne frame of audio data, i.e. the sample value for each channel in the data. ?A single sample of audio data. Represented normalized to [-1,1] .The bit depth, or word length, of audio data. -The samplerate value, in samples per second. !"#Convert an interleaved [] (e.g., [l1, r1, l2, r2,...]) to [] $Interleave a [[]] to [], e.g. [[l1,l2,l3] , [r1,r2,r3]] -> [[l1,r1], [l2,r2] , [l3, r3]] %  !"#$'  #$ !"%     !"#$)<%&'A SubChunk of a Wave file. (an unknown chunk type )*+Any metadata in the file. ,-The audio data ./0Format of the audio data. 1=>?@ABCDE3Read a WaveData WaveChunk into a list of SoundData F'Functions to normalize newly-read data 4 I believe this function is correctly implemented. GHIJK?Create a WaveData wavechunk from a SndFileInfo and an AudioSig L6Un-normalize data, convert to the format native type. MNOPQRClip a SoundData to range [-1,1] for writing out. SPConvert a L.ByteString into a list of ByteStrings, corresponding to WaveChunks.  used in binary instance. T2$Create a WaveFile from a SndFileCls 37return a WaveFile from a bytestring (including header) 4Jdetermine (based on header information) if the bytestring is a wave file. %&'()*+,-./01234%&'0-+(1./,/)*/324%&&' 0-+(1./,/)*/()*+,-./012345\Decode a Lazy ByteString to a SoundFile. This should be used instead of Data.Binary decode 4 to make sure that the correct file format is used. 6QAttempt to decode a soundfile as the specified type. Return Nothing on failure. P This function may be faster than using decodeSoundFileBS if the type is known. 7&Find the SndFileType of a ByteString. f This function assumes that at most the file will match one format. If more than one format matches, * the first found will be the format used. 8AAttempt to guess the SndFileType from the extension of the file. :This does not check that the file actually is valid data. *  !"#$25678567825678U       !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUHSoundFile-0.2.2 Sound.BaseSound.Codecs.WaveFile Sound.File SoundFile SndFileTypeInternalOtherSoundFileWavePCMAIFF SndFileInfo numChannelssrbitDepth SndFileCls getSfInfo getSfType getAudioDatafromSndFileClsgetAudioLength AudioError OtherErrorInvalidBitDepthErrorUnknownFileTypeError NoFormatError AudioMonadAudioSig audioDatalengthInFrames FrameCount SoundFrame SoundDataBitDepth SampleRatemakeAudioSignal appendASig concatASig makeFrames interleaveWaveFile WaveChunkUnknownWaveChunk chunkType unparsedDataWaveMetametaDataWaveDatawaveData chunkLength WaveFormatformat toWaveFile getWaveFile isWaveFiledecodeSoundFileBSdecodeSoundFileHintedgetTypegetTypeFromName sfFileInfo sfFileDataWaveFileReaderriffBSwaveBSdataBSfmtBSmetaBSgetChunkLength processChunk cLenInFramesdecodeSoundData normalizegetSD8getSD16getSD24getSD32encodeSoundData unNormalize fastRoundputSD8putSD16putSD24putSD32clipunrollunroll'