9 |
files and provide abstract access to the |
files and provide abstract access to the |
10 |
data. |
data. |
11 |
- 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 |
12 |
provide the neccessary extensions for |
provide the necessary extensions for |
13 |
the Gigasampler file format. |
the Gigasampler file format. |
14 |
|
|
15 |
|
Beside the actual library there are four example applications: |
16 |
|
|
17 |
|
gigdump: Demo app that prints out the content of a .gig file. |
18 |
|
gigextract: Extracts samples from a .gig file. |
19 |
|
dlsdump: Demo app that prints out the content of a DLS file. |
20 |
|
rifftree: Tool that prints out the RIFF tree of an arbitrary RIFF |
21 |
|
file. |
22 |
|
|
23 |
Requirements |
Requirements |
24 |
============ |
============ |
|
I simply used automake & co this time so you will need to have automake, |
|
|
autoconf and libtool installed. I used the following versions: |
|
25 |
|
|
26 |
automake 1.6.3 |
POSIX systems (e.g. Linux, OS X): |
27 |
autoconf 2.57 |
--------------------------------- |
28 |
|
|
29 |
If you want to compile the 'gigextract' application that comes with these |
You need at least to have libtool installed to be able to build the |
30 |
sources then you will additionally need to have libaudiofile installed (I |
library with "./configure && make". |
|
used version 0.2.3). |
|
31 |
|
|
32 |
Non-POSIX systems |
Additionally you need to have either libaudiofile (>= 0.2.3) or |
33 |
================= |
libsndfile (>= 1.0.2) installed which is mandatory to be able to compile |
34 |
|
the 'gigextract' example application. But of course 'gigextract' is still |
35 |
|
just an example application, so it would make sense to compile it only if |
36 |
|
one of those libraries are available. That would remove that hard |
37 |
|
dependency to those two libs. But that's not a priority for me now. |
38 |
|
Note: for Windows systems only libsndfile is available. |
39 |
|
|
40 |
|
If you want to regenerate all autotools build files (that is configure, |
41 |
|
Makefile.in, etc.) then you need to have automake (>= 1.5) and autoconf |
42 |
|
installed. |
43 |
|
|
44 |
|
Non-POSIX systems (e.g. Windows): |
45 |
|
--------------------------------- |
46 |
|
|
47 |
If you don't have a POSIX system, you have to set 'POSIX' to '0' in RIFF.h. |
If you don't have a POSIX system, you have to set 'POSIX' to '0' in RIFF.h. |
48 |
Instead of using POSIX calls then standard C calls will be used for file |
Instead of using POSIX calls then standard C calls will be used for file |
49 |
access. This applies e.g. to Windows systems. |
access. This applies e.g. to Windows systems. I would appreciate if |
50 |
|
somebody sends me his MS Visual Studio / .NET, Borland C++ Builder or |
51 |
|
Apple XCode project file! This might help others to conveniently compile |
52 |
|
libgig on those platforms as well. |
53 |
|
|
54 |
Compiling |
Compiling |
55 |
========= |
========= |
59 |
|
|
60 |
a) Compiling and installing directly |
a) Compiling and installing directly |
61 |
|
|
62 |
Use 'make -f Makefile.cvs && ./configure && make' to compile the library, |
Call './configure && make' on the console to compile the library, all |
63 |
all tools, demo applications, documentation and install them with |
tools and demo applications, documentation and install them with |
64 |
'make install'. You can use 'make distclean && make -f Makefile.cvs clean' |
'make install'. The latter has to be called as root. |
65 |
to clean up everything again. |
|
66 |
|
If you are compiling from CVS you have to call 'make -f Makefile.cvs' |
67 |
|
to generate all autotools build files before calling |
68 |
|
'./configure && make'. |
69 |
|
|
70 |
|
You can use 'make distclean' and probably 'make -f Makefile.cvs clean' |
71 |
|
to clean up everything again. The latter will also delete all automatic |
72 |
|
generated autools build files. |
73 |
|
|
74 |
b) Creating Debian packages |
b) Creating Debian packages |
75 |
|
|
76 |
Use 'make -f Makefile.cvs && dpkg-buildpackage -rfakeroot' to compile and |
Use 'dpkg-buildpackage -rfakeroot -b' to compile and create the Debian |
77 |
create the Debian packages. This will generate 3 Debian packages: |
packages. This will generate 3 Debian packages: |
78 |
|
|
79 |
libgig: Contains the shared library files. |
libgig: Contains the shared library files. |
80 |
libgig-dev: Contains the header files and documentation for building |
libgig-dev: Contains the header files and documentation for building |
81 |
applications using libgig. |
applications using libgig. |
82 |
gigtools: Contains the tools and demo applications. |
gigtools: Contains the tools and demo applications. |
83 |
|
|
84 |
You can use 'fakeroot debian/rules clean && make -f Makefile.cvs clean' |
You can use 'fakeroot debian/rules clean' to clean up everything again. |
|
to clean up everything again. |
|
85 |
|
|
86 |
c) Creating Redhat packages |
c) Creating Redhat packages |
87 |
|
|
88 |
TODO |
You need to have the rpmbuild tool installed and properly configured to |
89 |
|
create RPM packages. To create the RPM packages do the following: |
90 |
|
|
91 |
|
* Get .spec file generated by ./configure and edit it as appropriate. |
92 |
|
|
93 |
Tools |
* Copy the source tarball to "/usr/src/<rpmdir>/SOURCES" directory, |
94 |
===== |
where <rpmdir> is dependent to the system you are using. For SuSE |
95 |
|
<rmpdir> will be "packages", for Mandrake <rpmdir> is "RPM" and for |
96 |
|
Redhat / Fedora <rpmdir> always equals "redhat". |
97 |
|
|
98 |
Beside the actual library there are four applications: |
* Build the rpm(s) by invoking 'rpmbuild -bb <specfile>' from the |
99 |
|
command line. |
100 |
|
|
101 |
gigdump: Demo app that prints out the content of a .gig file. |
On success, the resulting rpm(s) can usually be found under the proper |
102 |
gigextract: Extracts samples from a .gig file. |
"/usr/src/<rpmdir>/RPMS/<arch>" directory. |
|
dlsdump: Demo app that prints out the content of a DLS file. |
|
|
rifftree: Tool that prints out the RIFF tree of an arbitrary RIFF |
|
|
file. |
|
103 |
|
|
104 |
API Documentation |
API Documentation |
105 |
================= |
================= |
106 |
|
|
107 |
If you have Doxygen installed you can generate the API documentation by |
If you have Doxygen installed you can generate the API documentation by |
108 |
just running 'doxygen' in the sources' top level directory. The API |
running 'make docs' in the sources' top level directory. The API |
109 |
documentation will be generated in the 'html' subdirectory. |
documentation will be generated in the 'doc' subdirectory. |
110 |
|
|
111 |
Patches |
Patches |
112 |
======= |
======= |
116 |
|
|
117 |
Credits |
Credits |
118 |
======= |
======= |
119 |
This library is based on the reverse engineering work of Paul Kellett and |
The initial library was based on the reverse engineering effort of |
120 |
Ruben van Royen. Thanks for your great work! |
Paul Kellett and Ruben van Royen. We owe current support for the quite new |
121 |
|
Gigasampler v3 format to Andreas Persson. Please also have a look at the |
122 |
|
ChangeLog for all those who contributed. Thanks for your great work! |
123 |
|
|
124 |
Christian Schoenebeck <cuse@users.sourceforge.net> |
Christian Schoenebeck <cuse@users.sourceforge.net> |