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

Diff of /libgig/trunk/README

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2785 by schoenebeck, Tue Jul 14 13:19:11 2015 UTC revision 4075 by schoenebeck, Fri Jan 26 14:45:26 2024 UTC
# Line 1  Line 1 
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.
# Line 15  Content Line 15  Content
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:
# Line 29  Content Line 29  Content
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.
# Line 36  Content Line 44  Content
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.
# Line 53  Content Line 62  Content
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
# Line 86  Requirements Line 101  Requirements
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  ===================  ===================
# Line 141  Compiling for Linux Line 168  Compiling for Linux
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.

Legend:
Removed from v.2785  
changed lines
  Added in v.4075

  ViewVC Help
Powered by ViewVC