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

Contents of /libgig/trunk/NEWS

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3524 - (show annotations) (download)
Thu Jul 25 10:52:10 2019 UTC (4 years, 8 months ago) by schoenebeck
File size: 9839 byte(s)
* Preparations for new release (libgig 4.2.0).

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.

  ViewVC Help
Powered by ViewVC