1 |
schoenebeck |
1378 |
/** |
2 |
|
|
|
3 |
|
|
@mainpage libgig |
4 |
|
|
|
5 |
|
|
|
6 |
|
|
@section Intro |
7 |
|
|
|
8 |
|
|
libgig is a C++ library for loading, modifying existing and creating new |
9 |
schoenebeck |
1385 |
Gigasampler files (of both the old version 2 and the latest version 3 of |
10 |
|
|
the Gigasampler format) and DLS (Downloadable Sounds) Level 1 & 2 files. |
11 |
schoenebeck |
1378 |
|
12 |
|
|
The library actually consists of three parts: |
13 |
|
|
|
14 |
schoenebeck |
1385 |
- 1. @ref RIFF classes: Provide convenient methods to parse and access |
15 |
schoenebeck |
1378 |
arbitrary RIFF files. The <i>Resource Interchange File Format</i> |
16 |
|
|
provides universal data containers ordered in a tree-like structure |
17 |
|
|
and can be compared to XML, but with the difference that RIFF is |
18 |
|
|
binary encoded. |
19 |
|
|
|
20 |
schoenebeck |
1385 |
- 2. @ref DLS classes: Provide convenient methods to parse and access |
21 |
schoenebeck |
1378 |
DLS (<i>Downloadable Sounds</i>) Level 1 and 2 files. These classes |
22 |
|
|
use the RIFF classes to access such files, since the DLS format |
23 |
|
|
uses RIFF as its layer beneath to store and structure its data. |
24 |
|
|
|
25 |
schoenebeck |
1385 |
- 3. @ref gig classes: These are based on the DLS classes and provide the |
26 |
|
|
necessary extensions for the Gigasampler file format v2 and v3, since |
27 |
|
|
the Gigasampler format is in fact based on the DLS Level 2 format, with |
28 |
schoenebeck |
1378 |
quite some radical modifications though. |
29 |
|
|
|
30 |
schoenebeck |
1385 |
So one can also use this library to access all kinds of RIFF files and DLS |
31 |
|
|
files, but the main focus (as one can obviously derive from the library name) |
32 |
|
|
is currently the Gigasampler format. |
33 |
schoenebeck |
1378 |
|
34 |
schoenebeck |
1385 |
|
35 |
schoenebeck |
1378 |
@section License |
36 |
|
|
|
37 |
|
|
libgig and its tools are released under the GNU General Public License |
38 |
|
|
(GPL). |
39 |
|
|
|
40 |
|
|
|
41 |
|
|
@section Examples |
42 |
|
|
|
43 |
|
|
Beside the actual library there are four example applications which |
44 |
|
|
demonstrate how to use the library: |
45 |
|
|
|
46 |
|
|
- @e gigdump: Demo app that prints out the content of a .gig file. |
47 |
|
|
- @e gigextract: Extracts samples from a .gig file. |
48 |
|
|
- @e dlsdump: Demo app that prints out the content of a DLS file. |
49 |
|
|
- @e rifftree: Tool that prints out the RIFF tree of an arbitrary RIFF file. |
50 |
|
|
|
51 |
|
|
Since version 3.0.0 libgig also provides write support, that is for creating |
52 |
|
|
modifying .gig, DLS and RIFF files. You can find a test case called |
53 |
|
|
@c GigWriteTest.cpp which demonstrates how to create a .gig file with |
54 |
|
|
libgig. You find other demo apps regarding write support of libgig on the |
55 |
|
|
website. |
56 |
|
|
|
57 |
|
|
|
58 |
|
|
@section Portability |
59 |
|
|
|
60 |
|
|
This library is developed and optimized for POSIX compliant operating |
61 |
|
|
systems like Linux and OSX and since release 3.1.1 for Windows as well. |
62 |
|
|
libgig was developed to compile on any operating system, though since |
63 |
|
|
release 3.0.0 libgig uses one tiny operating system dependant method to be |
64 |
|
|
able to resize files. Should be a 5 minute job to implement this method for |
65 |
|
|
other operating systems as well though. |
66 |
|
|
|
67 |
|
|
|
68 |
|
|
@section Outro |
69 |
|
|
|
70 |
|
|
For compilation instructions, requirements and further details please refer |
71 |
|
|
to the README file et al. |
72 |
|
|
|
73 |
|
|
That's all folks. Happy hacking! |
74 |
|
|
|
75 |
|
|
-- Christian Schoenebeck <cuse@users.sourceforge.net> |
76 |
|
|
|
77 |
|
|
@see http://www.linuxsampler.org |
78 |
|
|
|
79 |
|
|
*/ |