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

Annotation of /libgig/trunk/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3978 - (hide annotations) (download)
Mon Jul 19 14:35:37 2021 UTC (3 months ago) by schoenebeck
File size: 47158 byte(s)
* DLS: Fixed iterator invalidation (i.e. crash) caused by adding /
  removing instruments (only triggered if now deprecated
  File::GetFirstInstrument() / File::GetNextInstrument() methods were still
  used).

1 schoenebeck 3900 Version SVN trunk (?)
2    
3 schoenebeck 3903 * src/gig.cpp, src/gig.h:
4     - Region::DeleteDimensionZone(): Fix clang sanatizer warning.
5 schoenebeck 3904 - Region::SplitDimensionZone(): Fix clang sanatizer warning.
6 schoenebeck 3913 - Sample: Fix unnecessary RAM consumption in case of 24 bit samples
7     (InternalDecompressionBuffer is no longer needed for 24 bit samples since
8     SVN r902 / libgig release 3.1.0).
9 schoenebeck 3924 - Use GetSubChunkAt() instead of GetFirstSubChunk() / GetNextSubChunk() in
10     entire gig.cpp file.
11     - Use GetSubListAt() instead of GetFirstSubList() / GetNextSubList() in
12     entire gig.cpp file.
13 schoenebeck 3926 - Added method Instrument::GetRegionAt().
14     - Marked methods Instrument::GetFirstRegion() and
15     Instrument::GetNextRegion() as deprecated.
16 schoenebeck 3927 - Use GetRegionAt() instead of GetFirstRegion() / GetNextRegion() in entire
17     gig.cpp file.
18 schoenebeck 3928 - Changed signature of method File::GetSample(uint) to
19     File::GetSample(size_t,progress_t*).
20     - Marked methods File::GetFirstSample() and File::GetNextSample() as
21     deprecated.
22 schoenebeck 3929 - Use File::GetSample() instead of File::GetFirstSample() /
23     File::GetNextSample() in entire gig.cpp file.
24 schoenebeck 3933 - Added method Group::GetSample().
25     - Marked methods Group::GetFirstSample() and Group::GetNextSample() as
26     deprecated.
27 schoenebeck 3934 - Use Group::GetSample() instead of Group::GetFirstSample() /
28     Group::GetNextSample() in entire gig.cpp file.
29 schoenebeck 3935 - Changed signature of method File::GetGroup(uint) to
30     File::GetGroup(size_t).
31 schoenebeck 3936 - Fixed File::GetGroup(size_t) to be reentrant-safe.
32 schoenebeck 3937 - Marked methods GetFirstGroup() and GetNextGroup() as deprecated.
33 schoenebeck 3938 - Fixed GetGroup(String) to be reentrant-safe.
34 schoenebeck 3939 - Use GetGroup() instead of GetFirstGroup() / GetNextGroup() in entire
35     gig.cpp file.
36 schoenebeck 3942 - Changed signature of method File::GetInstrument(uint,progress_t*) to
37     File::GetInstrument(size_t,progress_t*).
38 schoenebeck 3943 - Fixed File::GetInstrument(size_t,progress_t*) to be reentrant-safe.
39 schoenebeck 3944 - Marked methods File::GetFirstInstrument() and File::GetNextInstrument()
40     as deprecated.
41 schoenebeck 3945 - Use File::GetInstrument() instead of File::GetFirstInstrument() /
42     File::GetNextInstrument() in entire gig.cpp file.
43 schoenebeck 3948 - Optimized method ScriptGroup::GetScript() to have constant time
44     efficiency.
45 schoenebeck 3949 - Changed signature of method File::GetScriptGroup(uint) to
46     File::GetScriptGroup(size_t).
47 schoenebeck 3950 - Optimized method File::GetScriptGroup(size_t) to have constant time
48     efficiency.
49 schoenebeck 3951 - Changed signature of method ScriptGroup::GetScript(uint) to
50     ScriptGroup::GetScript(size_t).
51 schoenebeck 3952 - Changed signature of method Instrument::GetScriptOfSlot(uint) to
52     Instrument::GetScriptOfSlot(size_t).
53 schoenebeck 3953 - Changed signature of method Instrument::SwapScriptSlots(uint,uint) to
54     Instrument::SwapScriptSlots(size_t,size_t).
55 schoenebeck 3954 - Changed signature of method Instrument::RemoveScriptSlot(uint) to
56     Instrument::RemoveScriptSlot(size_t).
57 schoenebeck 3955 - Changed signature of method Instrument::ScriptSlotCount() to return
58     size_t instead of uint.
59 schoenebeck 3956 - Changed signature of method Instrument::IsScriptSlotBypassed(uint) to
60     Instrument::IsScriptSlotBypassed(size_t).
61 schoenebeck 3957 - Changed signature of method Instrument::SetScriptSlotBypassed(uint,bool)
62     to Instrument::SetScriptSlotBypassed(size_t,bool).
63 schoenebeck 3958 - Changed signature of method
64     Instrument::IsScriptPatchVariableSet(int,String) to
65     Instrument::IsScriptPatchVariableSet(size_t,String).
66 schoenebeck 3959 - Changed signature of method Instrument::GetScriptPatchVariables(int) to
67     Instrument::GetScriptPatchVariables(size_t).
68 schoenebeck 3960 - Changed signature of method
69     Instrument::GetScriptPatchVariable(int,String) to
70     Instrument::GetScriptPatchVariable(size_t,String).
71 schoenebeck 3961 - Changed signature of method
72     Instrument::SetScriptPatchVariable(int,String,String) to
73     Instrument::SetScriptPatchVariable(size_t,String,String).
74 schoenebeck 3962 - Changed signature of method
75     Instrument::UnsetScriptPatchVariable(int,String) to
76     Instrument::UnsetScriptPatchVariable(ssize_t,String).
77 schoenebeck 3974 - Fixed iterator invalidation (i.e. crash) caused by adding / removing
78     samples (only triggered if now deprecated File::GetFirstSample() /
79     File::GetNextSample() methods were still used).
80 schoenebeck 3975 - Fixed Sample::Write() method not having updated sample's CRC (correctly)
81     if sample was previously resized.
82 schoenebeck 3977 - Fixed iterator invalidation (i.e. crash) caused by adding / removing /
83     moving regions (only triggered if now deprecated File::GetFirstRegion() /
84     File::GetNextRegion() methods were still used).
85 schoenebeck 3903
86 schoenebeck 3900 * src/SF.cpp, src/SF.h:
87     - File::DeleteInstrument(): Fix clang sanatizer warning.
88    
89 schoenebeck 3922 * src/DLS.cpp, src/DLS.h:
90     - Use GetSubChunkAt() instead of GetFirstSubChunk() / GetNextSubChunk() in
91     entire DLS.cpp file.
92     - Use GetSubListAt() instead of GetFirstSubList() / GetNextSubList() in
93     entire DLS.cpp file.
94 schoenebeck 3926 - Added method Instrument::GetRegionAt().
95     - Marked methods Instrument::GetFirstRegion() and
96     Instrument::GetNextRegion() as deprecated.
97 schoenebeck 3927 - Use GetRegionAt() instead of GetFirstRegion() / GetNextRegion() in entire
98     DLS.cpp file.
99 schoenebeck 3928 - Added method File::GetSample().
100     - Marked methods File::GetFirstSample() and File::GetNextSample() as
101     deprecated.
102 schoenebeck 3929 - Use File::GetSample() instead of File::GetFirstSample() /
103     File::GetNextSample() in entire DLS.cpp file.
104 schoenebeck 3940 - Added method Articulator::GetArticulation().
105     - Marked methods Articulator::GetFirstArticulation() and
106     Articulator::GetNextArticulation() as deprecated.
107 schoenebeck 3941 - Added method File::GetInstrument().
108     - Marked methods File::GetFirstInstrument() and File::GetNextInstrument()
109     as deprecated.
110 schoenebeck 3963 - Added method Instrument::CountRegions().
111 schoenebeck 3974 - Fixed iterator invalidation (i.e. crash) caused by adding / removing
112     samples (only triggered if now deprecated File::GetFirstSample() /
113     File::GetNextSample() methods were still used).
114 schoenebeck 3976 - Fixed iterator invalidation (i.e. crash) caused by adding / removing /
115     moving regions (only triggered if now deprecated File::GetFirstRegion() /
116     File::GetNextRegion() methods were still used).
117 schoenebeck 3978 - Fixed iterator invalidation (i.e. crash) caused by adding / removing
118     instruments (only triggered if now deprecated File::GetFirstInstrument() /
119     File::GetNextInstrument() methods were still used).
120 schoenebeck 3922
121 schoenebeck 3901 * src/RIFF.cpp, src/RIFF.h:
122     - Chunk::LoadChunkData(): Fix clang sanatizer warning.
123 schoenebeck 3902 - List::LoadSubChunks(): Fix potential garbage data access if reading a
124     RIFF chunk ID failed.
125 schoenebeck 3915 - Added methods File::IsIOPerThread() and File::SetIOPerThread(bool); the
126     latter allows to automatically use a separate file I/O stream state for
127     each thread.
128 schoenebeck 3920 - Added method List::GetSubChunkAt().
129     - Added method List::GetSubListAt().
130     - Marked methods List::GetFirstSubChunk(), List::GetNextSubChunk(),
131     List::GetFirstSubList() and List::GetNextSubList() as deprecated.
132 schoenebeck 3921 - Use GetSubListAt() instead of GetFirstSubList() / GetNextSubList() in
133     entire RIFF.cpp file.
134 schoenebeck 3901
135 schoenebeck 3878 Version 4.3.0 (9 May 2021)
136 schoenebeck 3623
137     * general changes:
138     - Require at least a C++11 compliant compiler.
139 schoenebeck 3723 - Require some UUID generating function by underlying system.
140 schoenebeck 3623
141     * src/gig.cpp, src/gig.h:
142     - GIG FORMAT EXTENSION: Added attributes DimensionRegion::LFO1WaveForm,
143     DimensionRegion::LFO2WaveForm and DimensionRegion::LFO3WaveForm, which
144     allow to define override LFOs' wave form (e.g. saw or square instead of
145     the default wave form which was always sine in the original
146     Gigasampler/GigaStudio software).
147     - GIG FORMAT EXTENSION: Added attributes DimensionRegion::LFO1Phase,
148     DimensionRegion::LFO2Phase and DimensionRegion::LFO3Phase, which allow to
149     move the start point horizontally of the LFOs' waves (0�� ... 360��).
150     - GIG FORMAT EXTENSION: Added attribute DimensionRegion::LFO3FlipPhase
151     (the original Gigasampler/GigaStudio software only had that flip phase
152     option for LFO1 and LFO2).
153 schoenebeck 3710 - Added methods DimensionRegion::UsesAnyGigFormatExtension(),
154     Region::UsesAnyGigFormatExtension(),
155     Instrument::UsesAnyGigFormatExtension() and
156     File::UsesAnyGigFormatExtension() (however only as private methods yet,
157     see comments on methods why).
158 schoenebeck 3645 - GIG FORMAT EXTENSION: added LinuxSampler specific filter type
159     implementations to enum vcf_type_t: vcf_type_lowpass_1p,
160     vcf_type_lowpass_2p, vcf_type_lowpass_4p, vcf_type_lowpass_6p,
161     vcf_type_highpass_1p, vcf_type_highpass_2p, vcf_type_highpass_4p,
162     vcf_type_highpass_6p, vcf_type_bandpass_2p, vcf_type_bandreject_2p.
163 schoenebeck 3656 - Compatibility fix: GigaStudio always expects 128 '3gnm' RIFF chunks
164     (patch by Ivan Maguidhir).
165 schoenebeck 3657 - Compatibility fix: GigaStudio 3 expects '3dnm' and '3ddp' RIFF chunks
166     (original patch by Ivan Maguidhir).
167 schoenebeck 3720 - Region::DeleteDimensionZone() and Region::SplitDimensionZone(): Fixed
168     dimensions being in different order after deleting a dimension zone.
169 schoenebeck 3723 - Script: Generate a persistent UUID for each script.
170 schoenebeck 3731 - GIG FORMAT EXTENSION: Added support for script 'patch' variables and
171     accordingly added new methods to Instrument class:
172     IsScriptPatchVariableSet(), GetScriptPatchVariables(),
173     GetScriptPatchVariable(), SetScriptPatchVariable(),
174     UnsetScriptPatchVariable(); stored persistently as new 'SCPV' RIFF chunk
175     as child of our '3LS ' list chunk on Instrument level.
176 schoenebeck 3799 - Fixed undefined behaviour when modifying script slots on an instrument
177     that had been cloned and not been saved yet (e.g. unintended modification
178     of original instrument's script slots, and crash on Instrument destruction
179     due to double free of pScriptRefs).
180 schoenebeck 3623
181 schoenebeck 3770 * src/Serialization.cpp, src/Serialization.h:
182     - Fixed broken Archive(RawData) constructor which always threw an
183     Exception.
184 schoenebeck 3771 - Added built-in support for C++ String objects (a.k.a. std::string
185     from the STL) and bumped Srx format version to 1.1 for that reason.
186 schoenebeck 3773 - Fixed assertion fault on some systems if a member variable defined was
187     serialized which was declared as size_t or ssize_t data type.
188 schoenebeck 3774 - Added new method Archive::operation() which allows applications to
189     distinguish between serialization vs. deserialization in their
190     serialize() method implementations.
191 schoenebeck 3775 - Added built-in support for C++ Array<> objects (a.k.a. std::vector from
192     the STL).
193     - Member offsets are now signed and for (newly added support of) member
194     variables on the heap -1 is always used as offset instead.
195 schoenebeck 3776 - Added built-in support for C++ Set<> objects (a.k.a. std::set from the
196     STL).
197 schoenebeck 3777 - DataType: Added optional 2nd custom type name.
198     - Added built-in support for C++ Map<> objects (a.k.a. std::map from the
199     STL).
200 schoenebeck 3770
201 schoenebeck 3859 * src/helper.h:
202     - Fix compile error with GCC 9 due to ignored result value of vasprintf()
203     function call.
204    
205 schoenebeck 3623 * src/tools/gigdump.cpp:
206     - Print dimension region properties LFO1WaveForm, LFO2WaveForm,
207     LFO3WaveForm, LFO1Phase, LFO2Phase, LFO3Phase, LFO1FlipPhase,
208     LFO2FlipPhase and LFO3FlipPhase.
209    
210 schoenebeck 3524 Version 4.2.0 (25 Jul 2019)
211 schoenebeck 3392
212 schoenebeck 3476 * general changes:
213     - Added MSVC build support (anonymous patch from mailing list).
214     - Introduced CMake build support (yet constrained for building with MSVC)
215     (anonymous patch from mailing list).
216 schoenebeck 3478 - Fix: Don't automatically delete RIFF chunks from DLS/gig classes'
217     destructors. Added new virtual method DeleteChunks() to those classes
218     for this which must be explicitly called instead to remove their RIFF
219     chunks.
220     - Fix: Many methods of DLS/gig classes assumed a RIFF chunk read position
221     of zero; which is unsafe per se.
222     - Added C++11 "override" keyword where appropriate.
223 schoenebeck 3488 - Fixed crash in RIFF, DLS and gig classes which occurred on certain
224     of their actions when not passing a progress_t callback structure.
225 schoenebeck 3476
226 schoenebeck 3398 * src/gig.cpp, src/gig.h:
227     - Fixed Doxygen API comments for enum types (currently latest Doxygen
228     [v1.8.13] only supports C comments in macro arguments expansion, but
229     not C++ comments; see <FindDefineArgs> lexer rules in src/pre.l of
230     the Doxygen source code, which currently also filter out new line
231     \n chars).
232 schoenebeck 3414 - Added new method File::CountSamples().
233     - Added new method File::CountInstruments().
234 schoenebeck 3440 - Fixed gig v4 files falsely being handled as v2 format
235     (patch by Ivan Maguidhir).
236     - Added gig v4 version identifier (File::VERSION_4).
237 schoenebeck 3442 - GIG FORMAT EXTENSION: Added attribute
238     DimensionRegion::SustainReleaseTrigger which allows to define whether
239     a sustain pedal up event shall cause a release trigger sample to be
240     played (default: don't play release trigger sample by sustain pedal).
241 schoenebeck 3447 - GIG FORMAT EXTENSION: Added attribute
242     DimensionRegion::NoNoteOffReleaseTrigger which allows to disable the
243     regular behaviour of playing release trigger sample on MIDI note-off
244     events.
245 schoenebeck 3474 - Introduced support for writing extension files (.gx01, .gx02, ...)
246     (original patch by Ivan Maguidhir).
247 schoenebeck 3478 - Many gig classes derive now from DLS::Storage (see DLS changes below).
248 schoenebeck 3481 - Added File::GetRiffFile() method.
249 schoenebeck 3398
250 schoenebeck 3463 * src/DLS.cpp, src/DLS.h:
251     - File: Fixed implicitly allocated RIFF::File object never been freed.
252 schoenebeck 3478 - Added new abstract interface base class DLS::Storage which is derived by
253     the respective classes for implementing (the old) UpdateChunks() and the
254     new DeleteChunks() method.
255 schoenebeck 3481 - Added File::GetRiffFile() method.
256 schoenebeck 3463
257 schoenebeck 3481 * src/sf2.cpp, src/sf2.h:
258     - Added Sample::GetFile() method.
259     - Added File::GetRiffFile() method.
260    
261 schoenebeck 3392 * src/Serialization.cpp, src/Serialization.h:
262     - Hide pure internal declarations from header file to avoid numerous
263     compiler warnings when building and linking against the public API.
264 persson 3454 - Fixed comparision logic bug
265 schoenebeck 3464 - Fixed memory leak in DataType::customTypeName().
266 schoenebeck 3392
267 schoenebeck 3412 * src/RIFF.cpp, src/RIFF.h:
268     - Fix: Calling File::SetMode() left an undefined file handle on Windows and
269     caused a resource leak
270 persson 3468 - Avoid compiler warning when building for 32 bit windows.
271 schoenebeck 3478 - Added new method progress_t::subdivide().
272 schoenebeck 3481 - Fix: API doc comment for Chunk::GetFilePos() was completely wrong.
273     - progress_t: Added a 2nd (overridden) progress_t::subdivide() method which
274     allows a more fine graded control into which portions the subtasks are
275     divided to.
276 schoenebeck 3412
277 schoenebeck 3425 * src/tools/gigdump.cpp:
278     - Added command line option --instrument-names which causes only
279     instrument names and their index numbers to be printed.
280    
281 schoenebeck 3370 Version 4.1.0 (25 Nov 2017)
282 schoenebeck 2909 * general changes:
283 schoenebeck 2912 - removed 2 GB limitation when loading a gig or DLS file
284 schoenebeck 2922 - using now native integer size where appropriate
285 schoenebeck 3047 - fixed minor issues with man pages (patch by Debian maintainer)
286 schoenebeck 3048 - fixed various spelling mistakes (patch by Debian maintainer)
287 schoenebeck 3138 - Added new "Serialization" framework (and equally named namespace)
288     which allows to serialize and deserialize native C++ objects
289     in a portable, easy and flexible way.
290 schoenebeck 3173 - print compiler warning if no RTTI available
291 schoenebeck 3175 - Fixed potential crash in command line tools gig2stereo, korg2gig,
292     korgdump and sf2extract.
293 schoenebeck 3348 - Fixed CVE-2017-12950, CVE-2017-12952, CVE-2017-12953
294     (original patch by Paul Brossier, slightly modified).
295 schoenebeck 3351 - Debian: Fixed packaging error about invalid substitution variable
296     "Source-Version".
297     - Raised Debian compatibility level to Debian 9 "Stretch".
298 schoenebeck 2909
299 schoenebeck 2912 * src/gig.cpp, src/gig.h:
300 persson 2836 - fixed bug in Script::SetGroup: the script chunk wasn't moved
301     - fixed compilation error with clang 3.4
302 schoenebeck 2912 - GIG FORMAT EXTENSION: added support for saving gig file larger than 4 GB
303 schoenebeck 2913 as one single monolithic gig file. In case .gig file is >= 2GB expect a
304     large monolithic file, otherwise if .gig file is < 2 GB check for
305     "extension" files (.gx01, .gx02, ...) instead.
306 schoenebeck 2923 - fixed Region::UpdateUpdateVelocityTable() which did not work correctly
307     if there were dimensions after the velocity dimension: it only created
308     valid velocity tables for cases of dimensions lower than the velocity
309     dimension.
310 schoenebeck 2985 - added new method Sample::VerifyWaveData() which allows to check whether
311     a sample had been damaged for some reason
312     - Fix: samples' CRC checksums were damaged on file structure changes.
313 schoenebeck 2989 - Fix: samples' CRC checksums were misordered when a Sample was deleted.
314     - Added new method Sample::GetWaveDataCRC32Checksum().
315 schoenebeck 2990 - Changed default value of EG2Release (filter release time) to 60s.
316 schoenebeck 3112 - Instruments' default pitch bend range is now +-2 semi tones.
317 schoenebeck 3115 - Fixed CRC checksums being wrong sometimes.
318 schoenebeck 3117 - Fix: method File::AddContentOf() did not clone script groups and scripts
319     of passed original file.
320 schoenebeck 3138 - Added support for serializing & deserializing DimensionRegion
321     objects (and crossfade_t and leverage_ctrl_t objects).
322 schoenebeck 3169 - Added enum reflection API functions for retrieving enum declaration type
323 schoenebeck 3181 information at runtime (enumCount(), enumKey(), enumKeys(), enumValue()).
324 schoenebeck 3198 - Exception class now has a variadic constructor which allows to add
325     textual format specifiers like with printf().
326     - On unknown leverage controller exception: show precise unknown leverage
327     controller number found.
328 schoenebeck 3203 - Ignore invalid leverage controller types and just show a warning on the
329     console instead of throwing an exception.
330 schoenebeck 3323 - Added new struct eg_opt_t and new class member variable
331 schoenebeck 3327 DimensionRegion::EG1Options and DimensionRegion::EG2Options as an
332     extension to the gig file format, which allows to override the default
333     behavior of the first two EGs' state machines.
334 schoenebeck 3349 - Fixed undefined behavior when loading a gig file with invalid
335     velocity curve parameters (fixes CVE-2017-12951).
336 schoenebeck 3350 - Fixed undefined behavior when loading a gig file with invalid wave
337     pool index number (fixes CVE-2017-12954).
338 schoenebeck 2909
339 schoenebeck 2912 * src/DLS.cpp, src/DLS.h:
340     - Sample: wave pool offsets are now 64 bits (to allow support for files
341     larger than 4 GB).
342 schoenebeck 3198 - Exception class now has a variadic constructor which allows to add
343     textual format specifiers like with printf().
344 persson 3454
345 schoenebeck 2912 * src/RIFF.cpp, src/RIFF.h:
346     - added support for RIFF files larger than 4 GB, by default the required
347     internal RIFF file offset size is automatically detected (that is RIFF
348     files < 4 GB automatically use 32 bit offsets while files >= 4 GB
349     automatically use 64 bit offsets), a particular offset size can be forced
350     with a new option added to the RIFF File constructor though
351     - when saving a modified, grown RIFF file, the temporary file size during
352     Save() operation will no longer be larger than the final grown file size
353 schoenebeck 3198 - Exception class now has a variadic constructor which allows to add
354     textual format specifiers like with printf().
355 schoenebeck 2912
356 schoenebeck 3150 * src/Serialization.cpp, src/Serialization.h:
357     - Archive: Added method isModified().
358     - Archive: Added method setAutoValue().
359     - Archive: Added method setIntValue().
360     - Archive: Added method setRealValue().
361     - Archive: Added method setBoolValue().
362     - Archive: Added method setEnumValue().
363     - Archive: Added method valueAsString().
364     - Archive::rawData(): Automatically re-encode new raw data stream if
365     archive had been modified (i.e. by remove(), setAutoValue(), etc.).
366 schoenebeck 3153 - Object: Added method memberByUID().
367     - Object: remove() method is now protected.
368 schoenebeck 3156 - Archive: Added method removeMember().
369     - Archive: Added methods name() and setName().
370     - Archive: Added methods comment() and setComment().
371     - Archive: Added methods timeStampCreated(), timeStampModified(),
372     dateTimeCreated() and dateTimeModified().
373 schoenebeck 3169 - Archive: Added methods valueAsInt(), valueAsReal() and valueAsBool().
374 schoenebeck 3173 - DataType: Implemented demangling C++ type names (for methods
375     asLongDescr() and customTypeName(bool demangle=false)).
376 schoenebeck 3185 - Archive::setAutoValue(): Handle human readable boolean text
377     representations like "yes", "no", "true", "false" as expected.
378 schoenebeck 3198 - Exception class now has a variadic constructor which allows to add
379     textual format specifiers like with printf().
380 schoenebeck 3334 - DataType fix: Retain backward compatibility to older versions of native
381     C++ classes/structs.
382 schoenebeck 3150
383 schoenebeck 3369 * src/Akai.cpp:
384     - Fixed compilation error with recent, more strict compilers.
385    
386 persson 2836 * src/tools/akaidump.cpp, src/tools/akaiextract.cpp:
387     - improved output of non-ascii characters in usage messages
388     - fixed printf format strings
389 schoenebeck 2909
390 persson 2836 * src/tools/korg2gig.cpp:
391     - fixed c++11 narrowing warnings
392 schoenebeck 2909 - fixed fine tuning which was not translated at all
393 persson 2836
394 schoenebeck 2923 * src/tools/gigdump.cpp:
395     - additionally print VelocityUpperLimit and DimensionUpperLimits of all
396     dimension regions
397 schoenebeck 2984 - additionally print RIFF chunk file offset and RIFF chunk size of sample
398     data
399 schoenebeck 2985 - added and implemented new parameter "--verify" which allows to check
400     the raw wave form data integrity of all samples
401     - added and implemented new parameter "--rebuild-checksums" which allows
402     to recalculate the CRC32 checksum of all samples' raw wave data and
403     rebuilding the gig file's global checksum table (i.e. in case the
404     file's checksum table was damaged)
405 schoenebeck 2989 - print samples' CRC32 checksums
406 schoenebeck 3323 - Print the new EG behavior options (eg_opt_t).
407 schoenebeck 2923
408 schoenebeck 2984 * src/tools/gigextract.cpp:
409     - Fix: if sample name contains a path separator (slash or backslash) then
410     replace them by a minus sign to avoid file system issues.
411    
412 schoenebeck 3115 * src/tools/gig2stereo.cpp:
413     - Also merge mono sample pairs with non matching loop information if
414     argument --incompatible was given.
415    
416 schoenebeck 2912 * packaging changes:
417     - Automake: set environment variable GCC_COLORS=auto to allow GCC to
418     auto detect whether it (sh/c)ould output its messages in color.
419    
420 schoenebeck 2785 Version 4.0.0 (14 Jul 2015)
421 persson 2133 * general changes:
422     - minor Makefile fix for parallel make
423 persson 2182 - Mac OS X: link with CoreFoundation (for the UUID function)
424 persson 2334 - removed gcc 4.7 warnings
425 persson 2364 - modernized configure script
426 persson 2419 - removed usage of deprecated Automake variable INCLUDES
427 schoenebeck 2482 - added new command line tool "gigmerge"
428     - added "const" keyword to several methods
429 schoenebeck 2484 - added new command line tool "gig2mono"
430 schoenebeck 2495 - added man page for "sf2dump"
431 schoenebeck 2543 - added new command line tool "korgdump" (and a man page for it)
432     - added new command line tool "korg2gig" (and a man page for it)
433 schoenebeck 2571 - moved source files of command line tools to new subdir src/tools
434 schoenebeck 2586 - libgig.so and libakai.so files are now installed under
435     $(prefix)/lib/libgig/ by default.
436     - Header files are now installed under $(prefix)/include/libgig/ by default.
437     - Fixed various packaging issues regarding installation directories
438     (fixes #218).
439 schoenebeck 2685 - added new command line tool "gig2stereo" (and a man page for it)
440 schoenebeck 2764 - unit tests: fixed wrong return value when test suite app exits
441     (patch by Ryan Schmidt)
442 schoenebeck 2780 - added new command line tool "sf2extract" (and a man page for it)
443 persson 2133
444 schoenebeck 2465 * SoundFont file format:
445 iliev 2016 - initial implementation
446 persson 2100 - changed region lookup API to avoid malloc in RT threads
447 persson 2202 - fixed GetEG1Sustain which didn't return correct value
448 persson 2381 - bugfix: GetPan always returned -1, 0 or 1
449 iliev 2016
450 schoenebeck 2543 * KORG file format:
451     - initial support for sample based instruments in KORG's file format
452     (.KMP and .KSF files)
453    
454 schoenebeck 2572 * AKAI file format:
455     - Added Linux/POSIX ported version of libakai. Note that libakai is released
456     under LGPL terms while libgig is released under GPL terms. To handle this
457     license difference appropriately the AKAI support part is built as
458     separate DLL (.so file).
459 schoenebeck 2573 - Fixed Mac OSX support so that the Akai lib files and tools compile without
460     any exotic third party libraries.
461 schoenebeck 2574 - Fixed various compilation errors for Windows.
462 schoenebeck 2587 - POSIX fix: open() requires third (mode) argument if used with O_CREAT
463     (fixes #219).
464 schoenebeck 2572
465 persson 2152 * src/gig.cpp:
466     - bugfix: VCF velocity dynamic range and VCF velocity curve
467     weren't saved correctly
468 schoenebeck 2394 - implemented File::AddDuplicateInstrument()
469 persson 2402 - bugfix: negative EG3 depth values were not correctly parsed or
470     saved
471 persson 2450 - added write support for CtrlTrigger midi rule
472     - added read and write support for Legato and Alternator midi
473     rules
474 schoenebeck 2467 - bugfix: sample groups were sometimes created multiple times or with
475     wrong textual group name
476 schoenebeck 2482 - added new method File::AddContentOf() for merging .gig files
477 schoenebeck 2540 - GIG FORMAT EXTENSION: added additional MIDI controllers for leverage
478     controller types (only works with LinuxSampler & gigedit, will not
479     work with Gigasampler/GigaStudio)
480 schoenebeck 2543 - added new method File::GetGroup(String name) for getting group by name
481 schoenebeck 2547 - added new method Region::GetDimensionDefinition(dimension_t type)
482     - bugfix: don't alter region pointer in DimensionRegion::CopyAssign()
483     - added some more sanity checks in Region::AddDimension()
484 schoenebeck 2555 - added new method Region::DeleteDimensionZone(dimension_t, int)
485     - added new method Region::SplitDimensionZone(dimension_t, int)
486 schoenebeck 2564 - Fixed crash caused by Region::GetDimensionRegionByValue() that happened
487     with certain velocity split sounds under certain conditions (added bound
488     constraints to prevent that)
489 schoenebeck 2584 - GIG FORMAT EXTENSION: added support for real-time instrument scripts.
490 schoenebeck 2599 - added new method Region::GetDimensionRegionIndexByValue()
491 schoenebeck 2601 - added new method Script::GetGroup()
492 schoenebeck 2639 - added new method Region::SetDimensionType()
493 schoenebeck 2682 - Added support for custom progress notification while saving to gig file.
494 schoenebeck 2698 - Bugfix: Adding a new region in between two existing regions caused the
495     new one being dropped after save operation and the gig file being tainted
496     (chunks at wrong location in the RIFF tree).
497 schoenebeck 2700 - Added new method Instrument::MoveTo() which allows to rearrange the order
498     of instruments within the same gig file.
499 persson 2152
500 schoenebeck 2274 * src/DLS.cpp, src/DLS.h:
501     - added new method File::GetFileName()
502 persson 2310 - fixed minor "memory leak on exception" bug found with cppcheck
503 schoenebeck 2329 - added new method File::GetExtensionFile(int index)
504 schoenebeck 2482 - added new method File::SetFileName() allowing to call File::Save()
505     later on without passing a file name
506 schoenebeck 2547 - added inline helper methods overlaps() for struct range_t
507 schoenebeck 2682 - Added support for custom progress notification while saving to DLS file.
508 schoenebeck 2698 - Bugfix: Adding a new region in between two existing regions caused the
509     new one being dropped after save operation and the gig file being tainted
510     (chunks at wrong location in the RIFF tree).
511 schoenebeck 2274
512 schoenebeck 2780 * src/SF.cpp, src/SF.h:
513     - added new method Sample::ReadNoClear()
514    
515 persson 2120 * src/RIFF.cpp, src/RIFF.h:
516     - bugfix: avoid calling read() with count 0 when writing a file,
517     as this may hang on some systems
518 persson 2155 - fixed memory leak and memory handling errors when file loading
519     fails
520 persson 2450 - added new method Chunk::ReadString
521 schoenebeck 2482 - added new method File::SetFileName() allowing to call File::Save()
522     later on without passing a file name
523     - added new method File::IsNew()
524 schoenebeck 2543 - added support for loading RIFF-like files with a bit different layout
525     than "real" RIFF files (used for KORG format support)
526     - added new method Chunk::GetFile()
527     - added new method Chunk::GetLayout()
528 schoenebeck 2584 - added 2nd, alternative method for List::MoveSubChunk(), the old 1st one
529     allows to move a subchunk within the current List, whereas the new 2nd
530     one allows to move the subchunk from the current list to another list
531 schoenebeck 2675 - POSIX: only assume -1 result value as error on open() calls
532     - POSIX: show operating system's error reason if opening a file failed
533 schoenebeck 2682 - Added support for custom progress notification while saving to RIFF file.
534 schoenebeck 2685 - Fixed embarrassing old bug: POSIX read() errors were never detected on
535     Chunk::Read() calls due to signment incompatible variable.
536 schoenebeck 2703 - Cleanup of an old DLL binary backward compatibility hack.
537 persson 2120
538 schoenebeck 2465 * src/gigextract.cpp:
539     - export sample loop, unity note and fine tune with libsndfile
540    
541 schoenebeck 2543 * src/riftree.cpp:
542     - added more command line options for being able to also dump other kind
543     of file formats similar but not equal to the RIFF format
544    
545 schoenebeck 1953 Version 3.3.0 (30 Jul 2009)
546 persson 1627
547 persson 1713 * general changes:
548     - fixed compilation with gcc 4.3
549 persson 1869 - fixes for building with Visual C++
550 persson 1894 - minor fix in configure for building DLL on Windows
551 persson 1713
552 persson 1627 * src/gig.cpp, src/gig.h:
553     - added partial support for MIDI rules, only the Controller
554     Triggered rule is supported so far
555 persson 1678 - bugfix: removed another iterator invalidation in DeleteSample
556 schoenebeck 1851 - bugfix in Sample::LoadSampleData*(): reset sample read position to
557     sample start before trying to (re)load sample data from file (#82)
558 persson 1869 - bugfix: EG3 depth parameter was not saved correctly
559 schoenebeck 1875 - fixed crash which occured when streaming a gig sample with
560     bi-directional (a.k.a. 'pingpong') loop type (fixes #102)
561 persson 1627
562 persson 1678 * src/RIFF.cpp, src/RIFF.h:
563     - bugfix: saving to the same file after the file size had been
564     increased made the file corrupt (#82)
565 schoenebeck 1851 - bugfix: refuse Chunk::Read() in case chunk has just been added, that
566     is not written physically yet (#82)
567 persson 1859 - bugfix: saving to the same file after the file size had been
568     decreased sometimes also made the file corrupt!
569 schoenebeck 1863 - bugfix: undefined behavior (e.g. endless loop) when opening zero
570     length files, now throws a RIFF::Exception instead (fixes bug #121)
571 persson 1869 - bugfix: destructor for base class RIFF::Chunk accessed members
572     of derived class RIFF::File, which is bad, and caused crashes
573     when using Visual C++
574 persson 1885 - bugfix: files that contain zero length RIFF lists were not read
575     correctly (fixes #127) (bug was introduced 2009-03-13)
576 persson 1678
577 schoenebeck 1549 Version 3.2.1 (5 Dec 2007)
578 schoenebeck 1459
579     * src/RIFF.cpp, src/RIFF.h:
580     - avoid Windows to perform unnecessary file stream caching which would
581     decrease disk streaming performance on Windows systems otherwise
582    
583 schoenebeck 1524 * src/gig.cpp, src/gig.h:
584     - added File::SetAutoLoad() and File::GetAutoLoad() for allowing
585     applications to retrieve very superficial informations like amount of
586     instruments and their names in a very fast way
587    
588 schoenebeck 1416 Version 3.2.0 (14 Oct 2007)
589 schoenebeck 1154
590 schoenebeck 1172 * packaging changes:
591     - added Mac OSX XCode project files (patch by Toshi Nagata)
592 schoenebeck 1186 - Dev-C++ (win32) project file is automatically updated with
593     the version info from configure.in
594 persson 1330 - the configure script can now be used in Windows with MSYS
595 schoenebeck 1378 - added a mainpage for the Doxygen API documentation
596 schoenebeck 1172
597 schoenebeck 1154 * src/DLS.cpp, src/DLS.h:
598     - added Sampler::AddSampleLoop() and Sampler::DeleteSampleLoop() methods
599 persson 1179 - fixed write support for big-endian systems
600 persson 1180 - improved handling of fixed length info strings - separate default
601     lengths can be specified for each INFO chunk
602 persson 1209 - added Resource::GenerateDLSID function
603 persson 1266 - write support fix: allow regions without mapped samples
604 schoenebeck 1335 - added method SetKeyRange() to the Region class which should be used
605     instead of setting the KeyRange member variable directly
606     - MoveRegion() method of Region class is now private
607 schoenebeck 1358 - added SetGain() method to Sampler class
608 persson 1388 - fixed crash when saving a file after a sample loop was added
609 schoenebeck 1154
610 schoenebeck 1158 * src/gig.cpp, src/gig.h:
611     - fixed segmentation fault in the gig::File destructor sequence which
612     happened when gig::Group informations were accessed before
613 persson 1179 - fixed write support for big-endian systems
614 persson 1180 - defined lengths of a fixed set of info strings. These strings
615     are saved when the file is written, even if they are empty.
616 persson 1182 - added missing parameter initalizations in sample, region and
617     instrument constructors
618     - clear unused fields when saving samples and regions
619     - fixed write support bugs: v3 dimension limits and chunksize
620     weren't saved, leverage controller of type controlchange
621 persson 1195 couldn't be saved, group name list chunk was placed wrong,
622     dimension region chunks also placed wrong
623 persson 1182 - added initialization of some fixed info strings in file and
624     instrument
625 persson 1192 - write support: files created by libgig will now have the RIFF
626     chunks in correct order
627 persson 1199 - write support: two previously unknown fields in dimension
628     definition are now saved
629     - added constants for gig file versions
630     - write support: the 3crc and einf chunks are now created or
631     updated when a file is saved (3crc contains sample checksums,
632     einf contains file statistics)
633 persson 1209 - write support: DLSID is now generated on the file and the
634     instruments
635 persson 1218 - write support: improved the default values for dimension region
636     parameters
637 persson 1247 - more write support fixes: crossfade parameters were not saved,
638     v3 dimension limits were not correctly initialized and saved
639     when dimensions were added or deleted, v3 wave pool offsets were
640     not saved correctly
641 persson 1264 - write support: 24 bit samples can now be written
642     - write support: version 3 is now the default for new files
643 persson 1266 - more write support fixes: the 3ewg chunk is now bigger for v3,
644     dimension regions without mapped samples are now allowed, 3gnl
645     list in v3 files now always has 128 entries, several parameters
646     where incorrectly saved due to an operator precedence mistake
647     - DeleteSample now removes all references to the deleted sample
648 persson 1301 - AddDimension now copies all parameters from existing dimension
649     regions and also makes sure that the samplechannel dimension is
650     placed first in the list of dimensions.
651 schoenebeck 1316 - added method GetParent() to class 'DimensionRegion', which returns its
652     parent Region
653 schoenebeck 1335 - fixed Instrument::UpdateRegionKeyTable() method which did not reset
654     unused areas
655 schoenebeck 1358 - added various setter methods to DimensionRegion class which take care
656     of updating lookup tables / caches.
657 schoenebeck 1158
658 persson 1183 * src/RIFF.cpp, src/RIFF.h:
659 persson 1184 - added File::SetByteOrder method
660 persson 1301 - Windows fix: saving a new file didn't work
661 persson 1183
662 persson 1264 * src/gigdump.cpp:
663     - added some missing dimension strings
664    
665 schoenebeck 1116 Version 3.1.1 (24 Mar 2007)
666 schoenebeck 1050
667     * packaging changes:
668     - ported to Windows using native Windows functions for file IO
669     (provided Dev-C++ + mingw project file)
670 schoenebeck 1079 - only export relevant files to Doxygen API documentation
671 schoenebeck 1050
672 persson 1070 * src/gig.cpp, src/gig.h:
673     - custom velocity splits now works for gig v3 files too
674     - added support for custom splits points for other dimensions than
675     velocity (gig v3 feature)
676 persson 1076 - added "smart midi" and "round robin keyboard" dimensions
677 schoenebeck 1081 - added new method File::DeleteGroupOnly() which only deletes the given
678     group but moves all its members to another group, the other method,
679     that is File::DeleteGroup() now removes not just the group, but also
680     all the samples that belong to that group
681 schoenebeck 1083 - fixed crash which occured on interfering File::DeleteSample() and
682     File::GetNextSample() calls (due to iterator invalidation)
683 schoenebeck 1098 - fixed group names which were not saved
684 schoenebeck 1099 - fixed group destructor which did not remove the RIFF chunk associated
685     with the group
686 persson 1102 - added Instrument::MoveRegion method
687     - fixed constructor for Region, which did not initialize correctly
688     when used from Instrument::AddRegion
689 schoenebeck 1106 - when saving, override the gig::Regions sample reference simply by
690     the region's first dimension region's sample (avoids an exception
691     when trying to save a new instrument)
692 schoenebeck 1113 - fixed AddDimension() method which did not fill out all mandatory
693     dimension definition fields
694 persson 1070
695 persson 1102 * src/DLS.cpp, src/DLS.h:
696     - added Instrument::MoveRegion method
697 schoenebeck 1106 - fixed software info field which was wrongly stored on instruments,
698     causing an exception when trying to save a new instrument
699 persson 1102
700 schoenebeck 1095 * src/RIFF.cpp, src/RIFF.h:
701     - fixed RIFF::Chunk destructor which did not unregister previously
702     resized chunks, leading to a "zero size chunk" exception when
703     File::Save() was called
704 persson 1102 - added List::MoveSubChunk method
705 schoenebeck 1095
706 schoenebeck 933 Version 3.1.0 (24 Nov 2006)
707 persson 858
708 capela 867 * packaging changes:
709     - changed deprecated copyright attribute to license;
710     added ldconfig to post-(un)install steps on libgig.spec (RPM)
711 persson 902
712 persson 858 * src/gig.cpp, src/gig.h:
713     - added support for more than one set of custom velocity splits
714     inside a region (for example different velocity split levels for
715     pedal up and pedal down)
716 persson 864 - sample loop parameters are now taken from the DimensionRegion
717     instead of the wave chunk
718     - keyswitching dimension is changed from split type "normal" to
719     "bit"
720 persson 902 - real support for 24 bit samples - samples are not truncated to
721     16 bits anymore
722     - support for reading of ".art" files. (Merging of .art and .gig
723     files are not implemented yet.)
724 persson 918 - several fixes for the write support
725 schoenebeck 929 - support for sample groups added
726 persson 858
727 persson 918 * src/DLS.cpp, src/DLS.h:
728 persson 902 - support for reading of ".art" files
729 persson 918 - removed incorrect use of memccpy in the write support (patch by
730     Jeremy Kerr)
731     - several fixes for the write support
732 persson 902
733     * src/gigextract.cpp:
734     - real support for 24 bit samples
735    
736 schoenebeck 916 * src/gigdump.cpp:
737     - print global file informations
738 schoenebeck 929 - print sample groups
739 schoenebeck 916
740 schoenebeck 917 * general changes:
741     - added CPPUnit test cases (at the moment primarily for automatic check
742     of Gigasampler write support)
743    
744 schoenebeck 854 Version 3.0.0 (28 Apr 2006)
745 persson 773
746 schoenebeck 780 * general changes:
747 schoenebeck 809 - added write support (that is for creating and modifying RIFF, DLS and
748     gig files)
749     - loading DLS and gig files is now much more permissive, DLS and gig
750     files are now loaded even if mandatory RIFF chunks are missing
751 persson 834 - fixed some memory management errors, one of them was causing a
752     crash when a multi-file gig was deallocated
753 schoenebeck 780
754 persson 773 * src/gig.cpp, src/gig.h:
755     - fixed the GetVelocityCutoff function, it wasn't always using the
756     VCFVelocityScale parameter when no cutoff controller was defined
757 persson 774 - support for the gig v3 feature to have a number of dimension
758     splits not equal to a power of two
759 schoenebeck 809 - added write support (highly experimental)
760 persson 773
761 schoenebeck 800 * src/DLS.cpp, src/DLS.h:
762     - fixed loading of Articulation Connections (<artl> list chunks were
763     seeked instead of ordinary <artl> data chunks)
764     - added write support (highly experimental)
765    
766     * src/RIFF.cpp, src/RIFF.h:
767     - added write support
768     - Chunk::LoadChunkData() can now be called again to resize the buffer
769     after a Chunk::Resize() and before the File::Save() call to allow
770     placing the new data in the chunk's write buffer and perform the
771     resize and write operations in one rush
772    
773 schoenebeck 809 * src/gigdump.cpp:
774     - fixed to show the correct amount of dimension regions instead of 32
775     (patch by James Wylder)
776    
777 schoenebeck 804 * src/dlsdump.cpp:
778     - show for every region the name of the referenced sample
779     - show file name in quotation marks
780    
781 schoenebeck 732 Version 2.0.2 (15 Aug 2005)
782 schoenebeck 652
783     * packaging changes:
784     - require automake (>= 1.5) for 'make -f Makefile.cvs'
785     (mandatory for 'dist-bzip2' automake option)
786    
787 persson 666 * src/gig.cpp, src/gig.h:
788     - support for gig v3 multi-file format (.gig, .gx01, .gx02, ...),
789     the extension files are read automatically when the samples are
790     loaded
791 persson 695 - fixed the 24 bit decompression, the result should now be exact
792     instead of an approximation
793 persson 728 - added VCFCutoffControllerInvert parameter and GetVelocityCutoff
794     function to DimensionRegion
795 persson 666
796     * src/DLS.cpp, src/DLS.h:
797     - the upper bits of the pool table indices are read (used as
798     extension file numbers for gig v3)
799    
800     * src/RIFF.cpp, src/RIFF.h:
801     - the file name is remembered in the RIFF::File object
802    
803 schoenebeck 632 Version 2.0.1 (12 Jun 2005)
804 schoenebeck 549
805 schoenebeck 634 * packaging changes:
806     - include debian/ directory on 'make dist'
807     - create a bzip2 tarball on 'make dist'
808    
809 schoenebeck 549 * src/gigextract.cpp:
810     - show also version of libsndfile or build version of libaudiofile when
811     using the -v switch
812 schoenebeck 608 - fixed mutual link dependency to libsndfile / libaudiofile
813 schoenebeck 549
814 persson 613 * src/gig.cpp, src/gig.h:
815     - added DimensionRegion::GetVelocityRelease function
816    
817 schoenebeck 530 Version 2.0.0 (9 May 2005)
818 schoenebeck 317
819 schoenebeck 383 * packaging changes:
820     - fixed conditional linkage of either libsndfile or libaudiofile
821     (if none of the two exist, configure script will abort)
822 schoenebeck 518 - man pages are now auto generated with the correct libgig version
823 schoenebeck 383
824 schoenebeck 317 * src/gig.cpp, src/gig.h:
825     - experimental support for Gigasampler v3 format;
826     64 bit file offsets are truncated to 32 bit, 24 bit samples are
827 schoenebeck 347 truncated to 16 bit, up to 8 dimensions are read, additional
828     articulation informations are ignored at the moment
829     (patch by Andreas Persson)
830 schoenebeck 317 - added some file format compatibility checks
831 schoenebeck 345 - fixed vcf_type_lowpassturbo value (vcf_type_lowpassturbo was actually
832     never used, because the necessary check was made before
833     initialization)
834     - fixed crossfade points order (structure for big endian and little
835     endian systems was interchanged)
836 schoenebeck 355 - fixed some memory leaks (patch by 'Gene', a.k.a Anders Alm)
837 schoenebeck 352 - fixed crash which occured when patches did not have a sample assigned
838     to their region or dimension region (patch by Andreas Persson)
839 persson 365 - support for compressed mono samples
840     - experimental support for compressed 24 bit samples
841     - fixed decompression on big-endian CPUs
842     - fixed decompression bug that truncated the last block of samples
843 schoenebeck 384 - external decompression buffers can now be used for streaming samples
844     to avoid race conditions in case of multiple streaming threads
845 persson 406 - added pre-calculated sample attenuation parameter
846 persson 437 - added v3 "random" and "round robin" dimensions
847 schoenebeck 515 - implemented progress indicator callback mechanism for loading
848     instruments and samples
849 schoenebeck 518 - added functions libraryName() and libraryVersion()
850 schoenebeck 317
851 schoenebeck 518 * src/DLS.cpp, src/DLS.h:
852 schoenebeck 515 - fixed File constructor which caused variable File::Instruments always
853     to be zero
854 schoenebeck 518 - added functions libraryName() and libraryVersion()
855 schoenebeck 515
856 schoenebeck 518 * src/RIFF.cpp, src/RIFF.h:
857 schoenebeck 515 - fixed method List::LoadSubChunks() which did not restore the original
858     position within the body of the given list chunk
859 schoenebeck 518 - added functions libraryName() and libraryVersion()
860 schoenebeck 515
861 schoenebeck 518 * src/rifftree.cpp:
862     - added command line switch -v to show rifftree's revision and the used
863     libgig version
864    
865     * src/dlsdump.cpp:
866     - added command line switch -v to show dlsdump's revision and the used
867     libgig version
868    
869 schoenebeck 334 * src/gigdump.cpp:
870 schoenebeck 530 - added output of UnityNote, FineTune, Gain, SampleStartOffset an
871     LoopPlayCount
872 schoenebeck 518 - added command line switch -v to show gigdump's revision and the used
873     libgig version
874 schoenebeck 334
875 persson 365 * src/gigextract.cpp:
876     - support for compressed mono samples and compressed 24 bit samples
877 schoenebeck 518 - added command line switch -v to show gigextract's revision and the
878     used libgig version
879 persson 365
880 schoenebeck 315 Version 1.0.0 (26 Nov 2004)
881 schoenebeck 196
882     * packaging changes:
883     - renamed 'libgig.pc.in' -> 'gig.pc.in' and renamed pkg-config lib name
884     'libgig' -> 'gig' as it's common practice to omit the 'lib' prefix
885 schoenebeck 315 - fixed man pages automake install rule (which didn't work on Mandrake,
886     SuSE and Fedora)
887     - fixed generation of Doxygen API documentation (now also included in
888     RPM and Debian packages)
889 schoenebeck 196
890 schoenebeck 231 * src/gig.cpp, src/gig.h:
891     - fixed / improved accuracy of all three velocity to volume
892 schoenebeck 315 transformation functions a.k.a. 'nonlinear','linear','special'
893     (patch by Andreas Persson)
894 schoenebeck 231 - denormals are filtered from the velocity to volume tables
895 schoenebeck 241 - bugfix for dimension region switching (wrong handling of the release
896     trigger dimension, no bit range check for dimensions of split type
897     'split_type_bit')
898 schoenebeck 269 - fixed panorama value in DimensionRegion (invalid conversion from
899     signed 7 bit to signed 8 bit)
900 schoenebeck 282 - added class attribute 'Layers' to class 'gig::Region'
901 schoenebeck 315 - symbol prototyping of gig::Region (fixes build failure with qsampler)
902 schoenebeck 231
903 schoenebeck 220 * src/gigextract.cpp:
904     - added support for libsndfile (if libaudiofile and libsndfile are
905     available then libsndfile is preferred)
906    
907 schoenebeck 229 * src/gigdump.cpp:
908     - added printout for dimension informations (amount, type, bits, zones)
909 schoenebeck 231 - added printout for velocity response curve parameters
910 schoenebeck 235 - added printout for crossfade definitions
911 schoenebeck 269 - added printout for panorama value for each DimensionRegion
912 schoenebeck 282 - replaced printout of DLS Region layer by printout of amount of
913     Gigasampler layers
914 schoenebeck 229
915 capela 168 Version 0.7.1 (2 Jul 2004)
916    
917     * packaging changes:
918 schoenebeck 192 - added libgig.spec and libgig.pc package configurations for generating
919     Redhat packages
920 capela 168 - header files included on installation.
921     - autotools-generated files removed from CVS repository.
922 schoenebeck 186 - added support for generating Debian packages
923     - version of shared library can be set in configure.in
924    
925 schoenebeck 58 Version 0.7.0 (3 May 2004)
926    
927     * general changes:
928     - various big endian specific corrections
929     (successfully tested now on PPC)
930     - minor adjustments to avoid compile errors on some systems
931     (using now pow() instead of powl() and --pedantic g++ compiler switch)
932     - libtoolized the library
933     - added man pages for the command line tools
934     (gigextract, gigdump, dlsdump, rifftree)
935    
936     * src/gig.cpp, src/gig.h:
937     - fixed bug in decompression algorithm which caused it not to detect
938     the end of a stream
939     - added method GetVelocityAttenuation() to class 'DimensionRegion' which
940     takes the MIDI key velocity value as an argument and returns the
941     appropriate volume factor (0.0 ... 1.0) for the sample to be played
942     back, the velocity curve transformation functions used for this are
943     only an approximation so far
944     - fixed class attributes 'Sample::LoopStart', 'Sample::LoopEnd' and
945     'Sample::LoopSize' which reflected wrong values
946     - class attributes 'Sample::LoopStart' and 'Sample::LoopEnd' are now
947     measured in sample points instead of byte offset
948     - renamed misleading attribute name 'Sample::MIDIPitchFraction' to
949     'Sample::FineTune'
950     - added class attribute 'Sample::LoopSize'
951     - added method GetInstrument(uint index) to class 'File'
952     - added ReadAndLoop() method to class 'Sample' which is an extension to
953     the normal Read() method to honor the sample's looping information
954     while streaming from disk
955     - changed interface for 'attenuation_ctrl_t', 'eg1_ctrl_t' and
956     'eg2_ctrl_t': replaced this huge enumeration by a structure which
957     reflects the MIDI controller number in case of an ordinary control
958     change controller (this saves a huge switch-case block in the
959     application of the library user)
960     - renamed following attributes in class 'DimensionRegion':
961     'AttenuationContol' -> 'AttenuationController',
962     'InvertAttenuationControl' -> 'InvertAttenuationController',
963     'AttenuationControlTreshold' -> 'AttenuationControllerThreshold'
964     - minor fix in API documentation for method GetVelocityAttenuation() in
965     class 'DimensionRegion'
966    
967     * src/RIFF.cpp, src/RIFF.h:
968     - added additional API documentation
969     - minor fix in Chunk::Read() method (only a minor efficiency issue)
970    
971     * src/gigdump.cpp:
972     - added printout of samples' looping informations
973    
974 schoenebeck 11 Version 0.6.0 (3 Nov 2003)
975    
976     * initial release

  ViewVC Help
Powered by ViewVC