Project

riffola

0.0
No commit activity in last 3 years
No release in over 3 years
Library reading an extended RIFF format, supporting huge files. RIFF format is composed of a list of chunks, each chunk being an identifier, an encoded data size, an optional header and chunk data itself. Riffola has ways to deal with RIFF files taking some liberties on the RIFF format (additional headers, wrong chunk size...).
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

 Project Readme

Riffola

Riffola - Reading extended RIFF files

Getting Started

Prerequisites

You just need to have Ruby installed.

Installing

Riffola installs as any Rubygem, either using gem command or Bundler.

gem install riffola

Or using Bundler, add this in your Gemfile and issue bundle install.

gem 'riffola'

Once the gem is installed you can require its main library in your Ruby code and use its API:

require 'riffola'

chunks = Riffola.read 'my_file.wav'

RIFF format

Riffola considers a RIFF file as a list of chunks having the following structure:

  1. A 4 bytes header
  2. An encoded data size (on 4 or 2 bytes)
  3. An optional header
  4. Data of the given encoded data size

It gives ways in the Riffola.read method to specify different chunks formats (with header size, a correction on the data size in case it is wrongly encoded...).

Check the Riffola.read method description to get a grasp on the possible options given by the API.

Among the file formats it should be able to parse, there are WAV, AVI, ESP.

Running the tests

Executing tests is done by:

  1. Cloning the repository from Github:
git clone https://github.com/Muriel-Salvan/riffola
cd riffola
  1. Installing dependencies
bundle install
  1. Running tests
bundle exec rspec

Coding style tests

Rubocop is used for coding style tests.

bundle exec rubocop

Deployment

Like any Rubygem:

gem build riffola.gemspec

Contributing

Please fork the repository from Github and submit Pull Requests. Any contribution is more than welcome! :D

Versioning

We use SemVer for versioning.

Authors

License

This project is licensed under the BSD License - see the LICENSE file for details