The riff package

[Tags:library, mit, program]

This library provides a RIFF parser for Haskell for easy manipulation of common file formats like WAVE and RIFF container AVI files.


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.3.0.1
Dependencies base (>=4.5 && <5.0), binary (==0.7.*), bytestring (>=0.9 && <1.0), either (==4.3.*), filepath (==1.3.*), riff, transformers (==0.4.*) [details]
License MIT
Copyright (c) 2014 Robert Massaioli
Author Robert Massaioli
Maintainer robertmassaioli@gmail.com
Stability experimental
Category Data
Home page https://bitbucket.org/robertmassaioli/riff/overview
Bug tracker http://bitbucket.org/robertmassaioli/riff/issues
Source repository head: git clone git://bitbucket.org/robertmassaioli/riff.git
Uploaded Fri Apr 24 00:47:06 UTC 2015 by RobertMassaioli
Distributions NixOS:0.3.0.1
Downloads 706 total (4 in the last 30 days)
Votes
0 []
Status Docs available [build log]
Last success reported on 2015-05-21 [all 1 reports]

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Readme for riff

Readme for riff-0.3.0.1

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: