ViewVC logotype

Annotation of /libgig/trunk/doc/mainpage.dox

Parent Directory Parent Directory | Revision Log Revision Log

Revision 2651 - (hide annotations) (download)
Wed Jun 18 21:21:17 2014 UTC (7 years, 3 months ago) by schoenebeck
File size: 8049 byte(s)
- API doc: Minor cosmetical fixes.

1 schoenebeck 1378 /**
3     @mainpage libgig
6     @section Intro
8 schoenebeck 2650 libgig is a C++ library for accessing audio-sample based instrument files,
9     as they are shipped for various software samplers and hardware sampler devices.
10     This C++ library was originally created to access Gigasampler files, but in the
11     meantime grew to much more than that. At the moment libgig consists of the
12     following major parts:
13 schoenebeck 1378
14 schoenebeck 2650 - @b 1. @ref gig classes: These provide convenient access to
15     @b Gigasampler / @b GigaStudio files (for all known format version, that is
16     from Gigasampler v1 to GigaStudio v4), allowing to load, modify and save
17 schoenebeck 2651 existing .gig files, as well as creating new .gig files from scratch.<br>
18     <br>
19 schoenebeck 2650 Since the gig file format was originally designed based on the DLS Level 2
20     format, the gig classes in this library are derived from the DLS classes of
21     this library, where the gig classes provide the necessary extensions for the
22 schoenebeck 2651 Gigasampler file format.<br>
23     <br>
24 schoenebeck 2650 Besides the fact that libgig supports all aspects of the original
25     Gigasampler / GigaStudio format, it now also provides some own extensions of
26     that original format. Most notably libgig provides an extension to save
27     real-time instrument scripts with .gig files. Those custom extensions are
28     however currently only supported by the graphical instrument editor
29     application @b gigedit and by @b LinuxSampler, they will obviously not work
30     with the original GigaStudio software.
31 schoenebeck 1378
32 schoenebeck 2650 - @b 2. @ref Korg classes: These provide support for loading sample based
33     instrument files for KORG's synthesizer keyboard models <i>Kronos</i>,
34     <i>M3</i>, <i>Oasys</i>, <i>Triton</i> and <i>Trinity</i>. There is
35     currently no support for modifying KORG files yet.
36 schoenebeck 1378
37 schoenebeck 2650 - @b 3. @b AKAI classes: These provide support for loading sample based disks
38     (CDROMs, hard disks, ZIP disks) and disk image files of AKAI's hardware
39 schoenebeck 2651 sampler series <i>S1000</i>, <i>S01</i>, <i>S2000</i> and <i>S3000</i>.<br>
40     <br>
41 schoenebeck 2650 The AKAI classes are a branch of <i>libakai</i>. In the AKAI classes of
42     libgig, libakai's original dependency to the so called <i>Carbon</i> C++
43     library has been removed and has been replaced by using ordinay
44     <a href="http://en.wikipedia.org/wiki/Standard_Template_Library">C++ STL</a>
45     classes instead. Further, this branch of libakai also provides support for
46     Linux and other POSIX based OSes (the original libakai was limited to Mac
47 schoenebeck 2651 and Windows).<br>
48     <br>
49 schoenebeck 2650 Currently the AKAI classes don't have their own dedicated C++ namespace.
50     Refer to class @ref AkaiDisk as toplevel entry class for accessing AKAI
51     sounds.
53     Besides the mentioned major parts above, libgig also provides the following
54     other components:
56     - @b 4. @ref DLS classes: Provide convenient methods to access
57     @b DLS (<i>Downloadable Sounds</i>) Level 1 and 2 files. The DLS file format
58     has been designed as open file format to be adopted by various keyboard
59     manufacturers for their sounds. However it never really made it to a broad
60     standard. You can use the DLS classes of libgig to load, modify and create
61     DLS files from scratch, however you will probably not find many DLS files
62     and/or software or hardware that supports this file format. The main reason
63     why these classes exist in libgig, is because of the fact that the
64     Gigasampler / GigaStudio file format was designed as extension on top of the
65     DLS file format (with quite some radical modifications though).
67     - @b 5. @ref RIFF classes: Provide convenient methods to parse and access
68     arbitrary RIFF files. The <i>Resource Interchange File Format</i>
69     provides universal data containers ordered in a tree-like structure
70     and can be compared to XML, but with the difference that RIFF is
71 schoenebeck 2651 binary encoded.<br>
72     <br>
73 schoenebeck 2650 The DLS file format, the gig file format and KORG's file format are all
74     based on RIFF on lowest level of their file format. And consequently all
75     those classes mentioned above are using the RIFF classes for that purpose.
78 schoenebeck 1378 @section License
80 schoenebeck 2650 Most parts of libgig and its tools are released under the terms of the
81     <a href="http://www.gnu.org/licenses/gpl-2.0.html">GNU General Public License (GPL)</a>.
82     This applies to the @ref gig classes, @ref Korg classes, @ref DLS classes,
83     @ref RIFF classes and all their tools and example programs. We may offer you a
84     commercial license for using libgig in commercial products. If you are
85     interested in a commercial license,
86     <a href="http://www.linuxsampler.org/developers.html">contact us!</a>
87 schoenebeck 1378
88 schoenebeck 2650 The @b AKAI classes and its tools / demo programs are released under the terms
89     of the <a href="https://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public License (LGPL)</a>.
90 schoenebeck 1378
91 schoenebeck 2650 If you have any questions regarding license aspects,
92     <a href="http://www.linuxsampler.org/developers.html">contact us!</a>
95 schoenebeck 1378 @section Examples
97 schoenebeck 2650 Beside the actual C++ library, there are the following example applications
98     which demonstrate how to use the library:
99 schoenebeck 1378
100 schoenebeck 2650 - <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/libgig/trunk/src/tools/gigdump.cpp?view=markup">@b gigdump: </a>
101     Prints out the content of a .gig file.
102     - <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/libgig/trunk/src/tools/gigextract.cpp?view=markup">@b gigextract: </a>
103     Extracts audio samples from a .gig file as .wav files.
104     - <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/libgig/trunk/src/tools/gigmerge.cpp?view=markup">@b gigmerge: </a>
105     Combines multiple .gig files to one .gig file.
106     - <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/libgig/trunk/src/tools/gig2mono.cpp?view=markup">@b gig2mono: </a>
107     Converts .gig files from stereo to mono.
108     - <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/libgig/trunk/src/tools/dlsdump.cpp?view=markup">@b dlsdump: </a>
109     Prints out the content of a DLS file.
110     - <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/libgig/trunk/src/tools/rifftree.cpp?view=markup">@b rifftree: </a>
111     Prints out the RIFF tree of an arbitrary RIFF container file.
112     - <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/libgig/trunk/src/tools/sf2dump.cpp?view=markup">@b sf2dump: </a>
113     Prints out the content of a .sf2 file.
114     - <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/libgig/trunk/src/tools/korgdump.cpp?view=markup">@b korgdump: </a>
115     Prints out the content of KORG sound files (.KSF, .KMP).
116     - <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/libgig/trunk/src/tools/korg2gig.cpp?view=markup">@b korg2gig: </a>
117     Converts KORG (.KSF, .KMP) sound files to GigaStudio (.gig) files.
118     - <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/libgig/trunk/src/tools/akaidump.cpp?view=markup">@b akaidump: </a>
119     Dump an AKAI media i.e. from a CDROM drive as disk image file to your HD.
120     - <a href="http://svn.linuxsampler.org/cgi-bin/viewvc.cgi/libgig/trunk/src/tools/akaiextract.cpp?view=markup">@b akaiextract: </a>
121     Extracts audio samples from an AKAI media or from an AKAI disk image file (as .wav files).
122 schoenebeck 1378
123 schoenebeck 2650 Currently libgig ist most prominently used by LinuxSampler and gigedit.
124 schoenebeck 1378
126     @section Portability
128     This library is developed and optimized for POSIX compliant operating
129 schoenebeck 2650 systems like Linux and Mac OS X, as well as for Windows. It is written as cross
130     platform C++ library, so libgig should also compile for other operation systems
131     as well. Due to this it works on all architectures (i.e. 32 bit x86, 64 bit x86,
132     PPC and many more). It works on
133     <a href="http://en.wikipedia.org/wiki/Endianness">little endian and big endian</a>
134     systems.
135 schoenebeck 1378
137 schoenebeck 2650 @section Bugs
139     Please report bugs on http://bugs.linuxsampler.org/ and/or subscribe to the
140     <a href="http://lists.sourceforge.net/lists/listinfo/linuxsampler-devel">LinuxSampler developers mailing list</a>.
142 schoenebeck 1378 @section Outro
144     For compilation instructions, requirements and further details please refer
145     to the README file et al.
147     That's all folks. Happy hacking!
149     -- Christian Schoenebeck <cuse@users.sourceforge.net>
151     @see http://www.linuxsampler.org
153     */

  ViewVC Help
Powered by ViewVC