5 |
|
|
6 |
Content |
Content |
7 |
======= |
======= |
8 |
libgig actually consists of three parts: |
libgig actually consists of three major parts: |
9 |
|
|
10 |
- RIFF classes (RIFF.h, RIFF.cpp): Provides convenient methods to parse and |
- RIFF classes (RIFF.h, RIFF.cpp): Provides convenient methods to parse and |
11 |
access arbitrary RIFF files. |
access arbitrary RIFF files. |
15 |
data. |
data. |
16 |
- gig classes (gig.h, gig.cpp): These are based on the DLS classes and |
- gig classes (gig.h, gig.cpp): These are based on the DLS classes and |
17 |
provide the necessary extensions for |
provide the necessary extensions for |
18 |
the Gigasampler file format. |
the Gigasampler/GigaStudio file format. |
19 |
|
|
20 |
|
Despite its name, libgig also provides (since version 4.0.0) support for |
21 |
|
other sampler file formats as well: |
22 |
|
|
23 |
|
- SoundFont classes (SF.h, SF.cpp): They provide support for the very popular |
24 |
|
SoundFont v1 and v2 format (.sf2). |
25 |
|
|
26 |
|
- KORG classes (Korg.h, Korg.cpp): Provides support for sample based sounds |
27 |
|
used on many KORG synthesizer keyboards. |
28 |
|
|
29 |
|
- Akai classes (Akai.h): Currently S1000, S01, S2000 and S3000 |
30 |
|
series are supported. |
31 |
|
|
32 |
|
Additionally libgig contains the following separate API: |
33 |
|
|
34 |
|
- Serialization classes (Serialization.h, Serialization.cpp): |
35 |
|
Framework to serialize and deserialize |
36 |
|
the runtime state of native C++ objects |
37 |
|
(for saving and restoring their states |
38 |
|
as abstract data). |
39 |
|
|
40 |
Beside the actual library there are following example applications: |
Beside the actual library there are following example applications: |
41 |
|
|
43 |
gigextract: Extracts samples from a .gig file. |
gigextract: Extracts samples from a .gig file. |
44 |
gigmerge: Merges several .gig files to one .gig file. |
gigmerge: Merges several .gig files to one .gig file. |
45 |
gig2mono: Converts .gig files from stereo to mono. |
gig2mono: Converts .gig files from stereo to mono. |
46 |
|
gig2stereo: Converts .gig files to true interleaved stereo sounds. |
47 |
dlsdump: Demo app that prints out the content of a DLS file. |
dlsdump: Demo app that prints out the content of a DLS file. |
48 |
|
korgdump: Prints out the content of the various KORG file types. |
49 |
|
korg2gig: Convert KORG sound file to Gigasampler/GigaStudio format. |
50 |
|
sf2dump: Prints out the content of a .sf2 file. |
51 |
|
sf2extract: Extracts audio samples from a .sf2 file. |
52 |
rifftree: Tool that prints out the RIFF tree of an arbitrary RIFF |
rifftree: Tool that prints out the RIFF tree of an arbitrary RIFF |
53 |
file. |
file. |
54 |
|
akaidump: Dump an AKAI media i.e. from a CDROM drive as disk image file |
55 |
|
to your hard disk drive. |
56 |
|
akaiextract: Extracts samples from an Akai disk image, either from a media |
57 |
|
(i.e. CDROM or Zip drive) for from a AKAI disk image file. |
58 |
|
|
59 |
Since version 3.0.0 libgig also provides write support, that is for |
Since version 3.0.0 libgig also provides write support, that is for |
60 |
creating modifying .gig, DLS and RIFF files. |
creating modifying .gig, DLS and RIFF files. |
61 |
|
|
62 |
Requirements |
Requirements |
63 |
============ |
============ |
64 |
POSIX systems (e.g. Linux, OS X): |
POSIX systems (e.g. Linux, macOS): |
65 |
--------------------------------- |
--------------------------------- |
66 |
|
|
67 |
You need at least to have libtool installed to be able to build the |
You need at least to have libtool installed to be able to build the |
149 |
On success, the resulting rpm(s) can usually be found under the proper |
On success, the resulting rpm(s) can usually be found under the proper |
150 |
"/usr/src/<rpmdir>/RPMS/<arch>" directory. |
"/usr/src/<rpmdir>/RPMS/<arch>" directory. |
151 |
|
|
152 |
Compiling for Windows |
Compiling for Windows using CMake |
153 |
===================== |
================================= |
154 |
|
The easiest way is to compile is to use vcpkg (https://github.com/Microsoft/vcpkg) |
155 |
|
to install libsndfile (required) and cppunit (optional). In the vcpkg install dir |
156 |
|
type: |
157 |
|
.\vcpkg.exe install libsndfile cppunit [--triplet x64-windows] |
158 |
|
|
159 |
|
This should install the libraries in vcpkg, add the triplet option if you wish to |
160 |
|
get the 64bit libraries. |
161 |
|
|
162 |
|
In an empty directory type: |
163 |
|
cmake <libgig source dir> -DCMAKE_TOOLCHAIN_FILE=<vcpkg dir>\scripts\buildsystems\vcpkg.cmake |
164 |
|
[-G"Visual Studio 15 2017 Win64"] |
165 |
|
|
166 |
|
Use the -G option to select the visual studio version and whether to compile for |
167 |
|
64bits. |
168 |
|
|
169 |
libgig and its tools can be compiled for Windows using Bloodshed Dev-C++, |
This will create libgig.sln file which you can open in visual studio or you can use |
170 |
|
the following command line to compile: |
171 |
|
|
172 |
|
cmake --build . --config <Release|Debug|MinRelSize|RelWithDebInfo> |
173 |
|
|
174 |
|
Compiling for Windows using Dev-C++ |
175 |
|
=================================== |
176 |
|
|
177 |
|
libgig and its tools can also be compiled on Windows using Bloodshed Dev-C++, |
178 |
which is a free (GPL) C++ integrated development environment for Windows. |
which is a free (GPL) C++ integrated development environment for Windows. |
179 |
It is also possible to use MSYS from MinGW, which allows you to use |
It is also possible to use MSYS from MinGW, which allows you to use |
180 |
'./configure && make' like the linux builds. |
'./configure && make' like the linux builds. |
244 |
|
|
245 |
License |
License |
246 |
======= |
======= |
247 |
libgig and its tools are released under the GNU General Public License. |
libgig and its tools are released under the GNU General Public License (GPL). |
248 |
|
|
249 |
|
libakai and its tools are released under the GNU Lesser General Public (LGPL). |
250 |
|
Due to its different license model the Akai support part is built as separate |
251 |
|
DLL (.so) file. |
252 |
|
|
253 |
API Documentation |
API Documentation |
254 |
================= |
================= |
268 |
You might also try to run the "Test Cases" coming with libgig (see above), |
You might also try to run the "Test Cases" coming with libgig (see above), |
269 |
especially in case you are running on an odd system. |
especially in case you are running on an odd system. |
270 |
|
|
271 |
|
Trademarks |
272 |
|
========== |
273 |
|
Tascam, Gigasampler, GigaStudio, KORG, Trinity, Triton, OASYS, M3, Kronos |
274 |
|
and Akai are trademarks of their respective owners. |
275 |
|
|
276 |
Credits |
Credits |
277 |
======= |
======= |
278 |
The initial library was based on the reverse engineering effort of |
The initial library (Gigasampler part) was based on the reverse engineering |
279 |
Paul Kellett and Ruben van Royen. We owe current support for the quite new |
effort of Paul Kellett and Ruben van Royen. We owe current support for the |
280 |
Gigasampler v3 format to Andreas Persson. Please also have a look at the |
Gigasampler v3/v4 format to Andreas Persson. Please also have a look at the |
281 |
ChangeLog for all those who contributed. Thanks to all of you for your |
ChangeLog for all those who contributed. |
282 |
great work! |
|
283 |
|
Akai support files are a ported version of Sébastien Métrot's libakai. The |
284 |
|
original libakai only supported Mac and Windows. This forked version of |
285 |
|
libakai now also supports Linux and other POSIX compliant operating systems |
286 |
|
as well and does not have a dependency to libngl as the original libakai had. |
287 |
|
|
288 |
|
The SoundFont 2 file format C++ classes were written by Grigor Iliev. |
289 |
|
|
290 |
|
Thanks to all of you for your great work! |
291 |
|
|
292 |
Christian Schoenebeck <cuse@users.sourceforge.net> |
Christian Schoenebeck <cuse@users.sourceforge.net> |