/[svn]/libgig/trunk/README
ViewVC logotype

Contents of /libgig/trunk/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2543 - (show annotations) (download)
Sat May 10 02:06:58 2014 UTC (9 years, 10 months ago) by schoenebeck
File size: 9946 byte(s)
* Initial support for sample based instruments in KORG's file format (.KMP
  and .KSF files) -> Korg.h, Korg.cpp.
* Added new command line tool "korgdump" (and a man page for it).
* Added new command line tool "korg2gig" (and a man page for it), for
  converting KORG sounds to Giga format.
* riftree tool: Added more command line options for being able to also dump
  other kind of file formats similar but not equal to the RIFF format.
* gig.h/.cpp: Added new method File::GetGroup(String name) for retrieving
  group by name.
* RIFF.h/.cpp: Added support for loading RIFF-like files with a bit
  different layout than "real" RIFF files (used for KORG format support).
* RIFF.h/.cpp: Added new method Chunk::GetFile().
* RIFF.h/.cpp: Added new method Chunk::GetLayout().
* Bumped version (3.3.0.svn9).

1 Home
2 ====
3 You can always find the latest version of libgig at:
4 http://www.linuxsampler.org/libgig/
5
6 Content
7 =======
8 libgig actually consists of three parts:
9
10 - RIFF classes (RIFF.h, RIFF.cpp): Provides convenient methods to parse and
11 access arbitrary RIFF files.
12 - DLS classes (DLS.h, DLS.cpp): They're using the RIFF classes to parse
13 DLS (Downloadable Sounds) Level 1 and 2
14 files and provide abstract access to the
15 data.
16 - gig classes (gig.h, gig.cpp): These are based on the DLS classes and
17 provide the necessary extensions for
18 the Gigasampler file format.
19
20 Despite its name, libgig also provides support for other sampler file
21 formats as well today:
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 Beside the actual library there are following example applications:
30
31 gigdump: Demo app that prints out the content of a .gig file.
32 gigextract: Extracts samples from a .gig file.
33 gigmerge: Merges several .gig files to one .gig file.
34 gig2mono: Converts .gig files from stereo to mono.
35 dlsdump: Demo app that prints out the content of a DLS file.
36 korgdump: Prints out the content of the various KORG file types.
37 korg2gig: Convert KORG sound file to Gigasampler/GigaStudio format.
38 rifftree: Tool that prints out the RIFF tree of an arbitrary RIFF
39 file.
40
41 Since version 3.0.0 libgig also provides write support, that is for
42 creating modifying .gig, DLS and RIFF files.
43
44 Requirements
45 ============
46 POSIX systems (e.g. Linux, OS X):
47 ---------------------------------
48
49 You need at least to have libtool installed to be able to build the
50 library with "./configure && make".
51
52 Additionally you need to have either libaudiofile (>= 0.2.3) or
53 libsndfile (>= 1.0.2) installed which is mandatory to be able to compile
54 the 'gigextract' example application. But of course 'gigextract' is still
55 just an example application, so it would make sense to compile it only if
56 one of those libraries are available. That would remove that hard
57 dependency to those two libs. But that's not a priority for me now.
58 Note: for Windows systems only libsndfile is available.
59
60 If you want to regenerate all autotools build files (that is configure,
61 Makefile.in, etc.) then you need to have automake (>= 1.5) and autoconf
62 installed.
63
64 Windows:
65 --------
66
67 The precompiled versions of libgig (and its tools) should be compatible
68 with any Windows operating system of at least Win95 or younger. Notice
69 that all example / demo applications coming with libgig are pure console
70 applications, thus you won't see a GUI showing up! :)
71
72 If you want to compile libgig and its tools by yourself, please also
73 notice the requirements under "Compiling for Windows".
74
75 Other Operating Systems:
76 ------------------------
77
78 libgig was written to compile for any operating system, using standard C
79 library functions. However the latest versions of libgig lack a portable
80 implementation of one tiny method called RIFF::File::ResizeFile(). So you
81 would either have to add native OS API calls for that particular method,
82 that is dependant to your OS, or you have to add a portable
83 implementation. No matter which way you choose, please let us know! :)
84
85 Compiling for Linux
86 ===================
87 You can either compile the sources and install the library directly on
88 your system or you can create Redhat or Debian packages.
89
90 a) Compiling and installing directly
91
92 Call './configure && make' on the console to compile the library, all
93 tools and demo applications, documentation and install them with
94 'make install'. The latter has to be called as root.
95
96 If you are compiling from CVS you have to call 'make -f Makefile.cvs'
97 to generate all autotools build files before calling
98 './configure && make'.
99
100 You can use 'make distclean' and probably 'make -f Makefile.cvs clean'
101 to clean up everything again. The latter will also delete all automatic
102 generated autools build files.
103
104 b) Creating Debian packages
105
106 Use 'dpkg-buildpackage -rfakeroot -b' to compile and create the Debian
107 packages. This will generate 3 Debian packages:
108
109 libgig: Contains the shared library files.
110 libgig-dev: Contains the header files and documentation for building
111 applications using libgig.
112 gigtools: Contains the tools and demo applications.
113
114 You can use 'fakeroot debian/rules clean' to clean up everything again.
115
116 c) Creating Redhat packages
117
118 You need to have the rpmbuild tool installed and properly configured to
119 create RPM packages. To create the RPM packages do the following:
120
121 * Get .spec file generated by ./configure and edit it as appropriate.
122
123 * Copy the source tarball to "/usr/src/<rpmdir>/SOURCES" directory,
124 where <rpmdir> is dependent to the system you are using. For SuSE
125 <rmpdir> will be "packages", for Mandrake <rpmdir> is "RPM" and for
126 Redhat / Fedora <rpmdir> always equals "redhat".
127
128 * Build the rpm(s) by invoking 'rpmbuild -bb <specfile>' from the
129 command line.
130
131 On success, the resulting rpm(s) can usually be found under the proper
132 "/usr/src/<rpmdir>/RPMS/<arch>" directory.
133
134 Compiling for Windows
135 =====================
136
137 libgig and its tools can be compiled for Windows using Bloodshed Dev-C++,
138 which is a free (GPL) C++ integrated development environment for Windows.
139 It is also possible to use MSYS from MinGW, which allows you to use
140 './configure && make' like the linux builds.
141
142 You can download Dev-C++ here:
143
144 http://www.bloodshed.net/devcpp.html
145
146 Make sure you install a version with Mingw integrated.
147
148 a) Compiling libgig.dll
149
150 Simply open the project file "win32/libgig.dev" either directly in Dev-C++
151 or by double clicking on the project file in the Windows explorer, then
152 click on "Compile" in the Dev-C++ menu and that's it! After compilation
153 finished, you can find the files "libgig.dll", "libgig.a" and
154 "liblibgig.def" in the "win32" directory.
155
156 b) Compiling the example tools "rifftree", "dlsdump" and "gigdump"
157
158 You need to have libgig.dll compiled as described in a). Then you can
159 compile the respective tool by simply opening the respective project
160 (.dev) file and clicking on "Compile" from the Dev-C++ menu. After
161 compilation you can find the respective .exe file in the "win32"
162 directory.
163
164 c) Compiling the example tool "gigextract"
165
166 You need to have libgig.dll compiled as described in a). Also you need
167 libsndfile (as DLL) which is used to create the .wav files. You can
168 download libsndfile already precompiled as DLL here:
169
170 http://www.mega-nerd.com/libsndfile/
171
172 Extract the .zip file i.e. to "C:\". The libsndfile .dll file should then
173 be i.e. under "C:\libsndfile-1_0_17". Beside the .dll file, make sure
174 libsndfile's .lib file exists in that directory as well. If the .lib file
175 does not exist yet, you have to create it with:
176
177 dlltool --input-def libsndfile-1.def --output-lib libsndfile-1.lib
178
179 Then you have to ensure the settings of gigextract's Dev-C++ project file
180 are pointing to the correct location of your local copy of libsndfile. For
181 that click in the Dev-C++ menu on "Project" -> "Project Options". Then
182 click on the tab "Parameter" and make sure the path to "libsndfile-1.lib"
183 in the "Linker" list view is correct. Then click on the tab "Directories"
184 and then on the tab "Include Directories" and make sure the path to
185 libsndfile points to the correct location there as well.
186
187 After that you should finally be able to compile "gigextract" by clicking
188 on "Compile" in the Dev-C++ menu. After compilation succeeded, you can
189 find the "gigextract.exe" file in the "win32" directory.
190
191 Test Cases
192 ==========
193 The libgig sources come with a tiny console application which allows to
194 automatically test libgig's functions on your system. This test
195 application is not compiled by default, you have to compile it explicitly
196 with the following commands on the console (cppunit has to be installed):
197
198 cd src/testcases
199 make libgigtests
200
201 and then run the test application from the same directory with:
202
203 ./libgigtests
204
205 License
206 =======
207 libgig and its tools are released under the GNU General Public License.
208
209 API Documentation
210 =================
211 If you have Doxygen installed you can generate the API documentation by
212 running 'make docs' in the sources' top level directory. The API
213 documentation will be generated in the 'doc' subdirectory.
214
215 Patches
216 =======
217 If you have bug fixes or improvements, your patches are always welcome!
218 Send them either directly to me or to the LinuxSampler developer's mailing
219 list <linuxsampler-devel@lists.sourceforge.net>.
220
221 Bugs
222 ====
223 Please use http://bugs.linuxsampler.org to check and report possible bugs.
224 You might also try to run the "Test Cases" coming with libgig (see above),
225 especially in case you are running on an odd system.
226
227 Trademarks
228 ==========
229 Tascam, Gigasampler, GigaStudio, KORG, Trinity, Triton, OASYS, M3 and Kronos
230 are trademarks of their respective owners.
231
232 Credits
233 =======
234 The initial library (Gigasampler part) was based on the reverse engineering
235 effort of Paul Kellett and Ruben van Royen. We owe current support for the
236 Gigasampler v3 format to Andreas Persson. Please also have a look at the
237 ChangeLog for all those who contributed. Thanks to all of you for your great
238 work!
239
240 Christian Schoenebeck <cuse@users.sourceforge.net>

  ViewVC Help
Powered by ViewVC