2002-06-04 Josh Green * src/soundfont.c: Added more descriptions for generators in sfont_gen_info array. * src/soundfont.h: Fixed some bugs with new modulator constants. 2002-05-30 Josh Green * src/sfload.c: (sfload_pbags), (sfload_ibags): Modulators are now appended on load rather than prepended which would reverse the order. * src/soundfont.c: (sfont_zone_insert_mod): Updated to use new sfont_mod_list_insert routine. (sfont_genid_offset): New routine to offset a single generator amount. (sfont_mod_list_insert), (sfont_mod_list_free), (sfont_mod_list_default): New routines for manipulating modulator lists. 2002-05-28 Josh Green * src/sample.c: (method_BUFFER_read_func), (method_BUFFER_write_func): Fixed a critical bug with fread/fwrite size and nmemb parameters swapped, which caused a wrongful failure. 2002-05-27 Josh Green * autogen.sh: Added some switches to the automake command. * src/sample.c: Fixed some bugs and now using tmpfile () for sample swap buffer. * src/sfsave.c (sfsave_migrate_samples): Fixed some bugs. * src/soundfont.c (sfont_item_new): Item init routines weren't being called, fixed. (sfont_find_free_preset): Removed 'melodic' parameter in favor of input/output bank/psetnum parameters. The bank parameter can be pre-loaded with 128 for the same effect. (sfont_sfdata_init_func): Moved initialization from sfont_new and removed it. * src/soundfont.h: Added SFONT_CHECK_PARENT_TYPE and SFONT_IS_PARENT_* convenience macros. Added modulator flag definitions. 2002-04-30 Josh Green * src/sample.c: (sfont_sample_store_next), (sfont_sample_store_destroy), (sfont_sample_method_SFONT_set_params), (sfont_sample_method_SFONT_get_params), (method_SFONT_done_func), (method_SFONT_read_func), (method_BUFFER_init_func), (method_BUFFER_alloc_func), (method_BUFFER_free_func), (method_BUFFER_read_func), (method_BUFFER_write_func), (method_RAM_write_func), (sfont_sample_method_ROM_set_start), (sfont_sample_method_ROM_get_start): Added file handle ref counting support to SFSAMPLE_METHOD_SFONT, created a new SFSAMPLE_METHOD_ROM type to track ROM samples, SFSAMPLE_METHOD_BUFFER variable space is now smaller, and other stuff. * src/sffile.c: (sffile_start_transfer), (sffile_start_chunk), (sffile_end_chunk), (sffile_save_info), (sffile_save_sample_data), (sffile_save_sample), (sffile_save_phdr), (sffile_save_ihdr), (sffile_save_shdr), (sffile_save_bag), (sffile_save_chunk), (sffile_read), (sffile_write), (sffile_seek): Fixed lots of bugs for file saving which is now working for the first time. * src/sfload.c: (sfont_load), (sfload_callback), (sfload_pbags), (sfload_pgens), (sfload_ibags), (sfload_igens), (sfload_shdrs): Support for new file ref counting system, empty zones are no longer discarded, support for ROM samples, using a simplified routine to blank sample data. * src/sfsave.c: (sfont_save), (sfsave_migrate_samples), (sfsave_callback), (sfsave_infos), (sfsave_samples), (sfsave_phdrs), (sfsave_pbags), (sfsave_pmods), (sfsave_pgens), (sfsave_ihdrs), (sfsave_ibags), (sfsave_imods), (sfsave_igens), (sfsave_shdrs): Tons of bug fixes. Migrating samples implemented. Sound font saving is now working for the first time! * src/soundfont.c: (sfont_item_sink), (sfont_item_new), (sfont_item_insert_before), (sfont_item_unlink), (sfont_set_file_name), (sfont_set_file_info), (sfont_create_preset), (sfont_create_inst), (sfont_create_sample), (sfont_file_info_new), (sfont_file_info_ref), (sfont_file_info_unref), (sfont_sfdata_init_func), (sfont_sfdata_done_func), (sfont_sfdata_destroy_func), (sfont_preset_done_func), (sfont_preset_destroy_func), (sfont_preset_duplicate_func), (sfont_inst_done_func), (sfont_inst_destroy_func), (sfont_inst_duplicate_func), (sfont_sample_done_func), (sfont_sample_destroy_func), (sfont_sample_duplicate_func), (sfont_sample_set_blank_data), (sfont_sample_data_init_func), (sfont_sample_data_done_func), (sfont_sample_data_find_store), (sfont_sample_data_get_blank), (sfont_zone_done_func), (sfont_zone_duplicate_func): Fixed bugs relating to ref counting and items now have a "floating" ref count until they are parented. New routines for file ref counting. 2002-04-12 Josh Green * src/sfload.c (sfload_shdrs): Moved blank SFSampleData object generation to a public function called sfont_sample_data_get_blank. * src/soundfont.c: SFItem_FreeFunc pointers pointed to wrong function causing a recursive loop when an SFItem was freed. (sfont_find_free_preset): Added a preset sorting function as preset list is no longer automatically sorted. An error code is now returned. (sfont_sample_data_get_blank): New function that creates a blank minimum sized SFSampleData object, which is returned on successive invocations. * src/soundfont.h: sfont_find_free_preset now returns an int error code. New function `sfont_sample_data_get_blank' prototype. 2002-04-01 Josh Green * src/Makefile.am: Added sfpriv.h to build. * src/sfpriv.h: Created. For private definitions. * src/sample.c: Re-worked sample storage system, now allowing multiple storage methods for the same sample data. Changed a good bit of code here. * src/sffile.c: Updated to use new sample storage system. * src/sfload.c: Updated to use new sample storage system. * src/sfsave.c: Updated to use new sample storage system. * src/soundfont.c: Item callback function class made public and called SFItemTypeInfo. Added `init' and `done' functions to item class and removed `new' function (can now use alloc and init functions). Made `destroy` functions unlink objects only, freeing data is up to `done' function. * src/soundfont.h: Added SFItemTypeInfo and changed/added a bunch of function definitions.