Hello community, here is the log from the commit of package fluidsynth for openSUSE:Factory checked in at 2019-10-14 12:32:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fluidsynth (Old) and /work/SRC/openSUSE:Factory/.fluidsynth.new.2352 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fluidsynth" Mon Oct 14 12:32:34 2019 rev:46 rq:737235 version:2.0.7 Changes: -------- --- /work/SRC/openSUSE:Factory/fluidsynth/fluidsynth.changes 2019-08-27 15:22:06.524819049 +0200 +++ /work/SRC/openSUSE:Factory/.fluidsynth.new.2352/fluidsynth.changes 2019-10-14 12:32:35.516098292 +0200 @@ -1,0 +2,8 @@ +Thu Oct 10 17:25:18 UTC 2019 - Tom Mbrt <[email protected]> + +- Update to 2.0.7 + * fix broken audio output when reverb was active after synth creation + * fix debug console messages not being visible for debug builds on + Windows + +------------------------------------------------------------------- Old: ---- fluidsynth-2.0.6.tar.gz New: ---- fluidsynth-2.0.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fluidsynth.spec ++++++ --- /var/tmp/diff_new_pack.mr0Z6D/_old 2019-10-14 12:32:36.376096043 +0200 +++ /var/tmp/diff_new_pack.mr0Z6D/_new 2019-10-14 12:32:36.380096032 +0200 @@ -24,7 +24,7 @@ %endif Name: fluidsynth -Version: 2.0.6 +Version: 2.0.7 Release: 0 Summary: A Real-Time Software Synthesizer That Uses Soundfont(tm) License: LGPL-2.1-or-later ++++++ fluidsynth-2.0.6.tar.gz -> fluidsynth-2.0.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.0.6/CMakeLists.txt new/fluidsynth-2.0.7/CMakeLists.txt --- old/fluidsynth-2.0.6/CMakeLists.txt 2019-08-17 18:01:01.000000000 +0200 +++ new/fluidsynth-2.0.7/CMakeLists.txt 2019-09-27 16:53:27.000000000 +0200 @@ -29,7 +29,7 @@ # FluidSynth package version set ( FLUIDSYNTH_VERSION_MAJOR 2 ) set ( FLUIDSYNTH_VERSION_MINOR 0 ) -set ( FLUIDSYNTH_VERSION_MICRO 6 ) +set ( FLUIDSYNTH_VERSION_MICRO 7 ) set ( VERSION "${FLUIDSYNTH_VERSION_MAJOR}.${FLUIDSYNTH_VERSION_MINOR}.${FLUIDSYNTH_VERSION_MICRO}" ) set ( FLUIDSYNTH_VERSION "\"${VERSION}\"" ) @@ -43,8 +43,8 @@ # if any interfaces have been removed/changed (compatibility broken): AGE=0 # This is not exactly the same algorithm as the libtool one, but the results are the same. set ( LIB_VERSION_CURRENT 2 ) -set ( LIB_VERSION_AGE 1 ) -set ( LIB_VERSION_REVISION 3 ) +set ( LIB_VERSION_AGE 2 ) +set ( LIB_VERSION_REVISION 0 ) set ( LIB_VERSION_INFO "${LIB_VERSION_CURRENT}.${LIB_VERSION_AGE}.${LIB_VERSION_REVISION}" ) @@ -189,7 +189,7 @@ endif (CMAKE_C_COMPILER_ID STREQUAL "Intel" ) # prepend to build type specific flags, to allow users to override - set ( CMAKE_C_FLAGS_DEBUG "-g -DDEBUG -fsanitize=undefined ${CMAKE_C_FLAGS_DEBUG}" ) + set ( CMAKE_C_FLAGS_DEBUG "-g ${CMAKE_C_FLAGS_DEBUG}" ) endif ( CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID STREQUAL "Clang" OR CMAKE_C_COMPILER_ID STREQUAL "Intel" ) @@ -385,10 +385,9 @@ endif ( NOT CMAKE_BUILD_TYPE ) unset ( ENABLE_DEBUG CACHE ) -unset ( DEBUG CACHE ) if ( CMAKE_BUILD_TYPE MATCHES "Debug" ) set ( ENABLE_DEBUG 1 ) - set ( DEBUG 1 ) + add_definitions(-DDEBUG) endif ( CMAKE_BUILD_TYPE MATCHES "Debug" ) # Additional targets to perform clang-format/clang-tidy diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.0.6/doc/Doxyfile new/fluidsynth-2.0.7/doc/Doxyfile --- old/fluidsynth-2.0.6/doc/Doxyfile 2019-08-17 18:01:01.000000000 +0200 +++ new/fluidsynth-2.0.7/doc/Doxyfile 2019-09-27 16:53:27.000000000 +0200 @@ -5,7 +5,7 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = libfluidsynth -PROJECT_NUMBER = 2.0.6 +PROJECT_NUMBER = 2.0.7 OUTPUT_DIRECTORY = api CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.0.6/doc/fluidsynth-v20-devdoc.txt new/fluidsynth-2.0.7/doc/fluidsynth-v20-devdoc.txt --- old/fluidsynth-2.0.6/doc/fluidsynth-v20-devdoc.txt 2019-08-17 18:01:01.000000000 +0200 +++ new/fluidsynth-2.0.7/doc/fluidsynth-v20-devdoc.txt 2019-09-27 16:53:27.000000000 +0200 @@ -8,8 +8,8 @@ \author David Henningsson \author Tom Moebert \author Copyright © 2003-2019 Peter Hanappe, Conrad Berhörster, Antoine Schmitt, Pedro López-Cabanillas, Josh Green, David Henningsson, Tom Moebert -\version Revision 2.0.6 -\date 2019-08-17 +\version Revision 2.0.7 +\date 2019-09-25 All the source code examples in this document are in the public domain; you can use them as you please. This document is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ . The FluidSynth library is distributed under the GNU Lesser General Public License. A copy of the GNU Lesser General Public License is contained in the FluidSynth package; if not, visit http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt or write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. @@ -21,6 +21,7 @@ - \ref Disclaimer - \ref Introduction +- \ref NewIn2_0_7 - \ref NewIn2_0_6 - \ref NewIn2_0_5 - \ref NewIn2_0_3 @@ -64,6 +65,11 @@ - FluidSynth is open source, in active development. For more details, take a look at http://www.fluidsynth.org + +\section NewIn2_0_7 Whats new in 2.0.7? + +- fluid_free() has been added to allow proper deallocation by programming languages other than C/C++ + \section NewIn2_0_6 Whats new in 2.0.6? - the MIDI player did not emit any audio when calling fluid_player_play() after fluid_player_stop() @@ -376,7 +382,6 @@ settings = new_fluid_settings(); synth = new_fluid_synth(settings); player = new_fluid_player(synth); - adriver = new_fluid_audio_driver(settings, synth); /* process command line arguments */ for (i = 1; i < argc; i++) { if (fluid_is_soundfont(argv[i])) { @@ -386,6 +391,8 @@ fluid_player_add(player, argv[i]); } } + /* start the synthesizer thread */ + adriver = new_fluid_audio_driver(settings, synth); /* play the midi files, if any */ fluid_player_play(player); /* wait for playback termination */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.0.6/doc/fluidsynth_arpeggio.c new/fluidsynth-2.0.7/doc/fluidsynth_arpeggio.c --- old/fluidsynth-2.0.6/doc/fluidsynth_arpeggio.c 2019-08-17 18:01:01.000000000 +0200 +++ new/fluidsynth-2.0.7/doc/fluidsynth_arpeggio.c 2019-09-27 16:53:27.000000000 +0200 @@ -119,19 +119,18 @@ { /* create the synth, driver and sequencer instances */ synth = new_fluid_synth(settings); - audiodriver = new_fluid_audio_driver(settings, synth); - sequencer = new_fluid_sequencer(); - /* register the synth with the sequencer */ - synth_destination = fluid_sequencer_register_fluidsynth(sequencer, - synth); - /* register the client name and callback */ - client_destination = fluid_sequencer_register_client(sequencer, - "arpeggio", sequencer_callback, NULL); /* load a SoundFont */ n = fluid_synth_sfload(synth, argv[1], 1); if(n != -1) { + sequencer = new_fluid_sequencer(); + /* register the synth with the sequencer */ + synth_destination = fluid_sequencer_register_fluidsynth(sequencer, + synth); + /* register the client name and callback */ + client_destination = fluid_sequencer_register_client(sequencer, + "arpeggio", sequencer_callback, NULL); if(argc > 2) { n = atoi(argv[2]); @@ -152,6 +151,8 @@ } } + audiodriver = new_fluid_audio_driver(settings, synth); + /* get the current time in ticks */ time_marker = fluid_sequencer_get_tick(sequencer); /* schedule patterns */ @@ -164,8 +165,8 @@ } /* clean and exit */ - delete_fluid_sequencer(sequencer); delete_fluid_audio_driver(audiodriver); + delete_fluid_sequencer(sequencer); delete_fluid_synth(synth); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.0.6/doc/fluidsynth_metronome.c new/fluidsynth-2.0.7/doc/fluidsynth_metronome.c --- old/fluidsynth-2.0.6/doc/fluidsynth_metronome.c 2019-08-17 18:01:01.000000000 +0200 +++ new/fluidsynth-2.0.7/doc/fluidsynth_metronome.c 2019-09-27 16:53:27.000000000 +0200 @@ -105,19 +105,22 @@ { /* create the synth, driver and sequencer instances */ synth = new_fluid_synth(settings); - audiodriver = new_fluid_audio_driver(settings, synth); - sequencer = new_fluid_sequencer(); - /* register the synth with the sequencer */ - synth_destination = fluid_sequencer_register_fluidsynth(sequencer, - synth); - /* register the client name and callback */ - client_destination = fluid_sequencer_register_client(sequencer, - "fluidsynth_metronome", sequencer_callback, NULL); + /* load a SoundFont */ n = fluid_synth_sfload(synth, argv[1], 1); if(n != -1) { + sequencer = new_fluid_sequencer(); + /* register the synth with the sequencer */ + synth_destination = fluid_sequencer_register_fluidsynth(sequencer, + synth); + /* register the client name and callback */ + client_destination = fluid_sequencer_register_client(sequencer, + "fluidsynth_metronome", sequencer_callback, NULL); + + audiodriver = new_fluid_audio_driver(settings, synth); + if(argc > 2) { n = atoi(argv[2]); @@ -150,8 +153,8 @@ } /* clean and exit */ - delete_fluid_sequencer(sequencer); delete_fluid_audio_driver(audiodriver); + delete_fluid_sequencer(sequencer); delete_fluid_synth(synth); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.0.6/include/fluidsynth/misc.h new/fluidsynth-2.0.7/include/fluidsynth/misc.h --- old/fluidsynth-2.0.6/include/fluidsynth/misc.h 2019-08-17 18:01:01.000000000 +0200 +++ new/fluidsynth-2.0.7/include/fluidsynth/misc.h 2019-09-27 16:53:27.000000000 +0200 @@ -62,6 +62,7 @@ FLUIDSYNTH_API int fluid_is_soundfont(const char *filename); FLUIDSYNTH_API int fluid_is_midifile(const char *filename); +FLUIDSYNTH_API void fluid_free(void* ptr); #ifdef __cplusplus diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.0.6/src/synth/fluid_synth.c new/fluidsynth-2.0.7/src/synth/fluid_synth.c --- old/fluidsynth-2.0.6/src/synth/fluid_synth.c 2019-08-17 18:01:01.000000000 +0200 +++ new/fluidsynth-2.0.7/src/synth/fluid_synth.c 2019-09-27 16:53:27.000000000 +0200 @@ -131,11 +131,6 @@ static void fluid_synth_reset_basic_channel_LOCAL(fluid_synth_t *synth, int chan, int nbr_chan); static int fluid_synth_check_next_basic_channel(fluid_synth_t *synth, int basicchan, int mode, int val); static void fluid_synth_set_basic_channel_LOCAL(fluid_synth_t *synth, int basicchan, int mode, int val); -static int fluid_synth_set_reverb_full_LOCAL(fluid_synth_t *synth, int set, double roomsize, - double damping, double width, double level); - -static int fluid_synth_set_chorus_full_LOCAL(fluid_synth_t *synth, int set, int nr, double level, - double speed, double depth_ms, int type); /*************************************************************** * @@ -896,7 +891,7 @@ fluid_settings_getnum(settings, "synth.reverb.width", &width); fluid_settings_getnum(settings, "synth.reverb.level", &level); - fluid_synth_set_reverb_full_LOCAL(synth, + fluid_synth_set_reverb_full(synth, FLUID_REVMODEL_SET_ALL, room, damp, @@ -912,7 +907,7 @@ fluid_settings_getnum(settings, "synth.chorus.speed", &speed); fluid_settings_getnum(settings, "synth.chorus.depth", &depth); - fluid_synth_set_chorus_full_LOCAL(synth, + fluid_synth_set_chorus_full(synth, FLUID_CHORUS_SET_ALL, i, level, @@ -5044,6 +5039,7 @@ double damping, double width, double level) { int ret; + fluid_rvoice_param_t param[MAX_EVENT_PARAMS]; fluid_return_val_if_fail(synth != NULL, FLUID_FAILED); /* if non of the flags is set, fail */ @@ -5052,16 +5048,6 @@ /* Synth shadow values are set here so that they will be returned if querried */ fluid_synth_api_enter(synth); - ret = fluid_synth_set_reverb_full_LOCAL(synth, set, roomsize, damping, width, level); - FLUID_API_RETURN(ret); -} - -static int -fluid_synth_set_reverb_full_LOCAL(fluid_synth_t *synth, int set, double roomsize, - double damping, double width, double level) -{ - int ret; - fluid_rvoice_param_t param[MAX_EVENT_PARAMS]; if(set & FLUID_REVMODEL_SET_ROOMSIZE) { @@ -5093,7 +5079,7 @@ fluid_rvoice_mixer_set_reverb_params, synth->eventhandler->mixer, param); - return ret; + FLUID_API_RETURN(ret); } /** @@ -5259,6 +5245,7 @@ double speed, double depth_ms, int type) { int ret; + fluid_rvoice_param_t param[MAX_EVENT_PARAMS]; fluid_return_val_if_fail(synth != NULL, FLUID_FAILED); /* if non of the flags is set, fail */ @@ -5267,18 +5254,6 @@ /* Synth shadow values are set here so that they will be returned if queried */ fluid_synth_api_enter(synth); - ret = fluid_synth_set_chorus_full_LOCAL(synth, set, nr, level, speed, depth_ms, type); - - FLUID_API_RETURN(ret); -} - -static int -fluid_synth_set_chorus_full_LOCAL(fluid_synth_t *synth, int set, int nr, double level, - double speed, double depth_ms, int type) -{ - int ret; - fluid_rvoice_param_t param[MAX_EVENT_PARAMS]; - if(set & FLUID_CHORUS_SET_NR) { synth->chorus_nr = nr; @@ -5315,7 +5290,7 @@ synth->eventhandler->mixer, param); - return (ret); + FLUID_API_RETURN(ret); } /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.0.6/src/utils/fluid_settings.c new/fluidsynth-2.0.7/src/utils/fluid_settings.c --- old/fluidsynth-2.0.6/src/utils/fluid_settings.c 2019-08-17 18:01:01.000000000 +0200 +++ new/fluidsynth-2.0.7/src/utils/fluid_settings.c 2019-09-27 16:53:27.000000000 +0200 @@ -1048,7 +1048,7 @@ * @since 1.1.0 * * Like fluid_settings_copystr() but allocates a new copy of the string. Caller - * owns the string and should free it with free() when done using it. + * owns the string and should free it with fluid_free() when done using it. */ int fluid_settings_dupstr(fluid_settings_t *settings, const char *name, char **str) @@ -1117,7 +1117,7 @@ * @param settings a settings object * @param name a setting's name * @param s a string to be tested - * @return TRUE if the value exists and is equal to 's', FALSE otherwise + * @return TRUE if the value exists and is equal to \c s, FALSE otherwise */ int fluid_settings_str_equal(fluid_settings_t *settings, const char *name, const char *s) @@ -1645,7 +1645,7 @@ * @param data any user provided pointer * @param func callback function to be called on each iteration * - * @note Starting with FluidSynth 1.1.0 the \a func callback is called for each + * @note Starting with FluidSynth 1.1.0 the \p func callback is called for each * option in alphabetical order. Sort order was undefined in previous versions. */ void @@ -1728,7 +1728,7 @@ * @param name Settings name * @param separator String to use between options (NULL to use ", ") * @return Newly allocated string or NULL on error (out of memory, not a valid - * setting \a name or not a string setting). Free the string when finished with it. + * setting \p name or not a string setting). Free the string when finished with it by using fluid_free(). * @since 1.1.0 */ char * @@ -1870,7 +1870,7 @@ * @param data any user provided pointer * @param func callback function to be called on each iteration * - * @note Starting with FluidSynth 1.1.0 the \a func callback is called for each + * @note Starting with FluidSynth 1.1.0 the \p func callback is called for each * setting in alphabetical order. Sort order was undefined in previous versions. */ void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.0.6/src/utils/fluid_sys.c new/fluidsynth-2.0.7/src/utils/fluid_sys.c --- old/fluidsynth-2.0.6/src/utils/fluid_sys.c 2019-08-17 18:01:01.000000000 +0200 +++ new/fluidsynth-2.0.7/src/utils/fluid_sys.c 2019-09-27 16:53:27.000000000 +0200 @@ -196,6 +196,17 @@ } /** + * Convenience wrapper for free() that satisfies at least C90 requirements. + * Especially useful when using fluidsynth with programming languages that do not provide malloc() and free(). + * @note Only use this function when the API documentation explicitly says so. Otherwise use adequate \c delete_fluid_* functions. + * @since 2.0.7 + */ +void fluid_free(void* ptr) +{ + free(ptr); +} + +/** * An improved strtok, still trashes the input string, but is portable and * thread safe. Also skips token chars at beginning of token string and never * returns an empty token (will return NULL if source ends in token chars though). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fluidsynth-2.0.6/src/utils/fluidsynth_priv.h new/fluidsynth-2.0.7/src/utils/fluidsynth_priv.h --- old/fluidsynth-2.0.6/src/utils/fluidsynth_priv.h 2019-08-17 18:01:01.000000000 +0200 +++ new/fluidsynth-2.0.7/src/utils/fluidsynth_priv.h 2019-09-27 16:53:27.000000000 +0200 @@ -131,7 +131,7 @@ #define FLUID_NEW(_t) (_t*)malloc(sizeof(_t)) #define FLUID_ARRAY_ALIGNED(_t,_n,_a) (_t*)malloc((_n)*sizeof(_t) + ((unsigned int)_a - 1u)) #define FLUID_ARRAY(_t,_n) FLUID_ARRAY_ALIGNED(_t,_n,1u) -#define FLUID_FREE(_p) free(_p) +#define FLUID_FREE(_p) fluid_free(_p) #define FLUID_FOPEN(_f,_m) fopen(_f,_m) #define FLUID_FCLOSE(_f) fclose(_f) #define FLUID_FREAD(_p,_s,_n,_f) fread(_p,_s,_n,_f)
