1 |
Version 4.2.0 (25 Jul 2019) |
2 |
|
3 |
This is a maintenance release with important fixes; especially it fixes |
4 |
issues with gig files in GigaStudio v4 format, however this release also |
5 |
introduces some few new features and additions. Most notably it is now |
6 |
possible to write large gig files splitted over extension files (.gx01, |
7 |
.gx02, ...). Previously it was only possible to read gig files with |
8 |
extension files, but libgig only supported to save large gig files as one |
9 |
single, monolithic gig file. The problem with the latter was that gig |
10 |
files >= 2 GB could only be read by libgig, but could not be loaded with |
11 |
any version of GigaStudio. So this solves that legacy support issue. |
12 |
Apart from that, a bunch of convenience methods have been added. |
13 |
|
14 |
Version 4.1.0 (25 Nov 2017) |
15 |
|
16 |
This release adds support for files much larger than 2 GB for GigaStudio / |
17 |
Gigasampler (.gig), DLS, as well as for RIFF files in general. This file size |
18 |
limitation existed for a very long time due to the RIFF format's historical, |
19 |
internal 32 bit file offsets. To circumvent this file size limitation the |
20 |
concept of so called "extension files" was added in the past to the |
21 |
GigaStudio format, which means that the GigaStudio instrument editor splitted |
22 |
the respective overall instrument file into a set of files (.gig, .gx01, |
23 |
.gx02, ...), each being max. 2 GB in size, and all of them were expected to be |
24 |
located in the same directory for the sampler to load the entire large |
25 |
instrument successfully. libgig always supported only reading such gig |
26 |
extension files, however libgig never supported to create .gig files with |
27 |
extension files, nor did it support modifying existing ones. In this release |
28 |
it was necessary to finally get rid of this overall file size limitation in |
29 |
libgig. Now when that concept of extension files was introduced years ago, it |
30 |
made sense at that point, because there were still many systems out there |
31 |
which still had no support for large files (on either OS or file system |
32 |
level). However today even on low end mobile devices support for large files |
33 |
is already a broad standard. Accordingly instead of adding write support for |
34 |
extension files in libgig, the problem was addressed at its root by |
35 |
transparently using appropriate, automatic file offset sizes. So when writing |
36 |
.gig/DLS/RIFF files smaller than 2 GB there are still 32 bit file offsets |
37 |
being used by libgig. Accordingly such files are still backward compatible |
38 |
with older software. However if the overall file size to be written is 2 GB or |
39 |
larger, then 64 bit file offsets are automatically used by libgig instead. |
40 |
Note though that due to that circumstance such files >= 2 GB are not backward |
41 |
compatible with older versions of libgig, nor could they be loaded with the |
42 |
original GigaStudio software. |
43 |
|
44 |
Another major new feature in this libgig release is the entirely new |
45 |
serialization API (Serialization.h) which provides a powerful and easy way |
46 |
to serialize and deserialize an arbitrary set of native C++ objects into an |
47 |
abstract data stream. Which means you can simply save the entire runtime state |
48 |
of an application to a file or send it as data over "wire" (i.e. over network |
49 |
or to another process) and restore that runtime state from that data there at |
50 |
any time. In contrast to other C++ serialization frameworks out there, this |
51 |
framework provides two major benefits: |
52 |
|
53 |
1. This serialization framework is designed to be very robust regarding |
54 |
potential versioning changes of the native C++ classes being |
55 |
(de)serialized. So even if the C++ classes have seen massive software |
56 |
changes between the point where they were serialized and the point where |
57 |
they are to be deserialized; for example if class member variables of |
58 |
serialized C++ objects were renamed in meantime, or if variable offsets, or |
59 |
variables' data types had been changed, then the deserialization algorithm |
60 |
can still cope with such common software changes automatically in many |
61 |
cases, that is as long as the deserialization algorithm can "guess" what |
62 |
the changes were exactly. If the serialization framework is unable to |
63 |
automatically detect the precise software changes, then it will abort the |
64 |
deserialization task with an exception and an error message stating that |
65 |
the software versions are incompatible. |
66 |
|
67 |
2. This serialization framework supports "partial" deserialization. That |
68 |
means it not only allows to restore an entire runtime state, but it also |
69 |
allows to only restore an arbitrary desired subset of information |
70 |
from the previously serialized data stream, while leaving all other data |
71 |
of the running C++ objects untouched. The serialization framework also |
72 |
incorporates a reflection API which allows applications to implement |
73 |
convenient editors on top of such serialized data, i.e. allowing end users |
74 |
to pick or alter specific information within the serialized data. |
75 |
|
76 |
The new Serialization framework is already embedded into the gig classes of |
77 |
libgig, and it is used as basis for the new powerful macro features in the |
78 |
gigedit instrument editor application. Refer to the release notes of |
79 |
gigedit 1.1.0 for more information about those new macro features in gigedit. |
80 |
|
81 |
Version 4.0.0 (14 Jul 2015) |
82 |
|
83 |
This major release of libgig adds support for other file formats: |
84 |
SoundFont 2 (.sf2), KORG multi sample instruments (.KSF, .KMP) and AKAI |
85 |
format sounds. The AKAI classes are a fork of S�bastien M�trot's libakai and |
86 |
since it is released under a different license (LGPL) than libgig is (GPL), |
87 |
the AKAI classes are built as separate DLL file. All other classes of those |
88 |
new file formats are built and bundled with the existing libgig DLL. Thanks |
89 |
to Grigor Iliev for his work on the SoundFont 2 classes! Please note that |
90 |
there is currently no support for KORG's .PCG file format yet. That's because |
91 |
this file format changes a lot and is not only dependent to the precise KORG |
92 |
keyboard model, but also to the precise OS version on the same model. And |
93 |
since basic conversion can also be done by just accessing the .KSF and .KMP |
94 |
files (sample data, loop informations), the current classes should be |
95 |
sufficient for many tasks. Adding support for KORG's .PCG files is not |
96 |
planned at the moment. |
97 |
|
98 |
Various new command line tools have been added as well to dump, extract and |
99 |
convert between all those file formats now. Each one of it has a man page, |
100 |
so please refer to the respective man page of the individual command line |
101 |
tool for details. |
102 |
|
103 |
The GigaStudio/Gigasampler classes received a load of fixes during the last |
104 |
six years. And support for features introduced with the last official |
105 |
GigaStudio 4 software (RIP) were added, for instance support for so called |
106 |
"iMIDI Rules". Those rules allow i.e. to trigger notes by MIDI CC and to |
107 |
define a sample set for legato playing style. In the meantime it seems as if |
108 |
the GigaStudio software has seen its last version with GigaStudio 4, because |
109 |
Tascam discontinued this product and the intellectual property of GigaStudio |
110 |
had been sold several times between companies. It is currently not possible |
111 |
to buy a new copy of GigaStudio anymore and we personally don't expect that |
112 |
this situation will ever change. |
113 |
|
114 |
Does this also mean the end of new features for libgig? Not really! Actually |
115 |
we already started to add new features to the GigaStudio/Gigasampler format |
116 |
which never existed with the GigaStudio/Gigasampler software: The most |
117 |
noteworthy new feature added by us is support for real-time instrument |
118 |
scripts. These are little "programs" which you can bundle with your .gig |
119 |
sounds to add a custom behavior to your sounds when playing them with i.e. |
120 |
LinuxSampler. Find out more about this new major feature on: |
121 |
|
122 |
http://doc.linuxsampler.org/Instrument_Scripts/ |
123 |
|
124 |
There are also some more minor extensions to the .gig format, for example |
125 |
support for far more MIDI CC's than originally allowed by the GigaStudio |
126 |
software. Obviously all those custom extensions will not work with any |
127 |
version of the official GigaStudio software, those new features will only |
128 |
work with a recent version of LinuxSampler and gigedit at the moment. |
129 |
|
130 |
Besides those major changes, a load of convenient methods have been added to |
131 |
the existing libgig classes to reduce the overall effort working with all |
132 |
those file formats with software applications based on libgig. |
133 |
|
134 |
Version 3.3.0 (30 Jul 2009) |
135 |
|
136 |
Partial support for MIDI rules, the rest are just bug fixes. |
137 |
|
138 |
Version 3.2.1 (5 Dec 2007) |
139 |
|
140 |
Just some minor performance optimizations. |
141 |
|
142 |
Version 3.2.0 (14 Oct 2007) |
143 |
|
144 |
This release once again comes with a huge bunch of fixes regarding |
145 |
Gigasampler write support. Instrument files created from scratch with |
146 |
libgig can finally be loaded into the Gigasampler application as well. |
147 |
|
148 |
libgig's home has moved! From now on you can find it on: |
149 |
http://www.linuxsampler.org/libgig/ |
150 |
Please update your links and bookmarks! |
151 |
|
152 |
Version 3.1.1 (24 Mar 2007) |
153 |
|
154 |
This is a bugfix release, fixing one important bug regarding gig v3 |
155 |
support (custom split points) and a lot of bugs regarding .gig write |
156 |
support. And this is the first official release for the Windows platform. |
157 |
|
158 |
Version 3.1.0 (24 Nov 2006) |
159 |
|
160 |
libgig's home has moved (slightly) from |
161 |
http://stud.fh-heilbronn.de/~cschoene/projects/libgig/ to |
162 |
http://stud.hs-heilbronn.de/~cschoene/projects/libgig/, please update your |
163 |
links and bookmarks! This is due to the recent renaming of the University |
164 |
of Heilbronn, which kindly hosts this and other projects. |
165 |
|
166 |
Version 3.0.0 (28 Apr 2006) |
167 |
|
168 |
This is the first release which allows to create new and modify existing |
169 |
.gig files. Beside that it also includes another bunch of bug fixes and |
170 |
Gigasampler v3 support improvements. |