RIFF parser for Haskell https://bitbucket.org/robertmassaioli/riff/overview

Latest on Hackage:

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

MIT licensed by Robert Massaioli

RIFF for Haskell

RIFF has been around for a long time and I thought that now would be a good time to write a library for it in Haskell. This library supports reading most RIFF files. Example file formats (taken from Wikipedia and elsewhere) that use RIFF as the container layer include:

  • WAV (Windows audio)
  • AVI (Windows audiovisual)
  • RMI (Windows "RIFF MIDIfile")
  • CDR (CorelDRAW vector graphics file)
  • ANI (Animated Windows cursors)
  • DLS (Downloadable Sounds)
  • WebP (An image format developed by Google)
  • XMA (Microsoft Xbox 360 console audio format based on WMA Pro)

And there are many more. You can even come up with your own data that can be contained inside RIFF.

Getting the Code

You can just rely upon the library in your cabal files. The code is on Hackage.

Building the Code

To build the code:

$ cabal sandbox init
$ cabal install

And that is all that there is to it.

Bundled Executables

I have written a few simple programs just so that I could test out the code that I have written:

$ cabal run riff-structure # prints out the internal structure of a RIFF file
$ cabal run riff-convert # lets you convert files to and from RIFF and RIFX formats
$ cabal run riff-identity # the identity over RIFF files, useful for testing

Feel free to use any of these executables to have a play with the RIFF file format, or better yet, write some code using this library and let me know about it.

Example Data

You can find example data all over the internet. Any WAVE file is a RIFF file for example. Here is a list of example data that you may be able to download:

Used by 2 packages:
comments powered byDisqus