/[svn]/libgig/trunk/doc/mainpage.dox
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2652 - (show annotations) (download)
Thu Jun 19 11:04:29 2014 UTC (4 years, 5 months ago) by schoenebeck
File size: 8476 byte(s)
- API docs: Updated main introduction page.

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

  ViewVC Help
Powered by ViewVC