ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2649 by schoenebeck, Fri Oct 5 12:31:00 2007 UTC revision 2650 by schoenebeck, Wed Jun 18 20:21:25 2014 UTC
# Line 5  Line 5 
6  @section Intro  @section Intro
8  libgig is a C++ library for loading, modifying existing and creating new  libgig is a C++ library for accessing audio-sample based instrument files,
9  Gigasampler files (of both the old version 2 and the latest version 3 of  as they are shipped for various software samplers and hardware sampler devices.
10  the Gigasampler format) and DLS (Downloadable Sounds) Level 1 & 2 files.  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  The library actually consists of three parts:  following major parts:
14    - 1. @ref RIFF classes: Provide convenient methods to parse and access    - @b 1. @ref gig classes: These provide convenient access to
15       arbitrary RIFF files. The <i>Resource Interchange File Format</i>      @b Gigasampler / @b GigaStudio files (for all known format version, that is
16       provides universal data containers ordered in a tree-like structure      from Gigasampler v1 to GigaStudio v4), allowing to load, modify and save
17       and can be compared to XML, but with the difference that RIFF is      existing .gig files, as well as creating new .gig files from scratch.
18       binary encoded.  
19        Since the gig file format was originally designed based on the DLS Level 2
20    - 2. @ref DLS classes: Provide convenient methods to parse and access      format, the gig classes in this library are derived from the DLS classes of
21       DLS (<i>Downloadable Sounds</i>) Level 1 and 2 files. These classes      this library, where the gig classes provide the necessary extensions for the
22       use the RIFF classes to access such files, since the DLS format      Gigasampler file format.
23       uses RIFF as its layer beneath to store and structure its data.  
24        Besides the fact that libgig supports all aspects of the original
25    - 3. @ref gig classes: These are based on the DLS classes and provide the      Gigasampler / GigaStudio format, it now also provides some own extensions of
26       necessary extensions for the Gigasampler file format v2 and v3, since      that original format. Most notably libgig provides an extension to save
27       the Gigasampler format is in fact based on the DLS Level 2 format, with      real-time instrument scripts with .gig files. Those custom extensions are
28       quite some radical modifications though.      however currently only supported by the graphical instrument editor
29        application @b gigedit and by @b LinuxSampler, they will obviously not work
30  So one can also use this library to access all kinds of RIFF files and DLS      with the original GigaStudio software.
31  files, but the main focus (as one can obviously derive from the library name)  
32  is currently the Gigasampler format.    - @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.
37      - @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        sampler series <i>S1000</i>, <i>S01</i>, <i>S2000</i> and <i>S3000</i>.
41        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        and Windows).
49        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        binary encoded.
73        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  @section License  @section License
80  libgig and its tools are released under the GNU General Public License  Most parts of libgig and its tools are released under the terms of the
81  (GPL).  <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>
88    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>.
91    If you have any questions regarding license aspects,
92    <a href="http://www.linuxsampler.org/developers.html">contact us!</a>
95  @section Examples  @section Examples
97  Beside the actual library there are four example applications which  Beside the actual C++ library, there are the following example applications
98  demonstrate how to use the library:  which demonstrate how to use the library:
100      - <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).
123    - @e gigdump: Demo app that prints out the content of a .gig file.  Currently libgig ist most prominently used by LinuxSampler and gigedit.
   - @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  
126  @section Portability  @section Portability
128  This library is developed and optimized for POSIX compliant operating  This library is developed and optimized for POSIX compliant operating
129  systems like Linux and OSX and since release 3.1.1 for Windows as well.  systems like Linux and Mac OS X, as well as for Windows. It is written as cross
130  libgig was developed to compile on any operating system, though since  platform C++ library, so libgig should also compile for other operation systems
131  release 3.0.0 libgig uses one tiny operating system dependant method to be  as well. Due to this it works on all architectures (i.e. 32 bit x86, 64 bit x86,
132  able to resize files. Should be a 5 minute job to implement this method for  PPC and many more). It works on
133  other operating systems as well though.  <a href="http://en.wikipedia.org/wiki/Endianness">little endian and big endian</a>
134    systems.
137    @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  @section Outro  @section Outro

Removed from v.2649  
changed lines
  Added in v.2650

  ViewVC Help
Powered by ViewVC