[Haskell-cafe] Re: [Haskell] analogous functions in Sound.File.Sndfile

stefan kersten sk at k-hornz.de
Wed Jul 7 07:06:52 EDT 2010


following up on haskell-cafe ...

On 07.07.10 04:07, Maria Gabriela Valdes wrote:
> Does anybody know what are the analogous functions and data types in the
> haskell library "Sound.File.Sndfile" of  the libsndfile library in C  ?

the decision may be debatable, but where it seemed appropriate the C identifiers
map to identifiers commonly used in haskell.

> data type : SNDFILE

Sound.File.Sndfile.Handle

> function: sf_open

Sound.File.Sndfile.openFile

> function : sf_read_short

the most lowlevel interface is the hGetBuf method of Sample; you have to
allocate buffer memory yourself. hGetBuffer returns a newly allocated instance
of Buffer; see the packages hsndfile-vector [1] and hsndfile-storablevector [2]
for instances and examples [3]. hGetContents returns the contents of the whole
file at once while hGetContentChunks returns a lazy list of buffers. readFile
and readFileChunks are just wrappers around openFile and hGetContents.

i just noticed though that the lazy versions don't work correctly because they
don't take closing the file handle into account properly. i think they should be
removed from the API, for incremental processing an iteratee interface would
probably be more appropriate.

<sk>

[1] http://hackage.haskell.org/package/hsndfile-vector
[2] http://hackage.haskell.org/package/hsndfile-storablevector
[3]
http://hackage.haskell.org/packages/archive/hsndfile-vector/0.4.0/doc/html/src/Sound-File-Sndfile-Buffer-Vector-Examples.html#normalizeSoundFile


More information about the Haskell-Cafe mailing list