libgig is a C++ library for loading, modifying existing and creating new Gigasampler files (of both the old version 2 and the latest version 3 of the Gigasampler format) and DLS (Downloadable Sounds) Level 1 & 2 files.
The library actually consists of three parts:
- 1. RIFF classes: Provide convenient methods to parse and access arbitrary RIFF files. The Resource Interchange File Format provides universal data containers ordered in a tree-like structure and can be compared to XML, but with the difference that RIFF is binary encoded.
- 2. DLS classes: Provide convenient methods to parse and access DLS (Downloadable Sounds) Level 1 and 2 files. These classes use the RIFF classes to access such files, since the DLS format uses RIFF as its layer beneath to store and structure its data.
- 3. gig classes: These are based on the DLS classes and provide the necessary extensions for the Gigasampler file format v2 and v3, since the Gigasampler format is in fact based on the DLS Level 2 format, with quite some radical modifications though.
So one can also use this library to access all kinds of RIFF files and DLS files, but the main focus (as one can obviously derive from the library name) is currently the Gigasampler format.
libgig and its tools are released under the GNU General Public License (GPL).
Beside the actual library there are four example applications which demonstrate how to use the library:
- gigdump: Demo app that prints out the content of a .gig file.
- gigextract: Extracts samples from a .gig file.
- dlsdump: Demo app that prints out the content of a DLS file.
- rifftree: Tool that prints out the RIFF tree of an arbitrary RIFF file.
Since version 3.0.0 libgig also provides write support, that is for creating modifying .gig, DLS and RIFF files. You can find a test case called
This library is developed and optimized for POSIX compliant operating systems like Linux and OSX and since release 3.1.1 for Windows as well. libgig was developed to compile on any operating system, though since release 3.0.0 libgig uses one tiny operating system dependant method to be able to resize files. Should be a 5 minute job to implement this method for other operating systems as well though.
For compilation instructions, requirements and further details please refer to the README file et al.
GigWriteTest.cpp which demonstrates how to create a .gig file with libgig. You find other demo apps regarding write support of libgig on the website.
That's all folks. Happy hacking!
-- Christian Schoenebeck <email@example.com>
- See also:
Generated on Sun May 1 03:22:45 2011 for libgig by