1 |
|
Home |
2 |
|
==== |
3 |
|
You can always find the latest version of libgig at: |
4 |
|
http://stud.hs-heilbronn.de/~cschoene/projects/libgig/ |
5 |
|
|
6 |
Content |
Content |
7 |
======= |
======= |
8 |
libgig actually consists of three parts: |
libgig actually consists of three parts: |
25 |
rifftree: Tool that prints out the RIFF tree of an arbitrary RIFF |
rifftree: Tool that prints out the RIFF tree of an arbitrary RIFF |
26 |
file. |
file. |
27 |
|
|
28 |
|
Since version 3.0.0 libgig also provides write support, that is for |
29 |
|
creating modifying .gig, DLS and RIFF files. |
30 |
|
|
31 |
Requirements |
Requirements |
32 |
============ |
============ |
|
|
|
33 |
POSIX systems (e.g. Linux, OS X): |
POSIX systems (e.g. Linux, OS X): |
34 |
--------------------------------- |
--------------------------------- |
35 |
|
|
46 |
|
|
47 |
If you want to regenerate all autotools build files (that is configure, |
If you want to regenerate all autotools build files (that is configure, |
48 |
Makefile.in, etc.) then you need to have automake (>= 1.5) and autoconf |
Makefile.in, etc.) then you need to have automake (>= 1.5) and autoconf |
49 |
installed. |
installed. |
50 |
|
|
51 |
Non-POSIX systems (e.g. Windows): |
Windows: |
52 |
--------------------------------- |
-------- |
|
|
|
|
If you don't have a POSIX system, you have to set 'POSIX' to '0' in RIFF.h. |
|
|
Instead of using POSIX calls then standard C calls will be used for file |
|
|
access. This applies e.g. to Windows systems. I would appreciate if |
|
|
somebody sends me his MS Visual Studio / .NET, Borland C++ Builder or |
|
|
Apple XCode project file! This might help others to conveniently compile |
|
|
libgig on those platforms as well. |
|
53 |
|
|
54 |
Compiling |
The precompiled versions of libgig (and its tools) should be compatible |
55 |
========= |
with any Windows operating system of at least Win95 or younger. Notice |
56 |
|
that all example / demo applications coming with libgig are pure console |
57 |
|
applications, thus you won't see a GUI showing up! :) |
58 |
|
|
59 |
|
If you want to compile libgig and its tools by yourself, please also |
60 |
|
notice the requirements under "Compiling for Windows". |
61 |
|
|
62 |
|
Other Operating Systems: |
63 |
|
------------------------ |
64 |
|
|
65 |
|
libgig was written to compile for any operating system, using standard C |
66 |
|
library functions. However the latest versions of libgig lack a portable |
67 |
|
implementation of one tiny method called RIFF::File::ResizeFile(). So you |
68 |
|
would either have to add native OS API calls for that particular method, |
69 |
|
that is dependant to your OS, or you have to add a portable |
70 |
|
implementation. No matter which way you choose, please let us know! :) |
71 |
|
|
72 |
|
Compiling for Linux |
73 |
|
=================== |
74 |
You can either compile the sources and install the library directly on |
You can either compile the sources and install the library directly on |
75 |
your system or you can create Redhat or Debian packages. |
your system or you can create Redhat or Debian packages. |
76 |
|
|
118 |
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 |
119 |
"/usr/src/<rpmdir>/RPMS/<arch>" directory. |
"/usr/src/<rpmdir>/RPMS/<arch>" directory. |
120 |
|
|
121 |
|
Compiling for Windows |
122 |
|
===================== |
123 |
|
|
124 |
|
libgig and its tools can be compiled for Windows using Bloodshed Dev-C++, |
125 |
|
which is a free (GPL) C++ integrated development environment for Windows. |
126 |
|
It is also possible to use MSYS from MinGW, which allows you to use |
127 |
|
'./configure && make' like the linux builds. |
128 |
|
|
129 |
|
You can download Dev-C++ here: |
130 |
|
|
131 |
|
http://www.bloodshed.net/devcpp.html |
132 |
|
|
133 |
|
Make sure you install a version with Mingw integrated. |
134 |
|
|
135 |
|
a) Compiling libgig.dll |
136 |
|
|
137 |
|
Simply open the project file "win32/libgig.dev" either directly in Dev-C++ |
138 |
|
or by double clicking on the project file in the Windows explorer, then |
139 |
|
click on "Compile" in the Dev-C++ menu and that's it! After compilation |
140 |
|
finished, you can find the files "libgig.dll", "libgig.a" and |
141 |
|
"liblibgig.def" in the "win32" directory. |
142 |
|
|
143 |
|
b) Compiling the example tools "rifftree", "dlsdump" and "gigdump" |
144 |
|
|
145 |
|
You need to have libgig.dll compiled as described in a). Then you can |
146 |
|
compile the respective tool by simply opening the respective project |
147 |
|
(.dev) file and clicking on "Compile" from the Dev-C++ menu. After |
148 |
|
compilation you can find the respective .exe file in the "win32" |
149 |
|
directory. |
150 |
|
|
151 |
|
c) Compiling the example tool "gigextract" |
152 |
|
|
153 |
|
You need to have libgig.dll compiled as described in a). Also you need |
154 |
|
libsndfile (as DLL) which is used to create the .wav files. You can |
155 |
|
download libsndfile already precompiled as DLL here: |
156 |
|
|
157 |
|
http://www.mega-nerd.com/libsndfile/ |
158 |
|
|
159 |
|
Extract the .zip file i.e. to "C:\". The libsndfile .dll file should then |
160 |
|
be i.e. under "C:\libsndfile-1_0_17". Beside the .dll file, make sure |
161 |
|
libsndfile's .lib file exists in that directory as well. If the .lib file |
162 |
|
does not exist yet, you have to create it with: |
163 |
|
|
164 |
|
dlltool --input-def libsndfile-1.def --output-lib libsndfile-1.lib |
165 |
|
|
166 |
|
Then you have to ensure the settings of gigextract's Dev-C++ project file |
167 |
|
are pointing to the correct location of your local copy of libsndfile. For |
168 |
|
that click in the Dev-C++ menu on "Project" -> "Project Options". Then |
169 |
|
click on the tab "Parameter" and make sure the path to "libsndfile-1.lib" |
170 |
|
in the "Linker" list view is correct. Then click on the tab "Directories" |
171 |
|
and then on the tab "Include Directories" and make sure the path to |
172 |
|
libsndfile points to the correct location there as well. |
173 |
|
|
174 |
|
After that you should finally be able to compile "gigextract" by clicking |
175 |
|
on "Compile" in the Dev-C++ menu. After compilation succeeded, you can |
176 |
|
find the "gigextract.exe" file in the "win32" directory. |
177 |
|
|
178 |
|
Test Cases |
179 |
|
========== |
180 |
|
The libgig sources come with a tiny console application which allows to |
181 |
|
automatically test libgig's functions on your system. This test |
182 |
|
application is not compiled by default, you have to compile it explicitly |
183 |
|
with the following commands on the console (cppunit has to be installed): |
184 |
|
|
185 |
|
cd src/testcases |
186 |
|
make libgigtests |
187 |
|
|
188 |
|
and then run the test application from the same directory with: |
189 |
|
|
190 |
|
./libgigtests |
191 |
|
|
192 |
|
License |
193 |
|
======= |
194 |
|
libgig and its tools are released under the GNU General Public License. |
195 |
|
|
196 |
API Documentation |
API Documentation |
197 |
================= |
================= |
198 |
|
If you have Doxygen installed you can generate the API documentation by |
199 |
If you have Doxygen installed you can generate the API documentation by |
running 'make docs' in the sources' top level directory. The API |
200 |
running 'make docs' in the sources' top level directory. The API |
documentation will be generated in the 'doc' subdirectory. |
|
documentation will be generated in the 'doc' subdirectory. |
|
201 |
|
|
202 |
Patches |
Patches |
203 |
======= |
======= |
204 |
If you find bugs or have improvements, your patches are always welcome! |
If you have bug fixes or improvements, your patches are always welcome! |
205 |
Send them either directly to me or to the LinuxSampler developer's mailing |
Send them either directly to me or to the LinuxSampler developer's mailing |
206 |
list <linuxsampler-devel@lists.sourceforge.net>. |
list <linuxsampler-devel@lists.sourceforge.net>. |
207 |
|
|
208 |
|
Bugs |
209 |
|
==== |
210 |
|
Please use http://bugs.linuxsampler.org to check and report possible bugs. |
211 |
|
You might also try to run the "Test Cases" coming with libgig (see above), |
212 |
|
especially in case you are running on an odd system. |
213 |
|
|
214 |
Credits |
Credits |
215 |
======= |
======= |
216 |
The initial library was based on the reverse engineering effort of |
The initial library was based on the reverse engineering effort of |
217 |
Paul Kellett and Ruben van Royen. We owe current support for the quite new |
Paul Kellett and Ruben van Royen. We owe current support for the quite new |
218 |
Gigasampler v3 format to Andreas Persson. Please also have a look at the |
Gigasampler v3 format to Andreas Persson. Please also have a look at the |
219 |
ChangeLog for all those who contributed. Thanks for your great work! |
ChangeLog for all those who contributed. Thanks to all of you for your |
220 |
|
great work! |
221 |
|
|
222 |
Christian Schoenebeck <cuse@users.sourceforge.net> |
Christian Schoenebeck <cuse@users.sourceforge.net> |