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

Diff of /libgig/trunk/ChangeLog

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

revision 186 by schoenebeck, Wed Jul 7 12:03:54 2004 UTC revision 2482 by schoenebeck, Mon Nov 25 02:22:38 2013 UTC
# Line 1  Line 1 
1    Version CVS HEAD (?)
2      * general changes:
3        - minor Makefile fix for parallel make
4        - Mac OS X: link with CoreFoundation (for the UUID function)
5        - removed gcc 4.7 warnings
6        - modernized configure script
7        - removed usage of deprecated Automake variable INCLUDES
8        - added new command line tool "gigmerge"
9        - added "const" keyword to several methods
10    
11      * SoundFont file format:
12        - initial implementation
13        - changed region lookup API to avoid malloc in RT threads
14        - fixed GetEG1Sustain which didn't return correct value
15        - bugfix: GetPan always returned -1, 0 or 1
16    
17      * src/gig.cpp:
18        - bugfix: VCF velocity dynamic range and VCF velocity curve
19          weren't saved correctly
20        - implemented File::AddDuplicateInstrument()
21        - bugfix: negative EG3 depth values were not correctly parsed or
22          saved
23        - added write support for CtrlTrigger midi rule
24        - added read and write support for Legato and Alternator midi
25          rules
26        - bugfix: sample groups were sometimes created multiple times or with
27          wrong textual group name
28        - added new method File::AddContentOf() for merging .gig files
29    
30      * src/DLS.cpp, src/DLS.h:
31        - added new method File::GetFileName()
32        - fixed minor "memory leak on exception" bug found with cppcheck
33        - added new method File::GetExtensionFile(int index)
34        - added new method File::SetFileName() allowing to call File::Save()
35          later on without passing a file name
36    
37      * src/RIFF.cpp, src/RIFF.h:
38        - bugfix: avoid calling read() with count 0 when writing a file,
39          as this may hang on some systems
40        - fixed memory leak and memory handling errors when file loading
41          fails
42        - added new method Chunk::ReadString
43        - added new method File::SetFileName() allowing to call File::Save()
44          later on without passing a file name
45        - added new method File::IsNew()
46    
47      * src/gigextract.cpp:
48        - export sample loop, unity note and fine tune with libsndfile
49    
50    Version 3.3.0 (30 Jul 2009)
51    
52      * general changes:
53        - fixed compilation with gcc 4.3
54        - fixes for building with Visual C++
55        - minor fix in configure for building DLL on Windows
56    
57      * src/gig.cpp, src/gig.h:
58        - added partial support for MIDI rules, only the Controller
59          Triggered rule is supported so far
60        - bugfix: removed another iterator invalidation in DeleteSample
61        - bugfix in Sample::LoadSampleData*(): reset sample read position to
62          sample start before trying to (re)load sample data from file (#82)
63        - bugfix: EG3 depth parameter was not saved correctly
64        - fixed crash which occured when streaming a gig sample with
65          bi-directional (a.k.a. 'pingpong') loop type (fixes #102)
66    
67      * src/RIFF.cpp, src/RIFF.h:
68        - bugfix: saving to the same file after the file size had been
69          increased made the file corrupt (#82)
70        - bugfix: refuse Chunk::Read() in case chunk has just been added, that
71          is not written physically yet (#82)
72        - bugfix: saving to the same file after the file size had been
73          decreased sometimes also made the file corrupt!
74        - bugfix: undefined behavior (e.g. endless loop) when opening zero
75          length files, now throws a RIFF::Exception instead (fixes bug #121)
76        - bugfix: destructor for base class RIFF::Chunk accessed members
77          of derived class RIFF::File, which is bad, and caused crashes
78          when using Visual C++
79        - bugfix: files that contain zero length RIFF lists were not read
80          correctly (fixes #127) (bug was introduced 2009-03-13)
81    
82    Version 3.2.1 (5 Dec 2007)
83    
84      * src/RIFF.cpp, src/RIFF.h:
85        - avoid Windows to perform unnecessary file stream caching which would
86          decrease disk streaming performance on Windows systems otherwise
87    
88      * src/gig.cpp, src/gig.h:
89        - added File::SetAutoLoad() and File::GetAutoLoad() for allowing
90          applications to retrieve very superficial informations like amount of
91          instruments and their names in a very fast way
92    
93    Version 3.2.0 (14 Oct 2007)
94    
95      * packaging changes:
96        - added Mac OSX XCode project files (patch by Toshi Nagata)
97        - Dev-C++ (win32) project file is automatically updated with
98          the version info from configure.in
99        - the configure script can now be used in Windows with MSYS
100        - added a mainpage for the Doxygen API documentation
101    
102      * src/DLS.cpp, src/DLS.h:
103        - added Sampler::AddSampleLoop() and Sampler::DeleteSampleLoop() methods
104        - fixed write support for big-endian systems
105        - improved handling of fixed length info strings - separate default
106          lengths can be specified for each INFO chunk
107        - added Resource::GenerateDLSID function
108        - write support fix: allow regions without mapped samples
109        - added method SetKeyRange() to the Region class which should be used
110          instead of setting the KeyRange member variable directly
111        - MoveRegion() method of Region class is now private
112        - added SetGain() method to Sampler class
113        - fixed crash when saving a file after a sample loop was added
114    
115      * src/gig.cpp, src/gig.h:
116        - fixed segmentation fault in the gig::File destructor sequence which
117          happened when gig::Group informations were accessed before
118        - fixed write support for big-endian systems
119        - defined lengths of a fixed set of info strings. These strings
120          are saved when the file is written, even if they are empty.
121        - added missing parameter initalizations in sample, region and
122          instrument constructors
123        - clear unused fields when saving samples and regions
124        - fixed write support bugs: v3 dimension limits and chunksize
125          weren't saved, leverage controller of type controlchange
126          couldn't be saved, group name list chunk was placed wrong,
127          dimension region chunks also placed wrong
128        - added initialization of some fixed info strings in file and
129          instrument
130        - write support: files created by libgig will now have the RIFF
131          chunks in correct order
132        - write support: two previously unknown fields in dimension
133          definition are now saved
134        - added constants for gig file versions
135        - write support: the 3crc and einf chunks are now created or
136          updated when a file is saved (3crc contains sample checksums,
137          einf contains file statistics)
138        - write support: DLSID is now generated on the file and the
139          instruments
140        - write support: improved the default values for dimension region
141          parameters
142        - more write support fixes: crossfade parameters were not saved,
143          v3 dimension limits were not correctly initialized and saved
144          when dimensions were added or deleted, v3 wave pool offsets were
145          not saved correctly
146        - write support: 24 bit samples can now be written
147        - write support: version 3 is now the default for new files
148        - more write support fixes: the 3ewg chunk is now bigger for v3,
149          dimension regions without mapped samples are now allowed, 3gnl
150          list in v3 files now always has 128 entries, several parameters
151          where incorrectly saved due to an operator precedence mistake
152        - DeleteSample now removes all references to the deleted sample
153        - AddDimension now copies all parameters from existing dimension
154          regions and also makes sure that the samplechannel dimension is
155          placed first in the list of dimensions.
156        - added method GetParent() to class 'DimensionRegion', which returns its
157          parent Region
158        - fixed Instrument::UpdateRegionKeyTable() method which did not reset
159          unused areas
160        - added various setter methods to DimensionRegion class which take care
161          of updating lookup tables / caches.
162    
163      * src/RIFF.cpp, src/RIFF.h:
164        - added File::SetByteOrder method
165        - Windows fix: saving a new file didn't work
166    
167      * src/gigdump.cpp:
168        - added some missing dimension strings
169    
170    Version 3.1.1 (24 Mar 2007)
171    
172      * packaging changes:
173        - ported to Windows using native Windows functions for file IO
174          (provided Dev-C++ + mingw project file)
175        - only export relevant files to Doxygen API documentation
176    
177      * src/gig.cpp, src/gig.h:
178        - custom velocity splits now works for gig v3 files too
179        - added support for custom splits points for other dimensions than
180          velocity (gig v3 feature)
181        - added "smart midi" and "round robin keyboard" dimensions
182        - added new method File::DeleteGroupOnly() which only deletes the given
183          group but moves all its members to another group, the other method,
184          that is File::DeleteGroup() now removes not just the group, but also
185          all the samples that belong to that group
186        - fixed crash which occured on interfering File::DeleteSample() and
187          File::GetNextSample() calls (due to iterator invalidation)
188        - fixed group names which were not saved
189        - fixed group destructor which did not remove the RIFF chunk associated
190          with the group
191        - added Instrument::MoveRegion method
192        - fixed constructor for Region, which did not initialize correctly
193          when used from Instrument::AddRegion
194        - when saving, override the gig::Regions sample reference simply by
195          the region's first dimension region's sample (avoids an exception
196          when trying to save a new instrument)
197        - fixed AddDimension() method which did not fill out all mandatory
198          dimension definition fields
199    
200      * src/DLS.cpp, src/DLS.h:
201        - added Instrument::MoveRegion method
202        - fixed software info field which was wrongly stored on instruments,
203          causing an exception when trying to save a new instrument
204    
205      * src/RIFF.cpp, src/RIFF.h:
206        - fixed RIFF::Chunk destructor which did not unregister previously
207          resized chunks, leading to a "zero size chunk" exception when
208          File::Save() was called
209        - added List::MoveSubChunk method
210    
211    Version 3.1.0 (24 Nov 2006)
212    
213      * packaging changes:
214        - changed deprecated copyright attribute to license;
215          added ldconfig to post-(un)install steps on libgig.spec (RPM)
216    
217      * src/gig.cpp, src/gig.h:
218        - added support for more than one set of custom velocity splits
219          inside a region (for example different velocity split levels for
220          pedal up and pedal down)
221        - sample loop parameters are now taken from the DimensionRegion
222          instead of the wave chunk
223        - keyswitching dimension is changed from split type "normal" to
224          "bit"
225        - real support for 24 bit samples - samples are not truncated to
226          16 bits anymore
227        - support for reading of ".art" files. (Merging of .art and .gig
228          files are not implemented yet.)
229        - several fixes for the write support
230        - support for sample groups added
231    
232      * src/DLS.cpp, src/DLS.h:
233        - support for reading of ".art" files
234        - removed incorrect use of memccpy in the write support (patch by
235          Jeremy Kerr)
236        - several fixes for the write support
237    
238      * src/gigextract.cpp:
239        - real support for 24 bit samples
240    
241      * src/gigdump.cpp:
242        - print global file informations
243        - print sample groups
244    
245      * general changes:
246        - added CPPUnit test cases (at the moment primarily for automatic check
247          of Gigasampler write support)
248    
249    Version 3.0.0 (28 Apr 2006)
250    
251      * general changes:
252        - added write support (that is for creating and modifying RIFF, DLS and
253          gig files)
254        - loading DLS and gig files is now much more permissive, DLS and gig
255          files are now loaded even if mandatory RIFF chunks are missing
256        - fixed some memory management errors, one of them was causing a
257          crash when a multi-file gig was deallocated
258    
259      * src/gig.cpp, src/gig.h:
260        - fixed the GetVelocityCutoff function, it wasn't always using the
261          VCFVelocityScale parameter when no cutoff controller was defined
262        - support for the gig v3 feature to have a number of dimension
263          splits not equal to a power of two
264        - added write support (highly experimental)
265    
266      * src/DLS.cpp, src/DLS.h:
267        - fixed loading of Articulation Connections (<artl> list chunks were
268          seeked instead of ordinary <artl> data chunks)
269        - added write support (highly experimental)
270    
271      * src/RIFF.cpp, src/RIFF.h:
272        - added write support
273        - Chunk::LoadChunkData() can now be called again to resize the buffer
274          after a Chunk::Resize() and before the File::Save() call to allow
275          placing the new data in the chunk's write buffer and perform the
276          resize and write operations in one rush
277    
278      * src/gigdump.cpp:
279        - fixed to show the correct amount of dimension regions instead of 32
280          (patch by James Wylder)
281    
282      * src/dlsdump.cpp:
283        - show for every region the name of the referenced sample
284        - show file name in quotation marks
285    
286    Version 2.0.2 (15 Aug 2005)
287    
288      * packaging changes:
289        - require automake (>= 1.5) for 'make -f Makefile.cvs'
290          (mandatory for 'dist-bzip2' automake option)
291    
292      * src/gig.cpp, src/gig.h:
293        - support for gig v3 multi-file format (.gig, .gx01, .gx02, ...),
294          the extension files are read automatically when the samples are
295          loaded
296        - fixed the 24 bit decompression, the result should now be exact
297          instead of an approximation
298        - added VCFCutoffControllerInvert parameter and GetVelocityCutoff
299          function to DimensionRegion
300    
301      * src/DLS.cpp, src/DLS.h:
302        - the upper bits of the pool table indices are read (used as
303          extension file numbers for gig v3)
304    
305      * src/RIFF.cpp, src/RIFF.h:
306        - the file name is remembered in the RIFF::File object
307    
308    Version 2.0.1 (12 Jun 2005)
309    
310      * packaging changes:
311        - include debian/ directory on 'make dist'
312        - create a bzip2 tarball on 'make dist'
313    
314      * src/gigextract.cpp:
315        - show also version of libsndfile or build version of libaudiofile when
316          using the -v switch
317        - fixed mutual link dependency to libsndfile / libaudiofile
318    
319      * src/gig.cpp, src/gig.h:
320        - added DimensionRegion::GetVelocityRelease function
321    
322    Version 2.0.0 (9 May 2005)
323    
324      * packaging changes:
325        - fixed conditional linkage of either libsndfile or libaudiofile
326          (if none of the two exist, configure script will abort)
327        - man pages are now auto generated with the correct libgig version
328    
329      * src/gig.cpp, src/gig.h:
330        - experimental support for Gigasampler v3 format;
331          64 bit file offsets are truncated to 32 bit, 24 bit samples are
332          truncated to 16 bit, up to 8 dimensions are read, additional
333          articulation informations are ignored at the moment
334          (patch by Andreas Persson)
335        - added some file format compatibility checks
336        - fixed vcf_type_lowpassturbo value (vcf_type_lowpassturbo was actually
337          never used, because the necessary check was made before
338          initialization)
339        - fixed crossfade points order (structure for big endian and little
340          endian systems was interchanged)
341        - fixed some memory leaks (patch by 'Gene', a.k.a Anders Alm)
342        - fixed crash which occured when patches did not have a sample assigned
343          to their region or dimension region (patch by Andreas Persson)
344        - support for compressed mono samples
345        - experimental support for compressed 24 bit samples
346        - fixed decompression on big-endian CPUs
347        - fixed decompression bug that truncated the last block of samples
348        - external decompression buffers can now be used for streaming samples
349          to avoid race conditions in case of multiple streaming threads
350        - added pre-calculated sample attenuation parameter
351        - added v3 "random" and "round robin" dimensions
352        - implemented progress indicator callback mechanism for loading
353          instruments and samples
354        - added functions libraryName() and libraryVersion()
355    
356      * src/DLS.cpp, src/DLS.h:
357        - fixed File constructor which caused variable File::Instruments always
358          to be zero
359        - added functions libraryName() and libraryVersion()
360    
361      * src/RIFF.cpp, src/RIFF.h:
362        - fixed method List::LoadSubChunks() which did not restore the original
363          position within the body of the given list chunk
364        - added functions libraryName() and libraryVersion()
365    
366      * src/rifftree.cpp:
367        - added command line switch -v to show rifftree's revision and the used
368          libgig version
369    
370      * src/dlsdump.cpp:
371        - added command line switch -v to show dlsdump's revision and the used
372          libgig version
373    
374      * src/gigdump.cpp:
375        - added output of UnityNote, FineTune, Gain, SampleStartOffset an
376          LoopPlayCount
377        - added command line switch -v to show gigdump's revision and the used
378          libgig version
379    
380      * src/gigextract.cpp:
381        - support for compressed mono samples and compressed 24 bit samples
382        - added command line switch -v to show gigextract's revision and the
383          used libgig version
384    
385    Version 1.0.0 (26 Nov 2004)
386    
387      * packaging changes:
388        - renamed 'libgig.pc.in' -> 'gig.pc.in' and renamed pkg-config lib name
389          'libgig' -> 'gig' as it's common practice to omit the 'lib' prefix
390        - fixed man pages automake install rule (which didn't work on Mandrake,
391          SuSE and Fedora)
392        - fixed generation of Doxygen API documentation (now also included in
393          RPM and Debian packages)
394    
395      * src/gig.cpp, src/gig.h:
396        - fixed / improved accuracy of all three velocity to volume
397          transformation functions a.k.a. 'nonlinear','linear','special'
398          (patch by Andreas Persson)
399        - denormals are filtered from the velocity to volume tables
400        - bugfix for dimension region switching (wrong handling of the release
401          trigger dimension, no bit range check for dimensions of split type
402          'split_type_bit')
403        - fixed panorama value in DimensionRegion (invalid conversion from
404          signed 7 bit to signed 8 bit)
405        - added class attribute 'Layers' to class 'gig::Region'
406        - symbol prototyping of gig::Region (fixes build failure with qsampler)
407    
408      * src/gigextract.cpp:
409        - added support for libsndfile (if libaudiofile and libsndfile are
410          available then libsndfile is preferred)
411    
412      * src/gigdump.cpp:
413        - added printout for dimension informations (amount, type, bits, zones)
414        - added printout for velocity response curve parameters
415        - added printout for crossfade definitions
416        - added printout for panorama value for each DimensionRegion
417        - replaced printout of DLS Region layer by printout of amount of
418          Gigasampler layers
419    
420  Version 0.7.1 (2 Jul 2004)  Version 0.7.1 (2 Jul 2004)
421    
422    * packaging changes:    * packaging changes:
423      - added libgig.spec and libgig.pc package configurations.      - added libgig.spec and libgig.pc package configurations for generating
424          Redhat packages
425      - header files included on installation.      - header files included on installation.
426      - autotools-generated files removed from CVS repository.      - autotools-generated files removed from CVS repository.
427      - added support for generating Debian packages      - added support for generating Debian packages
# Line 56  Version 0.7.0 (3 May 2004) Line 476  Version 0.7.0 (3 May 2004)
476    * src/gigdump.cpp:    * src/gigdump.cpp:
477      - added printout of samples' looping informations      - added printout of samples' looping informations
478    
   
479  Version 0.6.0 (3 Nov 2003)  Version 0.6.0 (3 Nov 2003)
480    
481    * initial release    * initial release

Legend:
Removed from v.186  
changed lines
  Added in v.2482

  ViewVC Help
Powered by ViewVC