/**
@mainpage libgig
@section Intro
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. @ref 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. @ref 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. @ref 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.
@section License
libgig and its tools are released under the GNU General Public License
(GPL).
@section Examples
Beside the actual library there are four example applications which
demonstrate how to use the library:
- @e gigdump: Demo app that prints out the content of a .gig file.
- @e gigextract: Extracts samples from a .gig file.
- @e dlsdump: Demo app that prints out the content of a DLS file.
- @e 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
@c 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.
@section Portability
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.
@section Outro
For compilation instructions, requirements and further details please refer
to the README file et al.
That's all folks. Happy hacking!
-- Christian Schoenebeck
@see http://www.linuxsampler.org
*/