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

Contents of /libgig/trunk/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3442 - (show annotations) (download)
Sat Dec 22 18:59:29 2018 UTC (5 years, 3 months ago) by schoenebeck
File size: 33934 byte(s)
* GIG FORMAT EXTENSION: Added attribute
  DimensionRegion::SustainReleaseTrigger which allows to define whether
  a sustain pedal up event shall cause a release trigger sample to be
  played (default: don't play release trigger sample by sustain pedal).
* Bumped version (4.1.0.svn7).

1 Version SVN trunk (?)
2
3 * src/gig.cpp, src/gig.h:
4 - Fixed Doxygen API comments for enum types (currently latest Doxygen
5 [v1.8.13] only supports C comments in macro arguments expansion, but
6 not C++ comments; see <FindDefineArgs> lexer rules in src/pre.l of
7 the Doxygen source code, which currently also filter out new line
8 \n chars).
9 - Added new method File::CountSamples().
10 - Added new method File::CountInstruments().
11 - Fixed gig v4 files falsely being handled as v2 format
12 (patch by Ivan Maguidhir).
13 - Added gig v4 version identifier (File::VERSION_4).
14 - GIG FORMAT EXTENSION: Added attribute
15 DimensionRegion::SustainReleaseTrigger which allows to define whether
16 a sustain pedal up event shall cause a release trigger sample to be
17 played (default: don't play release trigger sample by sustain pedal).
18
19 * src/Serialization.cpp, src/Serialization.h:
20 - Hide pure internal declarations from header file to avoid numerous
21 compiler warnings when building and linking against the public API.
22
23 * src/RIFF.cpp, src/RIFF.h:
24 - Fix: Calling File::SetMode() left an undefined file handle on Windows and
25 caused a resource leak
26
27 * src/tools/gigdump.cpp:
28 - Added command line option --instrument-names which causes only
29 instrument names and their index numbers to be printed.
30
31 Version 4.1.0 (25 Nov 2017)
32 * general changes:
33 - removed 2 GB limitation when loading a gig or DLS file
34 - using now native integer size where appropriate
35 - fixed minor issues with man pages (patch by Debian maintainer)
36 - fixed various spelling mistakes (patch by Debian maintainer)
37 - Added new "Serialization" framework (and equally named namespace)
38 which allows to serialize and deserialize native C++ objects
39 in a portable, easy and flexible way.
40 - print compiler warning if no RTTI available
41 - Fixed potential crash in command line tools gig2stereo, korg2gig,
42 korgdump and sf2extract.
43 - Fixed CVE-2017-12950, CVE-2017-12952, CVE-2017-12953
44 (original patch by Paul Brossier, slightly modified).
45 - Debian: Fixed packaging error about invalid substitution variable
46 "Source-Version".
47 - Raised Debian compatibility level to Debian 9 "Stretch".
48
49 * src/gig.cpp, src/gig.h:
50 - fixed bug in Script::SetGroup: the script chunk wasn't moved
51 - fixed compilation error with clang 3.4
52 - GIG FORMAT EXTENSION: added support for saving gig file larger than 4 GB
53 as one single monolithic gig file. In case .gig file is >= 2GB expect a
54 large monolithic file, otherwise if .gig file is < 2 GB check for
55 "extension" files (.gx01, .gx02, ...) instead.
56 - fixed Region::UpdateUpdateVelocityTable() which did not work correctly
57 if there were dimensions after the velocity dimension: it only created
58 valid velocity tables for cases of dimensions lower than the velocity
59 dimension.
60 - added new method Sample::VerifyWaveData() which allows to check whether
61 a sample had been damaged for some reason
62 - Fix: samples' CRC checksums were damaged on file structure changes.
63 - Fix: samples' CRC checksums were misordered when a Sample was deleted.
64 - Added new method Sample::GetWaveDataCRC32Checksum().
65 - Changed default value of EG2Release (filter release time) to 60s.
66 - Instruments' default pitch bend range is now +-2 semi tones.
67 - Fixed CRC checksums being wrong sometimes.
68 - Fix: method File::AddContentOf() did not clone script groups and scripts
69 of passed original file.
70 - Added support for serializing & deserializing DimensionRegion
71 objects (and crossfade_t and leverage_ctrl_t objects).
72 - Added enum reflection API functions for retrieving enum declaration type
73 information at runtime (enumCount(), enumKey(), enumKeys(), enumValue()).
74 - Exception class now has a variadic constructor which allows to add
75 textual format specifiers like with printf().
76 - On unknown leverage controller exception: show precise unknown leverage
77 controller number found.
78 - Ignore invalid leverage controller types and just show a warning on the
79 console instead of throwing an exception.
80 - Added new struct eg_opt_t and new class member variable
81 DimensionRegion::EG1Options and DimensionRegion::EG2Options as an
82 extension to the gig file format, which allows to override the default
83 behavior of the first two EGs' state machines.
84 - Fixed undefined behavior when loading a gig file with invalid
85 velocity curve parameters (fixes CVE-2017-12951).
86 - Fixed undefined behavior when loading a gig file with invalid wave
87 pool index number (fixes CVE-2017-12954).
88
89 * src/DLS.cpp, src/DLS.h:
90 - Sample: wave pool offsets are now 64 bits (to allow support for files
91 larger than 4 GB).
92 - Exception class now has a variadic constructor which allows to add
93 textual format specifiers like with printf().
94
95 * src/RIFF.cpp, src/RIFF.h:
96 - added support for RIFF files larger than 4 GB, by default the required
97 internal RIFF file offset size is automatically detected (that is RIFF
98 files < 4 GB automatically use 32 bit offsets while files >= 4 GB
99 automatically use 64 bit offsets), a particular offset size can be forced
100 with a new option added to the RIFF File constructor though
101 - when saving a modified, grown RIFF file, the temporary file size during
102 Save() operation will no longer be larger than the final grown file size
103 - Exception class now has a variadic constructor which allows to add
104 textual format specifiers like with printf().
105
106 * src/Serialization.cpp, src/Serialization.h:
107 - Archive: Added method isModified().
108 - Archive: Added method setAutoValue().
109 - Archive: Added method setIntValue().
110 - Archive: Added method setRealValue().
111 - Archive: Added method setBoolValue().
112 - Archive: Added method setEnumValue().
113 - Archive: Added method valueAsString().
114 - Archive::rawData(): Automatically re-encode new raw data stream if
115 archive had been modified (i.e. by remove(), setAutoValue(), etc.).
116 - Object: Added method memberByUID().
117 - Object: remove() method is now protected.
118 - Archive: Added method removeMember().
119 - Archive: Added methods name() and setName().
120 - Archive: Added methods comment() and setComment().
121 - Archive: Added methods timeStampCreated(), timeStampModified(),
122 dateTimeCreated() and dateTimeModified().
123 - Archive: Added methods valueAsInt(), valueAsReal() and valueAsBool().
124 - DataType: Implemented demangling C++ type names (for methods
125 asLongDescr() and customTypeName(bool demangle=false)).
126 - Archive::setAutoValue(): Handle human readable boolean text
127 representations like "yes", "no", "true", "false" as expected.
128 - Exception class now has a variadic constructor which allows to add
129 textual format specifiers like with printf().
130 - DataType fix: Retain backward compatibility to older versions of native
131 C++ classes/structs.
132
133 * src/Akai.cpp:
134 - Fixed compilation error with recent, more strict compilers.
135
136 * src/tools/akaidump.cpp, src/tools/akaiextract.cpp:
137 - improved output of non-ascii characters in usage messages
138 - fixed printf format strings
139
140 * src/tools/korg2gig.cpp:
141 - fixed c++11 narrowing warnings
142 - fixed fine tuning which was not translated at all
143
144 * src/tools/gigdump.cpp:
145 - additionally print VelocityUpperLimit and DimensionUpperLimits of all
146 dimension regions
147 - additionally print RIFF chunk file offset and RIFF chunk size of sample
148 data
149 - added and implemented new parameter "--verify" which allows to check
150 the raw wave form data integrity of all samples
151 - added and implemented new parameter "--rebuild-checksums" which allows
152 to recalculate the CRC32 checksum of all samples' raw wave data and
153 rebuilding the gig file's global checksum table (i.e. in case the
154 file's checksum table was damaged)
155 - print samples' CRC32 checksums
156 - Print the new EG behavior options (eg_opt_t).
157
158 * src/tools/gigextract.cpp:
159 - Fix: if sample name contains a path separator (slash or backslash) then
160 replace them by a minus sign to avoid file system issues.
161
162 * src/tools/gig2stereo.cpp:
163 - Also merge mono sample pairs with non matching loop information if
164 argument --incompatible was given.
165
166 * packaging changes:
167 - Automake: set environment variable GCC_COLORS=auto to allow GCC to
168 auto detect whether it (sh/c)ould output its messages in color.
169
170 Version 4.0.0 (14 Jul 2015)
171 * general changes:
172 - minor Makefile fix for parallel make
173 - Mac OS X: link with CoreFoundation (for the UUID function)
174 - removed gcc 4.7 warnings
175 - modernized configure script
176 - removed usage of deprecated Automake variable INCLUDES
177 - added new command line tool "gigmerge"
178 - added "const" keyword to several methods
179 - added new command line tool "gig2mono"
180 - added man page for "sf2dump"
181 - added new command line tool "korgdump" (and a man page for it)
182 - added new command line tool "korg2gig" (and a man page for it)
183 - moved source files of command line tools to new subdir src/tools
184 - libgig.so and libakai.so files are now installed under
185 $(prefix)/lib/libgig/ by default.
186 - Header files are now installed under $(prefix)/include/libgig/ by default.
187 - Fixed various packaging issues regarding installation directories
188 (fixes #218).
189 - added new command line tool "gig2stereo" (and a man page for it)
190 - unit tests: fixed wrong return value when test suite app exits
191 (patch by Ryan Schmidt)
192 - added new command line tool "sf2extract" (and a man page for it)
193
194 * SoundFont file format:
195 - initial implementation
196 - changed region lookup API to avoid malloc in RT threads
197 - fixed GetEG1Sustain which didn't return correct value
198 - bugfix: GetPan always returned -1, 0 or 1
199
200 * KORG file format:
201 - initial support for sample based instruments in KORG's file format
202 (.KMP and .KSF files)
203
204 * AKAI file format:
205 - Added Linux/POSIX ported version of libakai. Note that libakai is released
206 under LGPL terms while libgig is released under GPL terms. To handle this
207 license difference appropriately the AKAI support part is built as
208 separate DLL (.so file).
209 - Fixed Mac OSX support so that the Akai lib files and tools compile without
210 any exotic third party libraries.
211 - Fixed various compilation errors for Windows.
212 - POSIX fix: open() requires third (mode) argument if used with O_CREAT
213 (fixes #219).
214
215 * src/gig.cpp:
216 - bugfix: VCF velocity dynamic range and VCF velocity curve
217 weren't saved correctly
218 - implemented File::AddDuplicateInstrument()
219 - bugfix: negative EG3 depth values were not correctly parsed or
220 saved
221 - added write support for CtrlTrigger midi rule
222 - added read and write support for Legato and Alternator midi
223 rules
224 - bugfix: sample groups were sometimes created multiple times or with
225 wrong textual group name
226 - added new method File::AddContentOf() for merging .gig files
227 - GIG FORMAT EXTENSION: added additional MIDI controllers for leverage
228 controller types (only works with LinuxSampler & gigedit, will not
229 work with Gigasampler/GigaStudio)
230 - added new method File::GetGroup(String name) for getting group by name
231 - added new method Region::GetDimensionDefinition(dimension_t type)
232 - bugfix: don't alter region pointer in DimensionRegion::CopyAssign()
233 - added some more sanity checks in Region::AddDimension()
234 - added new method Region::DeleteDimensionZone(dimension_t, int)
235 - added new method Region::SplitDimensionZone(dimension_t, int)
236 - Fixed crash caused by Region::GetDimensionRegionByValue() that happened
237 with certain velocity split sounds under certain conditions (added bound
238 constraints to prevent that)
239 - GIG FORMAT EXTENSION: added support for real-time instrument scripts.
240 - added new method Region::GetDimensionRegionIndexByValue()
241 - added new method Script::GetGroup()
242 - added new method Region::SetDimensionType()
243 - Added support for custom progress notification while saving to gig file.
244 - Bugfix: Adding a new region in between two existing regions caused the
245 new one being dropped after save operation and the gig file being tainted
246 (chunks at wrong location in the RIFF tree).
247 - Added new method Instrument::MoveTo() which allows to rearrange the order
248 of instruments within the same gig file.
249
250 * src/DLS.cpp, src/DLS.h:
251 - added new method File::GetFileName()
252 - fixed minor "memory leak on exception" bug found with cppcheck
253 - added new method File::GetExtensionFile(int index)
254 - added new method File::SetFileName() allowing to call File::Save()
255 later on without passing a file name
256 - added inline helper methods overlaps() for struct range_t
257 - Added support for custom progress notification while saving to DLS file.
258 - Bugfix: Adding a new region in between two existing regions caused the
259 new one being dropped after save operation and the gig file being tainted
260 (chunks at wrong location in the RIFF tree).
261
262 * src/SF.cpp, src/SF.h:
263 - added new method Sample::ReadNoClear()
264
265 * src/RIFF.cpp, src/RIFF.h:
266 - bugfix: avoid calling read() with count 0 when writing a file,
267 as this may hang on some systems
268 - fixed memory leak and memory handling errors when file loading
269 fails
270 - added new method Chunk::ReadString
271 - added new method File::SetFileName() allowing to call File::Save()
272 later on without passing a file name
273 - added new method File::IsNew()
274 - added support for loading RIFF-like files with a bit different layout
275 than "real" RIFF files (used for KORG format support)
276 - added new method Chunk::GetFile()
277 - added new method Chunk::GetLayout()
278 - added 2nd, alternative method for List::MoveSubChunk(), the old 1st one
279 allows to move a subchunk within the current List, whereas the new 2nd
280 one allows to move the subchunk from the current list to another list
281 - POSIX: only assume -1 result value as error on open() calls
282 - POSIX: show operating system's error reason if opening a file failed
283 - Added support for custom progress notification while saving to RIFF file.
284 - Fixed embarrassing old bug: POSIX read() errors were never detected on
285 Chunk::Read() calls due to signment incompatible variable.
286 - Cleanup of an old DLL binary backward compatibility hack.
287
288 * src/gigextract.cpp:
289 - export sample loop, unity note and fine tune with libsndfile
290
291 * src/riftree.cpp:
292 - added more command line options for being able to also dump other kind
293 of file formats similar but not equal to the RIFF format
294
295 Version 3.3.0 (30 Jul 2009)
296
297 * general changes:
298 - fixed compilation with gcc 4.3
299 - fixes for building with Visual C++
300 - minor fix in configure for building DLL on Windows
301
302 * src/gig.cpp, src/gig.h:
303 - added partial support for MIDI rules, only the Controller
304 Triggered rule is supported so far
305 - bugfix: removed another iterator invalidation in DeleteSample
306 - bugfix in Sample::LoadSampleData*(): reset sample read position to
307 sample start before trying to (re)load sample data from file (#82)
308 - bugfix: EG3 depth parameter was not saved correctly
309 - fixed crash which occured when streaming a gig sample with
310 bi-directional (a.k.a. 'pingpong') loop type (fixes #102)
311
312 * src/RIFF.cpp, src/RIFF.h:
313 - bugfix: saving to the same file after the file size had been
314 increased made the file corrupt (#82)
315 - bugfix: refuse Chunk::Read() in case chunk has just been added, that
316 is not written physically yet (#82)
317 - bugfix: saving to the same file after the file size had been
318 decreased sometimes also made the file corrupt!
319 - bugfix: undefined behavior (e.g. endless loop) when opening zero
320 length files, now throws a RIFF::Exception instead (fixes bug #121)
321 - bugfix: destructor for base class RIFF::Chunk accessed members
322 of derived class RIFF::File, which is bad, and caused crashes
323 when using Visual C++
324 - bugfix: files that contain zero length RIFF lists were not read
325 correctly (fixes #127) (bug was introduced 2009-03-13)
326
327 Version 3.2.1 (5 Dec 2007)
328
329 * src/RIFF.cpp, src/RIFF.h:
330 - avoid Windows to perform unnecessary file stream caching which would
331 decrease disk streaming performance on Windows systems otherwise
332
333 * src/gig.cpp, src/gig.h:
334 - added File::SetAutoLoad() and File::GetAutoLoad() for allowing
335 applications to retrieve very superficial informations like amount of
336 instruments and their names in a very fast way
337
338 Version 3.2.0 (14 Oct 2007)
339
340 * packaging changes:
341 - added Mac OSX XCode project files (patch by Toshi Nagata)
342 - Dev-C++ (win32) project file is automatically updated with
343 the version info from configure.in
344 - the configure script can now be used in Windows with MSYS
345 - added a mainpage for the Doxygen API documentation
346
347 * src/DLS.cpp, src/DLS.h:
348 - added Sampler::AddSampleLoop() and Sampler::DeleteSampleLoop() methods
349 - fixed write support for big-endian systems
350 - improved handling of fixed length info strings - separate default
351 lengths can be specified for each INFO chunk
352 - added Resource::GenerateDLSID function
353 - write support fix: allow regions without mapped samples
354 - added method SetKeyRange() to the Region class which should be used
355 instead of setting the KeyRange member variable directly
356 - MoveRegion() method of Region class is now private
357 - added SetGain() method to Sampler class
358 - fixed crash when saving a file after a sample loop was added
359
360 * src/gig.cpp, src/gig.h:
361 - fixed segmentation fault in the gig::File destructor sequence which
362 happened when gig::Group informations were accessed before
363 - fixed write support for big-endian systems
364 - defined lengths of a fixed set of info strings. These strings
365 are saved when the file is written, even if they are empty.
366 - added missing parameter initalizations in sample, region and
367 instrument constructors
368 - clear unused fields when saving samples and regions
369 - fixed write support bugs: v3 dimension limits and chunksize
370 weren't saved, leverage controller of type controlchange
371 couldn't be saved, group name list chunk was placed wrong,
372 dimension region chunks also placed wrong
373 - added initialization of some fixed info strings in file and
374 instrument
375 - write support: files created by libgig will now have the RIFF
376 chunks in correct order
377 - write support: two previously unknown fields in dimension
378 definition are now saved
379 - added constants for gig file versions
380 - write support: the 3crc and einf chunks are now created or
381 updated when a file is saved (3crc contains sample checksums,
382 einf contains file statistics)
383 - write support: DLSID is now generated on the file and the
384 instruments
385 - write support: improved the default values for dimension region
386 parameters
387 - more write support fixes: crossfade parameters were not saved,
388 v3 dimension limits were not correctly initialized and saved
389 when dimensions were added or deleted, v3 wave pool offsets were
390 not saved correctly
391 - write support: 24 bit samples can now be written
392 - write support: version 3 is now the default for new files
393 - more write support fixes: the 3ewg chunk is now bigger for v3,
394 dimension regions without mapped samples are now allowed, 3gnl
395 list in v3 files now always has 128 entries, several parameters
396 where incorrectly saved due to an operator precedence mistake
397 - DeleteSample now removes all references to the deleted sample
398 - AddDimension now copies all parameters from existing dimension
399 regions and also makes sure that the samplechannel dimension is
400 placed first in the list of dimensions.
401 - added method GetParent() to class 'DimensionRegion', which returns its
402 parent Region
403 - fixed Instrument::UpdateRegionKeyTable() method which did not reset
404 unused areas
405 - added various setter methods to DimensionRegion class which take care
406 of updating lookup tables / caches.
407
408 * src/RIFF.cpp, src/RIFF.h:
409 - added File::SetByteOrder method
410 - Windows fix: saving a new file didn't work
411
412 * src/gigdump.cpp:
413 - added some missing dimension strings
414
415 Version 3.1.1 (24 Mar 2007)
416
417 * packaging changes:
418 - ported to Windows using native Windows functions for file IO
419 (provided Dev-C++ + mingw project file)
420 - only export relevant files to Doxygen API documentation
421
422 * src/gig.cpp, src/gig.h:
423 - custom velocity splits now works for gig v3 files too
424 - added support for custom splits points for other dimensions than
425 velocity (gig v3 feature)
426 - added "smart midi" and "round robin keyboard" dimensions
427 - added new method File::DeleteGroupOnly() which only deletes the given
428 group but moves all its members to another group, the other method,
429 that is File::DeleteGroup() now removes not just the group, but also
430 all the samples that belong to that group
431 - fixed crash which occured on interfering File::DeleteSample() and
432 File::GetNextSample() calls (due to iterator invalidation)
433 - fixed group names which were not saved
434 - fixed group destructor which did not remove the RIFF chunk associated
435 with the group
436 - added Instrument::MoveRegion method
437 - fixed constructor for Region, which did not initialize correctly
438 when used from Instrument::AddRegion
439 - when saving, override the gig::Regions sample reference simply by
440 the region's first dimension region's sample (avoids an exception
441 when trying to save a new instrument)
442 - fixed AddDimension() method which did not fill out all mandatory
443 dimension definition fields
444
445 * src/DLS.cpp, src/DLS.h:
446 - added Instrument::MoveRegion method
447 - fixed software info field which was wrongly stored on instruments,
448 causing an exception when trying to save a new instrument
449
450 * src/RIFF.cpp, src/RIFF.h:
451 - fixed RIFF::Chunk destructor which did not unregister previously
452 resized chunks, leading to a "zero size chunk" exception when
453 File::Save() was called
454 - added List::MoveSubChunk method
455
456 Version 3.1.0 (24 Nov 2006)
457
458 * packaging changes:
459 - changed deprecated copyright attribute to license;
460 added ldconfig to post-(un)install steps on libgig.spec (RPM)
461
462 * src/gig.cpp, src/gig.h:
463 - added support for more than one set of custom velocity splits
464 inside a region (for example different velocity split levels for
465 pedal up and pedal down)
466 - sample loop parameters are now taken from the DimensionRegion
467 instead of the wave chunk
468 - keyswitching dimension is changed from split type "normal" to
469 "bit"
470 - real support for 24 bit samples - samples are not truncated to
471 16 bits anymore
472 - support for reading of ".art" files. (Merging of .art and .gig
473 files are not implemented yet.)
474 - several fixes for the write support
475 - support for sample groups added
476
477 * src/DLS.cpp, src/DLS.h:
478 - support for reading of ".art" files
479 - removed incorrect use of memccpy in the write support (patch by
480 Jeremy Kerr)
481 - several fixes for the write support
482
483 * src/gigextract.cpp:
484 - real support for 24 bit samples
485
486 * src/gigdump.cpp:
487 - print global file informations
488 - print sample groups
489
490 * general changes:
491 - added CPPUnit test cases (at the moment primarily for automatic check
492 of Gigasampler write support)
493
494 Version 3.0.0 (28 Apr 2006)
495
496 * general changes:
497 - added write support (that is for creating and modifying RIFF, DLS and
498 gig files)
499 - loading DLS and gig files is now much more permissive, DLS and gig
500 files are now loaded even if mandatory RIFF chunks are missing
501 - fixed some memory management errors, one of them was causing a
502 crash when a multi-file gig was deallocated
503
504 * src/gig.cpp, src/gig.h:
505 - fixed the GetVelocityCutoff function, it wasn't always using the
506 VCFVelocityScale parameter when no cutoff controller was defined
507 - support for the gig v3 feature to have a number of dimension
508 splits not equal to a power of two
509 - added write support (highly experimental)
510
511 * src/DLS.cpp, src/DLS.h:
512 - fixed loading of Articulation Connections (<artl> list chunks were
513 seeked instead of ordinary <artl> data chunks)
514 - added write support (highly experimental)
515
516 * src/RIFF.cpp, src/RIFF.h:
517 - added write support
518 - Chunk::LoadChunkData() can now be called again to resize the buffer
519 after a Chunk::Resize() and before the File::Save() call to allow
520 placing the new data in the chunk's write buffer and perform the
521 resize and write operations in one rush
522
523 * src/gigdump.cpp:
524 - fixed to show the correct amount of dimension regions instead of 32
525 (patch by James Wylder)
526
527 * src/dlsdump.cpp:
528 - show for every region the name of the referenced sample
529 - show file name in quotation marks
530
531 Version 2.0.2 (15 Aug 2005)
532
533 * packaging changes:
534 - require automake (>= 1.5) for 'make -f Makefile.cvs'
535 (mandatory for 'dist-bzip2' automake option)
536
537 * src/gig.cpp, src/gig.h:
538 - support for gig v3 multi-file format (.gig, .gx01, .gx02, ...),
539 the extension files are read automatically when the samples are
540 loaded
541 - fixed the 24 bit decompression, the result should now be exact
542 instead of an approximation
543 - added VCFCutoffControllerInvert parameter and GetVelocityCutoff
544 function to DimensionRegion
545
546 * src/DLS.cpp, src/DLS.h:
547 - the upper bits of the pool table indices are read (used as
548 extension file numbers for gig v3)
549
550 * src/RIFF.cpp, src/RIFF.h:
551 - the file name is remembered in the RIFF::File object
552
553 Version 2.0.1 (12 Jun 2005)
554
555 * packaging changes:
556 - include debian/ directory on 'make dist'
557 - create a bzip2 tarball on 'make dist'
558
559 * src/gigextract.cpp:
560 - show also version of libsndfile or build version of libaudiofile when
561 using the -v switch
562 - fixed mutual link dependency to libsndfile / libaudiofile
563
564 * src/gig.cpp, src/gig.h:
565 - added DimensionRegion::GetVelocityRelease function
566
567 Version 2.0.0 (9 May 2005)
568
569 * packaging changes:
570 - fixed conditional linkage of either libsndfile or libaudiofile
571 (if none of the two exist, configure script will abort)
572 - man pages are now auto generated with the correct libgig version
573
574 * src/gig.cpp, src/gig.h:
575 - experimental support for Gigasampler v3 format;
576 64 bit file offsets are truncated to 32 bit, 24 bit samples are
577 truncated to 16 bit, up to 8 dimensions are read, additional
578 articulation informations are ignored at the moment
579 (patch by Andreas Persson)
580 - added some file format compatibility checks
581 - fixed vcf_type_lowpassturbo value (vcf_type_lowpassturbo was actually
582 never used, because the necessary check was made before
583 initialization)
584 - fixed crossfade points order (structure for big endian and little
585 endian systems was interchanged)
586 - fixed some memory leaks (patch by 'Gene', a.k.a Anders Alm)
587 - fixed crash which occured when patches did not have a sample assigned
588 to their region or dimension region (patch by Andreas Persson)
589 - support for compressed mono samples
590 - experimental support for compressed 24 bit samples
591 - fixed decompression on big-endian CPUs
592 - fixed decompression bug that truncated the last block of samples
593 - external decompression buffers can now be used for streaming samples
594 to avoid race conditions in case of multiple streaming threads
595 - added pre-calculated sample attenuation parameter
596 - added v3 "random" and "round robin" dimensions
597 - implemented progress indicator callback mechanism for loading
598 instruments and samples
599 - added functions libraryName() and libraryVersion()
600
601 * src/DLS.cpp, src/DLS.h:
602 - fixed File constructor which caused variable File::Instruments always
603 to be zero
604 - added functions libraryName() and libraryVersion()
605
606 * src/RIFF.cpp, src/RIFF.h:
607 - fixed method List::LoadSubChunks() which did not restore the original
608 position within the body of the given list chunk
609 - added functions libraryName() and libraryVersion()
610
611 * src/rifftree.cpp:
612 - added command line switch -v to show rifftree's revision and the used
613 libgig version
614
615 * src/dlsdump.cpp:
616 - added command line switch -v to show dlsdump's revision and the used
617 libgig version
618
619 * src/gigdump.cpp:
620 - added output of UnityNote, FineTune, Gain, SampleStartOffset an
621 LoopPlayCount
622 - added command line switch -v to show gigdump's revision and the used
623 libgig version
624
625 * src/gigextract.cpp:
626 - support for compressed mono samples and compressed 24 bit samples
627 - added command line switch -v to show gigextract's revision and the
628 used libgig version
629
630 Version 1.0.0 (26 Nov 2004)
631
632 * packaging changes:
633 - renamed 'libgig.pc.in' -> 'gig.pc.in' and renamed pkg-config lib name
634 'libgig' -> 'gig' as it's common practice to omit the 'lib' prefix
635 - fixed man pages automake install rule (which didn't work on Mandrake,
636 SuSE and Fedora)
637 - fixed generation of Doxygen API documentation (now also included in
638 RPM and Debian packages)
639
640 * src/gig.cpp, src/gig.h:
641 - fixed / improved accuracy of all three velocity to volume
642 transformation functions a.k.a. 'nonlinear','linear','special'
643 (patch by Andreas Persson)
644 - denormals are filtered from the velocity to volume tables
645 - bugfix for dimension region switching (wrong handling of the release
646 trigger dimension, no bit range check for dimensions of split type
647 'split_type_bit')
648 - fixed panorama value in DimensionRegion (invalid conversion from
649 signed 7 bit to signed 8 bit)
650 - added class attribute 'Layers' to class 'gig::Region'
651 - symbol prototyping of gig::Region (fixes build failure with qsampler)
652
653 * src/gigextract.cpp:
654 - added support for libsndfile (if libaudiofile and libsndfile are
655 available then libsndfile is preferred)
656
657 * src/gigdump.cpp:
658 - added printout for dimension informations (amount, type, bits, zones)
659 - added printout for velocity response curve parameters
660 - added printout for crossfade definitions
661 - added printout for panorama value for each DimensionRegion
662 - replaced printout of DLS Region layer by printout of amount of
663 Gigasampler layers
664
665 Version 0.7.1 (2 Jul 2004)
666
667 * packaging changes:
668 - added libgig.spec and libgig.pc package configurations for generating
669 Redhat packages
670 - header files included on installation.
671 - autotools-generated files removed from CVS repository.
672 - added support for generating Debian packages
673 - version of shared library can be set in configure.in
674
675 Version 0.7.0 (3 May 2004)
676
677 * general changes:
678 - various big endian specific corrections
679 (successfully tested now on PPC)
680 - minor adjustments to avoid compile errors on some systems
681 (using now pow() instead of powl() and --pedantic g++ compiler switch)
682 - libtoolized the library
683 - added man pages for the command line tools
684 (gigextract, gigdump, dlsdump, rifftree)
685
686 * src/gig.cpp, src/gig.h:
687 - fixed bug in decompression algorithm which caused it not to detect
688 the end of a stream
689 - added method GetVelocityAttenuation() to class 'DimensionRegion' which
690 takes the MIDI key velocity value as an argument and returns the
691 appropriate volume factor (0.0 ... 1.0) for the sample to be played
692 back, the velocity curve transformation functions used for this are
693 only an approximation so far
694 - fixed class attributes 'Sample::LoopStart', 'Sample::LoopEnd' and
695 'Sample::LoopSize' which reflected wrong values
696 - class attributes 'Sample::LoopStart' and 'Sample::LoopEnd' are now
697 measured in sample points instead of byte offset
698 - renamed misleading attribute name 'Sample::MIDIPitchFraction' to
699 'Sample::FineTune'
700 - added class attribute 'Sample::LoopSize'
701 - added method GetInstrument(uint index) to class 'File'
702 - added ReadAndLoop() method to class 'Sample' which is an extension to
703 the normal Read() method to honor the sample's looping information
704 while streaming from disk
705 - changed interface for 'attenuation_ctrl_t', 'eg1_ctrl_t' and
706 'eg2_ctrl_t': replaced this huge enumeration by a structure which
707 reflects the MIDI controller number in case of an ordinary control
708 change controller (this saves a huge switch-case block in the
709 application of the library user)
710 - renamed following attributes in class 'DimensionRegion':
711 'AttenuationContol' -> 'AttenuationController',
712 'InvertAttenuationControl' -> 'InvertAttenuationController',
713 'AttenuationControlTreshold' -> 'AttenuationControllerThreshold'
714 - minor fix in API documentation for method GetVelocityAttenuation() in
715 class 'DimensionRegion'
716
717 * src/RIFF.cpp, src/RIFF.h:
718 - added additional API documentation
719 - minor fix in Chunk::Read() method (only a minor efficiency issue)
720
721 * src/gigdump.cpp:
722 - added printout of samples' looping informations
723
724 Version 0.6.0 (3 Nov 2003)
725
726 * initial release

  ViewVC Help
Powered by ViewVC