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

Diff of /libgig/trunk/ChangeLog

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

revision 1099 by schoenebeck, Thu Mar 15 13:57:47 2007 UTC revision 3115 by schoenebeck, Sat Apr 15 20:17:05 2017 UTC
# Line 1  Line 1 
1  Version CVS HEAD (?)  Version SVN trunk
2      * general changes:
3        - removed 2 GB limitation when loading a gig or DLS file
4        - using now native integer size where appropriate
5        - fixed minor issues with man pages (patch by Debian maintainer)
6        - fixed various spelling mistakes (patch by Debian maintainer)
7    
8      * src/gig.cpp, src/gig.h:
9        - fixed bug in Script::SetGroup: the script chunk wasn't moved
10        - fixed compilation error with clang 3.4
11        - GIG FORMAT EXTENSION: added support for saving gig file larger than 4 GB
12          as one single monolithic gig file. In case .gig file is >= 2GB expect a
13          large monolithic file, otherwise if .gig file is < 2 GB check for
14          "extension" files (.gx01, .gx02, ...) instead.
15        - fixed Region::UpdateUpdateVelocityTable() which did not work correctly
16          if there were dimensions after the velocity dimension: it only created
17          valid velocity tables for cases of dimensions lower than the velocity
18          dimension.
19        - added new method Sample::VerifyWaveData() which allows to check whether
20          a sample had been damaged for some reason
21        - Fix: samples' CRC checksums were damaged on file structure changes.
22        - Fix: samples' CRC checksums were misordered when a Sample was deleted.
23        - Added new method Sample::GetWaveDataCRC32Checksum().
24        - Changed default value of EG2Release (filter release time) to 60s.
25        - Instruments' default pitch bend range is now +-2 semi tones.
26        - Fixed CRC checksums being wrong sometimes.
27    
28      * src/DLS.cpp, src/DLS.h:
29        - Sample: wave pool offsets are now 64 bits (to allow support for files
30          larger than 4 GB).
31          
32      * src/RIFF.cpp, src/RIFF.h:
33        - added support for RIFF files larger than 4 GB, by default the required
34          internal RIFF file offset size is automatically detected (that is RIFF
35          files < 4 GB automatically use 32 bit offsets while files >= 4 GB
36          automatically use 64 bit offsets), a particular offset size can be forced
37          with a new option added to the RIFF File constructor though
38        - when saving a modified, grown RIFF file, the temporary file size during
39          Save() operation will no longer be larger than the final grown file size
40    
41      * src/tools/akaidump.cpp, src/tools/akaiextract.cpp:
42        - improved output of non-ascii characters in usage messages
43        - fixed printf format strings
44    
45      * src/tools/korg2gig.cpp:
46        - fixed c++11 narrowing warnings
47        - fixed fine tuning which was not translated at all
48    
49      * src/tools/gigdump.cpp:
50        - additionally print VelocityUpperLimit and DimensionUpperLimits of all
51          dimension regions
52        - additionally print RIFF chunk file offset and RIFF chunk size of sample
53          data
54        - added and implemented new parameter "--verify" which allows to check
55          the raw wave form data integrity of all samples
56        - added and implemented new parameter "--rebuild-checksums" which allows
57          to recalculate the CRC32 checksum of all samples' raw wave data and
58          rebuilding the gig file's global checksum table (i.e. in case the
59          file's checksum table was damaged)
60        - print samples' CRC32 checksums
61    
62      * src/tools/gigextract.cpp:
63        - Fix: if sample name contains a path separator (slash or backslash) then
64          replace them by a minus sign to avoid file system issues.
65    
66      * src/tools/gig2stereo.cpp:
67        - Also merge mono sample pairs with non matching loop information if
68          argument --incompatible was given.
69    
70      * packaging changes:
71        - Automake: set environment variable GCC_COLORS=auto to allow GCC to
72          auto detect whether it (sh/c)ould output its messages in color.
73    
74    Version 4.0.0 (14 Jul 2015)
75      * general changes:
76        - minor Makefile fix for parallel make
77        - Mac OS X: link with CoreFoundation (for the UUID function)
78        - removed gcc 4.7 warnings
79        - modernized configure script
80        - removed usage of deprecated Automake variable INCLUDES
81        - added new command line tool "gigmerge"
82        - added "const" keyword to several methods
83        - added new command line tool "gig2mono"
84        - added man page for "sf2dump"
85        - added new command line tool "korgdump" (and a man page for it)
86        - added new command line tool "korg2gig" (and a man page for it)
87        - moved source files of command line tools to new subdir src/tools
88        - libgig.so and libakai.so files are now installed under
89          $(prefix)/lib/libgig/ by default.
90        - Header files are now installed under $(prefix)/include/libgig/ by default.
91        - Fixed various packaging issues regarding installation directories
92          (fixes #218).
93        - added new command line tool "gig2stereo" (and a man page for it)
94        - unit tests: fixed wrong return value when test suite app exits
95          (patch by Ryan Schmidt)
96        - added new command line tool "sf2extract" (and a man page for it)
97    
98      * SoundFont file format:
99        - initial implementation
100        - changed region lookup API to avoid malloc in RT threads
101        - fixed GetEG1Sustain which didn't return correct value
102        - bugfix: GetPan always returned -1, 0 or 1
103    
104      * KORG file format:
105        - initial support for sample based instruments in KORG's file format
106          (.KMP and .KSF files)
107    
108      * AKAI file format:
109        - Added Linux/POSIX ported version of libakai. Note that libakai is released
110          under LGPL terms while libgig is released under GPL terms. To handle this
111          license difference appropriately the AKAI support part is built as
112          separate DLL (.so file).
113        - Fixed Mac OSX support so that the Akai lib files and tools compile without
114          any exotic third party libraries.
115        - Fixed various compilation errors for Windows.
116        - POSIX fix: open() requires third (mode) argument if used with O_CREAT
117          (fixes #219).
118    
119      * src/gig.cpp:
120        - bugfix: VCF velocity dynamic range and VCF velocity curve
121          weren't saved correctly
122        - implemented File::AddDuplicateInstrument()
123        - bugfix: negative EG3 depth values were not correctly parsed or
124          saved
125        - added write support for CtrlTrigger midi rule
126        - added read and write support for Legato and Alternator midi
127          rules
128        - bugfix: sample groups were sometimes created multiple times or with
129          wrong textual group name
130        - added new method File::AddContentOf() for merging .gig files
131        - GIG FORMAT EXTENSION: added additional MIDI controllers for leverage
132          controller types (only works with LinuxSampler & gigedit, will not
133          work with Gigasampler/GigaStudio)
134        - added new method File::GetGroup(String name) for getting group by name
135        - added new method Region::GetDimensionDefinition(dimension_t type)
136        - bugfix: don't alter region pointer in DimensionRegion::CopyAssign()
137        - added some more sanity checks in Region::AddDimension()
138        - added new method Region::DeleteDimensionZone(dimension_t, int)
139        - added new method Region::SplitDimensionZone(dimension_t, int)
140        - Fixed crash caused by Region::GetDimensionRegionByValue() that happened
141          with certain velocity split sounds under certain conditions (added bound
142          constraints to prevent that)
143        - GIG FORMAT EXTENSION: added support for real-time instrument scripts.
144        - added new method Region::GetDimensionRegionIndexByValue()
145        - added new method Script::GetGroup()
146        - added new method Region::SetDimensionType()
147        - Added support for custom progress notification while saving to gig file.
148        - Bugfix: Adding a new region in between two existing regions caused the
149          new one being dropped after save operation and the gig file being tainted
150          (chunks at wrong location in the RIFF tree).
151        - Added new method Instrument::MoveTo() which allows to rearrange the order
152          of instruments within the same gig file.
153    
154      * src/DLS.cpp, src/DLS.h:
155        - added new method File::GetFileName()
156        - fixed minor "memory leak on exception" bug found with cppcheck
157        - added new method File::GetExtensionFile(int index)
158        - added new method File::SetFileName() allowing to call File::Save()
159          later on without passing a file name
160        - added inline helper methods overlaps() for struct range_t
161        - Added support for custom progress notification while saving to DLS file.
162        - Bugfix: Adding a new region in between two existing regions caused the
163          new one being dropped after save operation and the gig file being tainted
164          (chunks at wrong location in the RIFF tree).
165    
166      * src/SF.cpp, src/SF.h:
167        - added new method Sample::ReadNoClear()
168    
169      * src/RIFF.cpp, src/RIFF.h:
170        - bugfix: avoid calling read() with count 0 when writing a file,
171          as this may hang on some systems
172        - fixed memory leak and memory handling errors when file loading
173          fails
174        - added new method Chunk::ReadString
175        - added new method File::SetFileName() allowing to call File::Save()
176          later on without passing a file name
177        - added new method File::IsNew()
178        - added support for loading RIFF-like files with a bit different layout
179          than "real" RIFF files (used for KORG format support)
180        - added new method Chunk::GetFile()
181        - added new method Chunk::GetLayout()
182        - added 2nd, alternative method for List::MoveSubChunk(), the old 1st one
183          allows to move a subchunk within the current List, whereas the new 2nd
184          one allows to move the subchunk from the current list to another list
185        - POSIX: only assume -1 result value as error on open() calls
186        - POSIX: show operating system's error reason if opening a file failed
187        - Added support for custom progress notification while saving to RIFF file.
188        - Fixed embarrassing old bug: POSIX read() errors were never detected on
189          Chunk::Read() calls due to signment incompatible variable.
190        - Cleanup of an old DLL binary backward compatibility hack.
191    
192      * src/gigextract.cpp:
193        - export sample loop, unity note and fine tune with libsndfile
194    
195      * src/riftree.cpp:
196        - added more command line options for being able to also dump other kind
197          of file formats similar but not equal to the RIFF format
198    
199    Version 3.3.0 (30 Jul 2009)
200    
201      * general changes:
202        - fixed compilation with gcc 4.3
203        - fixes for building with Visual C++
204        - minor fix in configure for building DLL on Windows
205    
206      * src/gig.cpp, src/gig.h:
207        - added partial support for MIDI rules, only the Controller
208          Triggered rule is supported so far
209        - bugfix: removed another iterator invalidation in DeleteSample
210        - bugfix in Sample::LoadSampleData*(): reset sample read position to
211          sample start before trying to (re)load sample data from file (#82)
212        - bugfix: EG3 depth parameter was not saved correctly
213        - fixed crash which occured when streaming a gig sample with
214          bi-directional (a.k.a. 'pingpong') loop type (fixes #102)
215    
216      * src/RIFF.cpp, src/RIFF.h:
217        - bugfix: saving to the same file after the file size had been
218          increased made the file corrupt (#82)
219        - bugfix: refuse Chunk::Read() in case chunk has just been added, that
220          is not written physically yet (#82)
221        - bugfix: saving to the same file after the file size had been
222          decreased sometimes also made the file corrupt!
223        - bugfix: undefined behavior (e.g. endless loop) when opening zero
224          length files, now throws a RIFF::Exception instead (fixes bug #121)
225        - bugfix: destructor for base class RIFF::Chunk accessed members
226          of derived class RIFF::File, which is bad, and caused crashes
227          when using Visual C++
228        - bugfix: files that contain zero length RIFF lists were not read
229          correctly (fixes #127) (bug was introduced 2009-03-13)
230    
231    Version 3.2.1 (5 Dec 2007)
232    
233      * src/RIFF.cpp, src/RIFF.h:
234        - avoid Windows to perform unnecessary file stream caching which would
235          decrease disk streaming performance on Windows systems otherwise
236    
237      * src/gig.cpp, src/gig.h:
238        - added File::SetAutoLoad() and File::GetAutoLoad() for allowing
239          applications to retrieve very superficial informations like amount of
240          instruments and their names in a very fast way
241    
242    Version 3.2.0 (14 Oct 2007)
243    
244      * packaging changes:
245        - added Mac OSX XCode project files (patch by Toshi Nagata)
246        - Dev-C++ (win32) project file is automatically updated with
247          the version info from configure.in
248        - the configure script can now be used in Windows with MSYS
249        - added a mainpage for the Doxygen API documentation
250    
251      * src/DLS.cpp, src/DLS.h:
252        - added Sampler::AddSampleLoop() and Sampler::DeleteSampleLoop() methods
253        - fixed write support for big-endian systems
254        - improved handling of fixed length info strings - separate default
255          lengths can be specified for each INFO chunk
256        - added Resource::GenerateDLSID function
257        - write support fix: allow regions without mapped samples
258        - added method SetKeyRange() to the Region class which should be used
259          instead of setting the KeyRange member variable directly
260        - MoveRegion() method of Region class is now private
261        - added SetGain() method to Sampler class
262        - fixed crash when saving a file after a sample loop was added
263    
264      * src/gig.cpp, src/gig.h:
265        - fixed segmentation fault in the gig::File destructor sequence which
266          happened when gig::Group informations were accessed before
267        - fixed write support for big-endian systems
268        - defined lengths of a fixed set of info strings. These strings
269          are saved when the file is written, even if they are empty.
270        - added missing parameter initalizations in sample, region and
271          instrument constructors
272        - clear unused fields when saving samples and regions
273        - fixed write support bugs: v3 dimension limits and chunksize
274          weren't saved, leverage controller of type controlchange
275          couldn't be saved, group name list chunk was placed wrong,
276          dimension region chunks also placed wrong
277        - added initialization of some fixed info strings in file and
278          instrument
279        - write support: files created by libgig will now have the RIFF
280          chunks in correct order
281        - write support: two previously unknown fields in dimension
282          definition are now saved
283        - added constants for gig file versions
284        - write support: the 3crc and einf chunks are now created or
285          updated when a file is saved (3crc contains sample checksums,
286          einf contains file statistics)
287        - write support: DLSID is now generated on the file and the
288          instruments
289        - write support: improved the default values for dimension region
290          parameters
291        - more write support fixes: crossfade parameters were not saved,
292          v3 dimension limits were not correctly initialized and saved
293          when dimensions were added or deleted, v3 wave pool offsets were
294          not saved correctly
295        - write support: 24 bit samples can now be written
296        - write support: version 3 is now the default for new files
297        - more write support fixes: the 3ewg chunk is now bigger for v3,
298          dimension regions without mapped samples are now allowed, 3gnl
299          list in v3 files now always has 128 entries, several parameters
300          where incorrectly saved due to an operator precedence mistake
301        - DeleteSample now removes all references to the deleted sample
302        - AddDimension now copies all parameters from existing dimension
303          regions and also makes sure that the samplechannel dimension is
304          placed first in the list of dimensions.
305        - added method GetParent() to class 'DimensionRegion', which returns its
306          parent Region
307        - fixed Instrument::UpdateRegionKeyTable() method which did not reset
308          unused areas
309        - added various setter methods to DimensionRegion class which take care
310          of updating lookup tables / caches.
311    
312      * src/RIFF.cpp, src/RIFF.h:
313        - added File::SetByteOrder method
314        - Windows fix: saving a new file didn't work
315    
316      * src/gigdump.cpp:
317        - added some missing dimension strings
318    
319    Version 3.1.1 (24 Mar 2007)
320    
321    * packaging changes:    * packaging changes:
322      - ported to Windows using native Windows functions for file IO      - ported to Windows using native Windows functions for file IO
# Line 19  Version CVS HEAD (?) Line 337  Version CVS HEAD (?)
337      - fixed group names which were not saved      - fixed group names which were not saved
338      - fixed group destructor which did not remove the RIFF chunk associated      - fixed group destructor which did not remove the RIFF chunk associated
339        with the group        with the group
340        - added Instrument::MoveRegion method
341        - fixed constructor for Region, which did not initialize correctly
342          when used from Instrument::AddRegion
343        - when saving, override the gig::Regions sample reference simply by
344          the region's first dimension region's sample (avoids an exception
345          when trying to save a new instrument)
346        - fixed AddDimension() method which did not fill out all mandatory
347          dimension definition fields
348    
349      * src/DLS.cpp, src/DLS.h:
350        - added Instrument::MoveRegion method
351        - fixed software info field which was wrongly stored on instruments,
352          causing an exception when trying to save a new instrument
353    
354    * src/RIFF.cpp, src/RIFF.h:    * src/RIFF.cpp, src/RIFF.h:
355      - fixed RIFF::Chunk destructor which did not unregister previously      - fixed RIFF::Chunk destructor which did not unregister previously
356        resized chunks, leading to a "zero size chunk" exception when        resized chunks, leading to a "zero size chunk" exception when
357        File::Save() was called        File::Save() was called
358        - added List::MoveSubChunk method
359    
360  Version 3.1.0 (24 Nov 2006)  Version 3.1.0 (24 Nov 2006)
361    

Legend:
Removed from v.1099  
changed lines
  Added in v.3115

  ViewVC Help
Powered by ViewVC