1 |
Home |
Home |
2 |
==== |
==== |
3 |
You can always find the latest version of libgig at: |
You can always find the latest version of libgig at: |
4 |
http://www.linuxsampler.org/libgig/ |
https://www.linuxsampler.org/libgig/ |
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 |
Despite its name, libgig also provides (since version 4.0.0) support for |
21 |
other sampler file formats as well: |
other sampler file formats as well: |
29 |
- Akai classes (Akai.h): Currently S1000, S01, S2000 and S3000 |
- Akai classes (Akai.h): Currently S1000, S01, S2000 and S3000 |
30 |
series are supported. |
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 |
|
|
42 |
gigdump: Demo app that prints out the content of a .gig file. |
gigdump: Demo app that prints out the content of 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. |
gig2stereo: Converts .gig files to true interleaved stereo sounds. |
47 |
|
wav2gig: Creates a new .gig file from a set of .wav files. |
48 |
dlsdump: Demo app that prints out the content of a DLS file. |
dlsdump: Demo app that prints out the content of a DLS file. |
49 |
korgdump: Prints out the content of the various KORG file types. |
korgdump: Prints out the content of the various KORG file types. |
50 |
korg2gig: Convert KORG sound file to Gigasampler/GigaStudio format. |
korg2gig: Convert KORG sound file to Gigasampler/GigaStudio format. |
62 |
|
|
63 |
Requirements |
Requirements |
64 |
============ |
============ |
65 |
POSIX systems (e.g. Linux, OS X): |
|
66 |
|
All systems |
67 |
|
----------- |
68 |
|
|
69 |
|
Since libgig 4.3.0 you need at least a C++11 compliant compiler. |
70 |
|
|
71 |
|
POSIX systems (e.g. Linux, macOS): |
72 |
--------------------------------- |
--------------------------------- |
73 |
|
|
74 |
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 |
101 |
------------------------ |
------------------------ |
102 |
|
|
103 |
libgig was written to compile for any operating system, using standard C |
libgig was written to compile for any operating system, using standard C |
104 |
library functions. However the latest versions of libgig lack a portable |
library functions. However there are some OS dependent requirements: |
105 |
implementation of one tiny method called RIFF::File::ResizeFile(). So you |
|
106 |
would either have to add native OS API calls for that particular method, |
* Since libgig 3.0.0 an OS dependent implementation for a tiny method called |
107 |
that is dependant to your OS, or you have to add a portable |
RIFF::File::ResizeFile() is required. So you would either have to add |
108 |
implementation. No matter which way you choose, please let us know! :) |
native OS API calls for that particular method, that is dependant to your |
109 |
|
OS, or you have to add a portable implementation. No matter which way you |
110 |
|
choose, please let us know! :) |
111 |
|
|
112 |
|
* Since libgig 4.3.0 presence of some UUID generating function is required to |
113 |
|
be provided by the underlying system. This was an optional feature in |
114 |
|
previous versions of libgig for many years, its absence only meant that you |
115 |
|
were unable to load gig files created/modified by libgig to be accepted by |
116 |
|
Tascam's original GigaStudio studio software, did not mean any restriction |
117 |
|
for being used with LinuxSampler though. This has changed in the meantime, |
118 |
|
so this is now a hard build requirement, as you would potentially encounter |
119 |
|
misbehaviours now even if you stay entirely in the Linux eco system if UUIDs |
120 |
|
were missing in gig files. |
121 |
|
|
122 |
Compiling for Linux |
Compiling for Linux |
123 |
=================== |
=================== |
168 |
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 |
169 |
"/usr/src/<rpmdir>/RPMS/<arch>" directory. |
"/usr/src/<rpmdir>/RPMS/<arch>" directory. |
170 |
|
|
171 |
Compiling for Windows |
Compiling for Windows using CMake |
172 |
===================== |
================================= |
173 |
|
The easiest way is to compile is to use vcpkg (https://github.com/Microsoft/vcpkg) |
174 |
|
to install libsndfile (required) and cppunit (optional). In the vcpkg install dir |
175 |
|
type: |
176 |
|
.\vcpkg.exe install libsndfile cppunit [--triplet x64-windows] |
177 |
|
|
178 |
|
This should install the libraries in vcpkg, add the triplet option if you wish to |
179 |
|
get the 64bit libraries. |
180 |
|
|
181 |
|
In an empty directory type: |
182 |
|
cmake <libgig source dir> -DCMAKE_TOOLCHAIN_FILE=<vcpkg dir>\scripts\buildsystems\vcpkg.cmake |
183 |
|
[-G"Visual Studio 15 2017 Win64"] |
184 |
|
|
185 |
|
Use the -G option to select the visual studio version and whether to compile for |
186 |
|
64bits. |
187 |
|
|
188 |
|
This will create libgig.sln file which you can open in visual studio or you can use |
189 |
|
the following command line to compile: |
190 |
|
|
191 |
|
cmake --build . --config <Release|Debug|MinRelSize|RelWithDebInfo> |
192 |
|
|
193 |
|
Compiling for Windows using Dev-C++ |
194 |
|
=================================== |
195 |
|
|
196 |
libgig and its tools can be compiled for Windows using Bloodshed Dev-C++, |
libgig and its tools can also be compiled on Windows using Bloodshed Dev-C++, |
197 |
which is a free (GPL) C++ integrated development environment for Windows. |
which is a free (GPL) C++ integrated development environment for Windows. |
198 |
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 |
199 |
'./configure && make' like the linux builds. |
'./configure && make' like the linux builds. |