2005-09-18  Josh Green  <jgreen@users.sourceforge.net>

	Applied Win32 build patch from Keishi Suenaga.

2005-09-17  Josh Green  <jgreen@users.sourceforge.net>

	Converted all IpatchItem "describe" methods to "title" type properties.
	Lots of other changes which I don't feel like describing today :)

	libinstpatch/IpatchItem.c: Removed "describe" method and functions, now
	replaced by "title" type property, changed implimentations throughout.
	libinstpatch/IpatchSample.c: Added some IpatchSample interface helper
	functions for use by IpatchSampleData based interfaces.  New loop_types
	field of IpatchSampleIface to describe what loop types an interface
	supports.  Updated all IpatchSample interfaces.
	libinstpatch/IpatchDLSReader.c: Fixed an allocation bug with
	IpatchDLS2SampleInfo in IpatchGigSubRegion objects which was causing
	crashes.
	libinstpatch/IpatchGig.c: Added virtual container child types.
	libinstpatch/IpatchTypeProp.c: Added a "link-item" property
	libinstpatch/IpatchSF2.c: Bug fix with virtual child list.

2005-08-26  Josh Green  <jgreen@users.sourceforge.net>

	Updates to python binding.  Created a IpatchContainer.add () method,
	fixed a bunch of bugs with mis-named constructor types (made it
	impossible to instantiate many types).  Attempted to create a binding
	for the IpatchRange boxed type.

	libinstpatch/IpatchAudioFile.c: Fixed an endian related bug (virtual
	format must be set, otherwise it defaults to the host endian order),
	less Nazi loop handling, if a conversion is required (non multiple of
	8 bit width) then convert to native endian also.
	libinstpatch/IpatchDLSReader.c: Fixed another endian related bug that
	was causing DLS and Gig files to fail on big endian machines.
	libinstpatch/IpatchSF2IZone.c: Fixed some property related bugs.
	libinstpatch/IpatchSF2PZone.c: Fixed some more property bugs.
	libinstpatch/IpatchSF2VoiceCache.c (ipatch_sf2_voice_cache_select):
	Fixed a crash bug when no voices have been added to the cache.
	libinstpatch/IpatchSF2Zone.c: Added ipatch_sf2_zone_set_key_range and
	ipatch_sf2_zone_set_velocity_range.
	libinstpatch/IpatchSampleData.c: Added
	ipatch_sample_data_ref_primary_store.
	libinstpatch/IpatchSampleStore.c (ipatch_sample_store_copy): Now allow
	source sample store to be smaller than destination.
	IpatchVirtualContainer_types.c: Added Gig virtual container types back in.
	libinstpatch/misc.c: Initializing Gig virtual container types.

2005-08-24  Josh Green  <jgreen@users.sourceforge.net>

        libinstpatch/IpatchSF2VoiceCache_DLS.h: Forgot to add defines for the
        DLS2Region voice synthesis converter.

2005-08-23  Josh Green  <jgreen@users.sourceforge.net>

        autogen.sh: Now checks to see if binaries exist, runs libtoolize and
        outputs an error message if any commands fail.
        configure.ac: PKG_CHECK_MODULES is done for pygtk if pygobject not
        found (for pygtk versions that don't install a pygobject pkg-config file).
        libinstpatch/IpatchSF2VoiceCache_DLS.c: Added basic DLS2Inst SF2
        voice cache synthesis.

2005-08-22  Josh Green  <jgreen@users.sourceforge.net>

        configure.ac: PYGTK now uses pygobject-2.0 instead which removes GTK
        dependency for Python binding.
        libinstpatch/IpatchSF2VoiceCache_Gig.c: Added IpatchGigSample voice cache
        synthesis converter.
        libinstpatch/IpatchSF2VoiceCache_DLS.[ch]: New files, with a
        IpatchDLS2Sample voice cache synthesis converter.

2005-08-17  Josh Green  <jgreen@users.sourceforge.net>

        Virtual container types added for DLS2, SF2, SF2Sample and Gig. Virtual
        containers are used for grouping items in a user friendly manner, for
        example: DLS2 objects have Melodic, Percussion and Sample virtual types
        which would contain Melodic Instruments, Percussion Instruments and
        Samples respectively in a user interface.

        libinstpatch/IpatchContainer.c: Added ipatch_container_get_virtual_types
        which will retrieve a list of virtual container types (grouping for user
        interfaces).
        libinstpatch/IpatchCramDecoderConverter: Added "strip-paths" property
        which will strip all path components from extracted files.
        libinstpatch/IpatchCramFile.c: Fixed bug in IpatchCramFile
        identification method which caused CRAM files to not be identified.
        libinstpatch/IpatchDLS2Inst.c: Added "percussion" property, and
        percussion flag no longer stored in Bank.
        libinstpatch/IpatchDLSReader.c: Heavily modified Gig loading code to
        account for the fact that IpatchGigRegion is no longer inherited from
        IpatchDLS2Region.
        libinstpatch/IpatchDLSWriter.c: Heavily modified Gig writing code to
        account for the fact that IpatchGigRegion is no longer inherited from
        IpatchDLS2Region.
        libinstpatch/IpatchGig.c: Now returns IpatchGigInst and IpatchGigSample
        as child types (overrides IpatchDLS2).
        libinstpatch/IpatchGigEffects.c: Added ipatch_gig_effects_init to
        initialize a Gig effects structure.
        libinstpatch/IpatchGigRegion.c: No longer inhereted from
        IpatchDLS2Region, so some code is now duplicated.  Also dimensions and
        sub regions now are now objects.  Renamed
        ipatch_gig_region_add_dimension to ipatch_gig_region_new_dimension.
        libinstpatch/IpatchItem.c: Added mutex inheritence so that a child item
        can inherit its parent's mutex, thereby saving space and simplifying
        locking.  Currently used for IpatchGigSubRegion and IpatchGigDimension
        child objects of IpatchGigRegion.
        libinstpatch/IpatchIter.c: Added array iterator type, split iterator
        private access macros into GET and SET variants for all iterator types.
        libinstpatch/IpatchParamProp.c: Added a "unit-type" parameter property to
        specifiy what units (IpatchUnits.[ch]) a parameter uses.
        libinstpatch/IpatchSF2Gen.c: Fixed a 64 bit constant bug with generator
        add mask that was affecting ipatch_sf2_gen_array_offset and causing
        incorrect results of generator sumation (velocity/key ranges were
        being added and other valid generators were not!).
        libinstpatch/IpatchSF2Preset.c: Added "percussion" property.
        libinstpatch/IpatchSF2Zone.c: Generator "unit-type" parameter
        properties are now being set.
        libinstpatch/IpatchTypeProp.[ch]: Added dynamic type property functions
        which get called when retrieving a type property and handles returning
        the value.  Added "category", "virtual-parent-type", and "sort-children"
        type properties.  Added some default type categories. Added 
        ipatch_type_object_get, ipatch_type_object_get_valist,
        ipatch_type_object_get_property, and ipatch_type_register_func.
        libinstpatch/misc.c: Type properties like "name", "blurb", "category",
        "virtual-parent-type" and "sort-children" now set for built in types.
        libinstpatch/libinstpatch.h.in: Added G_BEGIN_DECLS and G_END_DECLS,
        probably should add to every header file though.

2005-06-24  Josh Green  <jgreen@users.sourceforge.net>

	Improved finalization for many object types.  SF2Voices replaced with
	IpatchSF2VoiceCache.

	libinstpatch/IpatchAudioFile.c (ipatch_audio_file_open): Added support
	for reading and writing loop and instrument info.
	libinstpatch/IpatchBase.c: Removed ipatch_base_save which has been
	superceded by IpatchConverter system, added
	ipatch_base_find_item_by_midi_locale_ref for finding a child item by
	MIDI locale.
	libinstpatch/IpatchContainer.c: Added ipatch_container_remove_all and
	now using it at container finalization.
	libinstpatch/IpatchGigEffects.c: Unknown info now loaded and preserved.
	libinstpatch/IpatchSF2VoiceCache.c: Some bug fixes and improvements.
	libinstpatch/IpatchSF2VoiceCache_SF2.c: Now working.
	libinstpatch/IpatchSF2VoiceCache_Gig.c: Also working :)

2005-05-06  Josh Green  <jgreen@users.sourceforge.net>

	Moved IPATCH_SF2_DEFAULT_NAME to IPATCH_BASE_DEFAULT_NAME. Default
	name now set for DLS and GigaSampler files. Added "name" and "blurb"
	IpatchTypeProp properties for defining user friendly name and
	descriptions for GTypes and defined for SF2, DLS2 and Gig types.

2005-05-02  Josh Green  <jgreen@users.sourceforge.net>

	Added IpatchGigSample, IpatchIfaceProp (interface properties),
	IpatchParamProp (GParamSpec properties) and IpatchTypeProp (GType
	properties).  Copyright message updated in all files and changed
	GPL license text to only allow use of version 2 (in case of future
	license corruptions).  GigaSampler saving is working now and many
	improvements in DLS/Gig loader as well.  Added software and comment
	fields to CRAM header and bumped format version to 2.  Added
	properties to IpatchCramDecoder.  IpatchCramDecoderConverter now
	passes property requests to IpatchCramDecoder.  Added a get_size
	method to IpatchFile and ipatch_file_get_size() function to use it.
	Added a ipatch_file_buf_memset() function, ipatch_file_buf_zero
	is now just a macro using this function.  Bug fixes in item_copy
	methods for DLS/Gigasampler.  Unknown GigaSampler fields are now
	preserved.  Improved cram utility statistics and added flag to set
	comment and a file list mode.

2004-12-14  Josh Green  <jgreen@users.sourceforge.net>

	Lots of changes to sample related property names and loop types. Lots
	of other property changes in regards to new IpatchParam extended
	properties - max string lengths, unique tagging, etc. Many objects
	now have IpatchSample interfaces.

	* libinstpatch/IpatchSample.[ch]: New - basic sample interface which
	is now implemented by IpatchDLS2Region, IpatchDLS2Sample,
	IpatchSF2IZone, IpatchSF2Sample, IpatchSampleData and IpatchSampleFile.
	* libinstpatch/IpatchUnit_generic.[ch]: New - generic unit definitions
	and functions moved out of IpatchUnit.[ch].
	* libinstpatch/IpatchItem.[ch]: Added a pre_prop_notify_hook which gets
	called before an IpatchItem property changes, and the symantics of
	prop_notify_hook have now been changed so it is called after the
	property has changed.
	* libinstpatch/IpatchParam.[ch]: Added functions for adding extended
	properties to GParamSpec types and created some standard properties
	"string-max-length" to specify max length of strings and
	"unique-group-id" for specifying a group of properties that define
	a unique key - an example is Bank:Preset numbers, IPATCH_PARAM_UNIQUE
	flag added to indicate unique properties.
	* libinstpatch/IpatchSampleTransform.c: Max frames that can be converted
	at a time with an IpatchSampleTransform can now be retrieved and other
	changes.

2004-11-19  Josh Green  <jgreen@users.sourceforge.net>

	* libinstpatch/IpatchDLS2Sample.c (ipatch_dls2_sample_find_store_ref):
	Added sample format parameter.
	* libinstpatch/IpatchSF2Sample.c (ipatch_sf2_sample_find_store_ref):
	Added sample format parameter.
	* libinstpatch/IpatchSampleData (ipatch_sample_data_find_store_ref):
	Added format parameter and IPATCH_SAMPLE_DATA_FIND_EXACT_FORMAT flag.
	* libinstpatch/IpatchSampleStore.c (ipatch_sample_store_duplicate):
	Added sample format parameter.
	* libinstpatch/sample.c: Fixed bugs in sample endian swapping
	functions (swap16/32/64).

2004-11-08  Josh Green  <jgreen@users.sourceforge.net>

	Documentation updates.
	Container child_types method changed.

	* configure.ac: PyGtk codegen dir now fetched with pkg-config.
	* python/Makefile.am: PyGtk codegen dir now fetched with pkg-config.
	* libinstpatch/IpatchContainer.c: Removed n_children fields from
	ipatch_container_get_child_types, ipatch_container_type_get_child_types
	and class method.

2004-11-07  Josh Green  <jgreen@users.sourceforge.net>

	* ac_python_devel.m4: AC_PYTHON_DEVEL for detecting python support.
	* configure.ac: Updated to use AC_PYTHON_DEVEL in ac_python_devel.m4.
	* libinstpatch/IpatchConvert_Gig.c: Added Gig file load converter.
	* libinstpatch/IpatchDLS2Region.c: Regions now use IpatchRange type
	for velocity and note range.
	* libinstpatch/IpatchDLSReader.c: Fixed bug with stereo sample sizes,
	no more debug spew for unknown chunks.
	* libinstpatch/IpatchSampleFile.c: "channels" property changed to
	integer type and updated for new sample format channels value.
	* libinstpatch/IpatchSampleStore.c: "channels" property changed to
	integer type and updated for new sample format channels value.
	* libinstpatch/IpatchSampleTransform.c: Updated for new sample format
	channels value.
	* libinstpatch/sample.c: Fixed bug with stereo to mono convert
	functions, updated for new sample format channels value.
	* libinstpatch/sample.h: Values for sample format channels changed to
	the number of channels - 1 and a new field added for channel routing.
	* python/Makefile.am: Updated to use new defines from AC_PYTHON_DEVEL.

2004-10-28  Josh Green  <jgreen@users.sourceforge.net>

	"-ref" was removed from all object properties with this naming
	convention since GValue already references returned objects.

2004-09-16  Josh Green  <jgreen@users.sourceforge.net>

	Release: 1.0.0beta-20040917
	* examples/create_sf2.py: Updated for latest API changes and to match
	functionality of C equivelent create_sf2.c.

2004-09-16  Josh Green  <jgreen@users.sourceforge.net>

	* examples/create_sf2.c: Updated SoundFont creation example to
	also create Instruments and Presets for the added samples.
	* libinstpatch/IpatchSF2Inst.c (ipatch_sf2_inst_create_zone): Killed
	the return value for ultra convenience (unref not needed).
	* libinstpatch/IpatchSF2Preset.c (ipatch_sf2_preset_create_zone):
	Killed the return value for ultra convenience (unref not needed).

2004-09-15  Josh Green  <jgreen@users.sourceforge.net>

	Documentation updates.

	* libinstpatch/IpatchAudioFile.c: Bug fixes.
	* libinstpatch/IpatchConvert_SF2.c: Improved IpatchSampleFile to
	IpatchSF2Sample conversion.
	* libinstpatch/IpatchConverter.[ch]: Renamed ipatch_lookup_converter to
	ipatch_find_converter and added find flag fields to parameters.
	* libinstpatch/IpatchSampleData.h: Renamed IpatchSampleStoreFindFlags
	to IpatchSampleDataFindFlags.
	* libinstpatch/IpatchSF2Writer.c: Samples now written with "untitled%d"
	string if it has no name, also fixes crash bug.
	* libinstpatch/IpatchSampleTransform.c: Bug fixes and new function
	ipatch_sample_transform_free_buffers.
	* examples/create_sf2.py: New Python example for creating a SoundFont
	from sample files.
	* examples/create_sf2.c: New C example for creating a SoundFont from
	sample files.

2004-09-01  Josh Green  <jgreen@users.sourceforge.net>

	Documentation updates.

	* libinstpatch/sample.[ch]: Re-worked sample format integer to
	describe complete sample format (width/type, sign, endian, channels).
	Moved sample format related functions to sample.c and created
	conversion functions for converting between any supported format with
	a routine to create an array of function pointers required for a
	conversion.
	* libinstpatch/IpatchSampleTransform.[ch]: A new sample format
	conversion object.
	* libinstpatch/IpatchSampleStoreVirtual.[ch]: The beginnings of a
	virtual sample store, which will support simple edit lists and format
	conversions.
	* libinstpatch/IpatchConverter_priv.h: Some private macros for more
	easily defining IpatchConverter types.
	* libinstpatch/IpatchAudioFile.h: Removed virtual file support, since
	we are handling format conversion internally. Added a method for
	getting a list of supported save file types. Re-wrote sections of open
	method to use native audio format since virtual IpatchSampleFile
	support has been ditched.
	* libinstpatch/IpatchConvert_DLS2.c: Now using helper macros to
	simplify creation of converter types. Added a IpatchSampleFile to
	IpatchDLS2Sample converter. Updated init routine for
	ipatch_register_converter changes.
	* libinstpatch/IpatchConvert_SF2.c: Added a IpatchSampleFile to
	IpatchSF2Sample converter. Updated init routine for
	ipatch_register_converter changes. Now using converter helper macros
	in IpatchConverter_priv.h.
	* libinstpatch/IpatchConverter.c: Added fields for expected source and
	destination item counts to converter registration system and updated
	the ipatch_register_converter function and changed/renamed
	ipatch_lookup_converter_type to ipatch_lookup_converter_info to
	handle this additional information. Updated verify routine to check
	items based on the item count and type information if the verify
	method is NULL.
	* libinstpatch/IpatchDLSReader.c: Updated for new sample format system.
	* libinstpatch/IpatchDLSWriter.c: Updated to use new sample conversion
	system.
	* libinstpatch/IpatchSF2Reader.c: Updated for new sample format system.
	* libinstpatch/IpatchSF2Writer.c: Updated to use new sample conversion
	system.
	* libinstpatch/IpatchSampleData.[ch]: Updated for new sample format
	system.
	* libinstpatch/IpatchSampleFile.[ch]: Removed virtual sample format
	parameters (we now do this internally). Updated for new sample format
	system.
	* libinstpatch/IpatchSampleStore.[ch]: Updated for new sample format
	system. Added convenience functions for converting audio format
	to/from sample stores.

2004-07-16  Josh Green  <jgreen@users.sourceforge.net>

	* libinstpatch/IpatchConvert_SF2.c: Fixed bug in verify method
	template macro.
	* libinstpatch/IpatchConverter.c: Added a function to lookup
	source and destination conversion types for a given converter
	type.
	* python/ipatchmodule.c: Added #define NO_IMPORT_PYGOBJECT since
	it fixes build on MAC OS X related to duplicate symbols. Not real
	sure what this define is for though.
	
2004-07-15  Josh Green  <jgreen@users.sourceforge.net>

	Fixed bug in IpatchSF2Reader.c that affected big endian machines (Mac
	OS X in particular).

2004-07-14  Josh Green  <jgreen@users.sourceforge.net>

	Renamed Cram* to IpatchCram* to fix python binding and just to
	integrate the beast. Renamed IpatchSF2Loader to IpatchSF2Reader
	and IpatchDLSLoader to IpatchDLSReader. Created converters for
	loading/saving SoundFont and DLS files. Ditched libsndfile support
	in favor of requiring libaudiofile and added IpatchSampleFile
	support for libaudiofile with virtual format conversion for files
	and IpatchSampleStore objects! Renamed IpatchSampleStoreFormat to
	IpatchSampleFormat and moved it to misc.h. Documentation updates.

	* libinstpatch/IpatchConverter.c: Lookups for registered handlers
	now looks for derived types as well and finds the best match. Also
	added an init() method for converters that want to intialize
	parameters based on input/output objects.
	* libinstpatch/IpatchFile.c: Removed load_object method in favor
	of IpatchConverter system.
	* libinstpatch/IpatchSampleFile.c: Cleaned up sample format and
	virtual sample format parameters.

2004-07-06  Josh Green  <jgreen@users.sourceforge.net>

	Mucking around with gettext stuff. Hopefully everything is set up
	right now (what a pain!).

2004-07-06  Josh Green  <jgreen@users.sourceforge.net>

	Build updates to intl and po gettext stuff.
	* libinstpatch/IpatchConverter.c: Documentation updates.
	* libinstpatch/IpatchRange.c: Now setting value_type field of
	GParamSpec to IPATCH_TYPE_RANGE (what a GBoxed type should do).
	* libinstpatch/misc.h: Bug fix to G_HAVE_GNUC_VARARGS version of
	ipatch_code_error macro.

2004-07-03  Josh Green  <jgreen@users.sourceforge.net>

	Release: 1.0.0beta-20040703
	Documentation updates (looking pretty sweet).

2004-07-02  Josh Green  <jgreen@users.sourceforge.net>

	Dude, I have been bad about the ChangeLog updates! FlacPak is now
	Cram and the format has been re-written to be extendable (thanks
	to EBML) and support multiple files in an archive with paths. The
	IpatchConverter is now being used for the Cram decoder/encoder to
	convert between IpatchFile and CramFile types. The cram command
	line utility is working but needs some work in relation to
	progress and statistic output.

2004-01-25  Josh Green  <jgreen@users.sourceforge.net>

	Renamed ipatch_sf2_write to ipatch_sf2_writer_save and swapped
	IpatchSF2File and IpatchSF2 parameters in ipatch_sf2_writer_new.
	Both changes made to get Python binding to work correctly.

2004-01-21  Josh Green  <jgreen@users.sourceforge.net>

	Removed include of convert.h, which no longer exists, from
	libinstpatch.h.in. Changed python/Makefile.am to not be broken in
	regards to generating defs.

2004-01-18  Josh Green  <jgreen@users.sourceforge.net>

	Removed IpatchConvert from build until its working, fixed a
	bug that made zone generator properties unusable, also changed
	python binding Makefile to generate the defs file if it doesn't
	already exist.

2003-12-13  Josh Green  <jgreen@users.sourceforge.net>

	Lots of bug fixes to SoundFont writer (was pretty much unusable,
	gotta test those things :)

2003-12-11  Josh Green  <jgreen@users.sourceforge.net>

	Removed old object conversion interface and created new
	IpatchConverter object and conversion registry. Some bug fixes to
	SoundFont FlacPak encoder handler.

2003-12-03  Josh Green  <jgreen@users.sourceforge.net>

	Many bug fixes with FlacPak including a problem with MD5 function
	name clashes with FLAC causing memory leaks, fixes to compressing
	or decompressing multiple files, improved statistic functionality
	with FlacPakEncoder, better text output from flacpak utility and
	some bugs with the SoundFont FlacPak handler.

2003-12-01  Josh Green  <jgreen@users.sourceforge.net>

	FlacPak is on the scene (libinstpatch/FlacPak*), dynamically generating
	libinstpatch.h since FlacPak is optional, split IpatchFileBuf stuff
	into separate C file, many bug fixes to IpatchFile routines, made
	many IpatchDLSLoader routines public (still needs some work), added
	a flacpak command line program to utils/.

2003-10-03  Josh Green  <jgreen@users.sourceforge.net>

	Lots of things have changed, finally getting around to importing
	this lot into CVS.


2003-08-29  Josh Green  <jgreen@users.sourceforge.net>

	libInstPatch is now its own package, check Swami changelog for earlier
	history.
