summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-10-18 00:41:02 +0200
committerRobin Gareus <robin@gareus.org>2018-10-18 01:43:43 +0200
commitabf7905d5f82ad796544aa664cf3abaf20385cf7 (patch)
tree982dc729adea5bb604a12cd511f5f20a95a9b74d /tools
parent5b280463ce220ca27c067ce33cd9af2f457f240b (diff)
Update Fluidsynth to 2.0.1
Diffstat (limited to 'tools')
-rw-r--r--tools/ardour_fluidsynth.diff327
-rwxr-xr-xtools/update_fluidsynth.sh11
2 files changed, 156 insertions, 182 deletions
diff --git a/tools/ardour_fluidsynth.diff b/tools/ardour_fluidsynth.diff
index 52db833776..64bc813a6e 100644
--- a/tools/ardour_fluidsynth.diff
+++ b/tools/ardour_fluidsynth.diff
@@ -1,73 +1,74 @@
-diff --git b/libs/fluidsynth/src/fluid_defsfont.c a/libs/fluidsynth/src/fluid_defsfont.c
-index 3eea95c..c395218 100644
---- b/libs/fluidsynth/src/fluid_defsfont.c
-+++ a/libs/fluidsynth/src/fluid_defsfont.c
-@@ -109,11 +109,13 @@ char* fluid_defsfont_sfont_get_name(fluid_sfont_t* sfont)
- return fluid_defsfont_get_name((fluid_defsfont_t*) sfont->data);
- }
+diff --git b/libs/fluidsynth/fluidsynth/synth.h a/libs/fluidsynth/fluidsynth/synth.h
+index 1a0046fe1..a4afb9094 100644
+--- b/libs/fluidsynth/fluidsynth/synth.h
++++ a/libs/fluidsynth/fluidsynth/synth.h
+@@ -265,7 +265,7 @@ FLUIDSYNTH_API int fluid_synth_write_s16(fluid_synth_t *synth, int len,
+ FLUIDSYNTH_API int fluid_synth_write_float(fluid_synth_t *synth, int len,
+ void *lout, int loff, int lincr,
+ void *rout, int roff, int rincr);
+-FLUID_DEPRECATED FLUIDSYNTH_API int fluid_synth_nwrite_float(fluid_synth_t *synth, int len,
++FLUIDSYNTH_API int fluid_synth_nwrite_float(fluid_synth_t *synth, int len,
+ float **left, float **right,
+ float **fx_left, float **fx_right);
+ FLUIDSYNTH_API int fluid_synth_process(fluid_synth_t *synth, int len,
+@@ -310,7 +310,9 @@ FLUIDSYNTH_API int fluid_synth_set_custom_filter(fluid_synth_t *, int type, int
+
+ /* LADSPA */
+
++#ifdef LADSPA
+ FLUIDSYNTH_API fluid_ladspa_fx_t *fluid_synth_get_ladspa_fx(fluid_synth_t *synth);
++#endif
-+#if 0
- fluid_sample_t* fluid_defsfont_get_sample(fluid_defsfont_t* sfont, char *s)
- {
- /* This function is here just to avoid an ABI/SONAME bump, see ticket #98. Should never be used. */
- return NULL;
- }
+
+ /* API: Poly mono mode */
+diff --git b/libs/fluidsynth/fluidsynth/types.h a/libs/fluidsynth/fluidsynth/types.h
+index 47ef18336..5ad29281a 100644
+--- b/libs/fluidsynth/fluidsynth/types.h
++++ a/libs/fluidsynth/fluidsynth/types.h
+@@ -56,7 +56,9 @@ typedef struct _fluid_sequencer_t fluid_sequencer_t; /**< Sequencer i
+ typedef struct _fluid_ramsfont_t fluid_ramsfont_t; /**< RAM SoundFont */
+ typedef struct _fluid_rampreset_t fluid_rampreset_t; /**< RAM SoundFont preset */
+ typedef struct _fluid_cmd_handler_t fluid_cmd_handler_t; /**< Shell Command Handler */
++#ifdef LADSPA
+ typedef struct _fluid_ladspa_fx_t fluid_ladspa_fx_t; /**< LADSPA effects instance */
+#endif
+ typedef struct _fluid_file_callbacks_t fluid_file_callbacks_t; /**< Callback struct to perform custom file loading of soundfonts */
- fluid_preset_t*
- fluid_defsfont_sfont_get_preset(fluid_sfont_t* sfont, unsigned int bank, unsigned int prenum)
+ typedef int fluid_istream_t; /**< Input stream descriptor */
diff --git b/libs/fluidsynth/src/fluid_hash.c a/libs/fluidsynth/src/fluid_hash.c
-index a063e29..9d5a920 100644
+index 37b0a06a4..b6586895b 100644
--- b/libs/fluidsynth/src/fluid_hash.c
+++ a/libs/fluidsynth/src/fluid_hash.c
-@@ -93,7 +93,7 @@ static const guint primes[] =
-
- static const unsigned int nprimes = sizeof (primes) / sizeof (primes[0]);
-
--unsigned int
-+static unsigned int
- spaced_primes_closest (unsigned int num)
- {
- unsigned int i;
-@@ -984,6 +984,7 @@ fluid_hashtable_foreach_remove_or_steal (fluid_hashtable_t *hashtable,
- return deleted;
+@@ -991,6 +991,7 @@ fluid_hashtable_remove_all(fluid_hashtable_t *hashtable)
+ fluid_hashtable_maybe_resize(hashtable);
}
+#if 0
/**
- * fluid_hashtable_foreach_remove:
+ * fluid_hashtable_steal_all:
* @hashtable: a #fluid_hashtable_t.
-@@ -1001,7 +1002,7 @@ fluid_hashtable_foreach_remove_or_steal (fluid_hashtable_t *hashtable,
- *
- * Return value: the number of key/value pairs removed.
- **/
--unsigned int
-+static unsigned int
- fluid_hashtable_foreach_remove (fluid_hashtable_t *hashtable,
- fluid_hr_func_t func, void *user_data)
- {
-@@ -1010,6 +1011,7 @@ fluid_hashtable_foreach_remove (fluid_hashtable_t *hashtable,
-
- return fluid_hashtable_foreach_remove_or_steal (hashtable, func, user_data, TRUE);
+@@ -1008,6 +1009,7 @@ fluid_hashtable_steal_all(fluid_hashtable_t *hashtable)
+ fluid_hashtable_remove_all_nodes(hashtable, FALSE);
+ fluid_hashtable_maybe_resize(hashtable);
}
+#endif
- /**
- * fluid_hashtable_foreach_steal:
+ /*
+ * fluid_hashtable_foreach_remove_or_steal:
diff --git b/libs/fluidsynth/src/fluid_midi.c a/libs/fluidsynth/src/fluid_midi.c
-index 5ceab01..171952f 100644
+index c05f994ce..bdf72dd68 100644
--- b/libs/fluidsynth/src/fluid_midi.c
+++ a/libs/fluidsynth/src/fluid_midi.c
-@@ -34,7 +34,7 @@ static int fluid_midi_event_length(unsigned char event);
- static char* fluid_file_read_full(fluid_file fp, size_t* length);
- #define READ_FULL_INITIAL_BUFLEN 1024
+@@ -75,7 +75,7 @@ static int fluid_midi_file_read_tracklen(fluid_midi_file *mf);
+ static int fluid_midi_file_eot(fluid_midi_file *mf);
+ static int fluid_midi_file_get_division(fluid_midi_file *midifile);
-
+#if 0 // disable file I/O with Ardour
/***************************************************************
*
* MIDIFILE
-@@ -760,6 +760,7 @@ fluid_midi_file_get_division(fluid_midi_file *midifile)
+@@ -1011,6 +1011,7 @@ fluid_midi_file_get_division(fluid_midi_file *midifile)
{
return midifile->division;
}
@@ -75,7 +76,7 @@ index 5ceab01..171952f 100644
/******************************************************
*
-@@ -1030,7 +1031,7 @@ fluid_midi_event_set_sysex(fluid_midi_event_t *evt, void *data, int size, int dy
+@@ -1330,7 +1331,7 @@ static void fluid_midi_event_set_sysex_LOCAL(fluid_midi_event_t *evt, int type,
*
* fluid_track_t
*/
@@ -84,228 +85,196 @@ index 5ceab01..171952f 100644
/*
* new_fluid_track
*/
-@@ -1118,7 +1119,7 @@ fluid_track_get_duration(fluid_track_t *track)
- /*
- * fluid_track_count_events
- */
--int
-+static int
- fluid_track_count_events(fluid_track_t *track, int *on, int *off)
- {
- fluid_midi_event_t *evt = track->first;
-@@ -1533,7 +1534,7 @@ fluid_player_load(fluid_player_t *player, fluid_playlist_item *item)
- return FLUID_OK;
- }
+@@ -2434,3 +2435,4 @@ fluid_midi_event_length(unsigned char event)
--void
-+static void
- fluid_player_advancefile(fluid_player_t *player)
- {
- if (player->playlist == NULL) {
-@@ -1553,7 +1554,7 @@ fluid_player_advancefile(fluid_player_t *player)
- }
- }
-
--void
-+static void
- fluid_player_playlist_load(fluid_player_t *player, unsigned int msec)
- {
- fluid_playlist_item* current_playitem;
-@@ -1938,3 +1939,4 @@ fluid_midi_event_length(unsigned char event)
- }
return 1;
}
+#endif
diff --git b/libs/fluidsynth/src/fluid_rev.c a/libs/fluidsynth/src/fluid_rev.c
-index 51b0e79..166007d 100644
+index 8a58d1e85..51b4faa25 100644
--- b/libs/fluidsynth/src/fluid_rev.c
+++ a/libs/fluidsynth/src/fluid_rev.c
-@@ -75,7 +75,7 @@ void fluid_allpass_init(fluid_allpass* allpass);
- void fluid_allpass_setfeedback(fluid_allpass* allpass, fluid_real_t val);
- fluid_real_t fluid_allpass_getfeedback(fluid_allpass* allpass);
+@@ -51,7 +51,7 @@ void fluid_allpass_init(fluid_allpass *allpass);
+ void fluid_allpass_setfeedback(fluid_allpass *allpass, fluid_real_t val);
+ fluid_real_t fluid_allpass_getfeedback(fluid_allpass *allpass);
-void
+static void
- fluid_allpass_setbuffer(fluid_allpass* allpass, int size)
+ fluid_allpass_setbuffer(fluid_allpass *allpass, int size)
{
- allpass->bufidx = 0;
-@@ -83,7 +83,7 @@ fluid_allpass_setbuffer(fluid_allpass* allpass, int size)
- allpass->bufsize = size;
+ allpass->bufidx = 0;
+@@ -59,7 +59,7 @@ fluid_allpass_setbuffer(fluid_allpass *allpass, int size)
+ allpass->bufsize = size;
}
-void
+static void
- fluid_allpass_release(fluid_allpass* allpass)
+ fluid_allpass_release(fluid_allpass *allpass)
{
- FLUID_FREE(allpass->buffer);
+ FLUID_FREE(allpass->buffer);
diff --git b/libs/fluidsynth/src/fluid_rvoice_mixer.c a/libs/fluidsynth/src/fluid_rvoice_mixer.c
-index 4672cb8..d5369aa 100644
+index 3b264e4d9..8c5254f26 100644
--- b/libs/fluidsynth/src/fluid_rvoice_mixer.c
+++ a/libs/fluidsynth/src/fluid_rvoice_mixer.c
-@@ -24,12 +24,12 @@
+@@ -24,11 +24,9 @@
#include "fluid_rev.h"
#include "fluid_chorus.h"
#include "fluidsynth_priv.h"
-#include "fluid_ladspa.h"
-+//#include "fluid_ladspa.h"
-
- #define SYNTH_REVERB_CHANNEL 0
- #define SYNTH_CHORUS_CHANNEL 1
+ #include "fluid_synth.h"
+-
-#define ENABLE_MIXER_THREADS 1
+#undef ENABLE_MIXER_THREADS // Ardour does the multithreading -- synth.cpu-cores defaults to 1
// If less than x voices, the thread overhead is larger than the gain,
// so don't activate the thread(s).
diff --git b/libs/fluidsynth/src/fluid_rvoice_mixer.h a/libs/fluidsynth/src/fluid_rvoice_mixer.h
-index eeb49ec..d4e41ca 100644
+index 4ee072e4b..1b3fceb34 100644
--- b/libs/fluidsynth/src/fluid_rvoice_mixer.h
+++ a/libs/fluidsynth/src/fluid_rvoice_mixer.h
-@@ -24,7 +24,7 @@
+@@ -24,7 +24,6 @@
#include "fluidsynth_priv.h"
#include "fluid_rvoice.h"
-#include "fluid_ladspa.h"
-+//#include "fluid_ladspa.h"
typedef struct _fluid_rvoice_mixer_t fluid_rvoice_mixer_t;
diff --git b/libs/fluidsynth/src/fluid_settings.c a/libs/fluidsynth/src/fluid_settings.c
-index 78725fb..56de8c7 100644
+index d77d5ed79..05423384e 100644
--- b/libs/fluidsynth/src/fluid_settings.c
+++ a/libs/fluidsynth/src/fluid_settings.c
-@@ -22,9 +22,9 @@
+@@ -21,9 +21,6 @@
#include "fluid_sys.h"
#include "fluid_hash.h"
#include "fluid_synth.h"
-#include "fluid_cmd.h"
-#include "fluid_adriver.h"
-#include "fluid_mdriver.h"
-+//#include "fluid_cmd.h"
-+//#include "fluid_adriver.h"
-+//#include "fluid_mdriver.h"
#include "fluid_settings.h"
#include "fluid_midi.h"
-@@ -294,11 +294,13 @@ fluid_settings_init(fluid_settings_t* settings)
- fluid_return_if_fail (settings != NULL);
+@@ -328,11 +325,13 @@ fluid_settings_init(fluid_settings_t *settings)
+ fluid_return_if_fail(settings != NULL);
- fluid_synth_settings(settings);
+ fluid_synth_settings(settings);
+#if 0
- fluid_shell_settings(settings);
- fluid_player_settings(settings);
- fluid_file_renderer_settings(settings);
- fluid_audio_driver_settings(settings);
- fluid_midi_driver_settings(settings);
+ fluid_shell_settings(settings);
+ fluid_player_settings(settings);
+ fluid_file_renderer_settings(settings);
+ fluid_audio_driver_settings(settings);
+ fluid_midi_driver_settings(settings);
+#endif
}
static int
diff --git b/libs/fluidsynth/src/fluid_synth.c a/libs/fluidsynth/src/fluid_synth.c
-index 84ee289..a12260c 100644
+index a40ba2eaa..e8845632f 100644
--- b/libs/fluidsynth/src/fluid_synth.c
+++ a/libs/fluidsynth/src/fluid_synth.c
-@@ -471,7 +471,7 @@ struct _fluid_sample_timer_t
- /*
- * fluid_sample_timer_process - called when synth->ticks is updated
+@@ -267,7 +267,7 @@ void fluid_version(int *major, int *minor, int *micro)
+ * @return FluidSynth version string, which is internal and should not be
+ * modified or freed.
*/
--void fluid_sample_timer_process(fluid_synth_t* synth)
-+static void fluid_sample_timer_process(fluid_synth_t* synth)
+-char *
++const char *
+ fluid_version_str(void)
{
- fluid_sample_timer_t* st;
- long msec;
+ return FLUIDSYNTH_VERSION;
+@@ -6435,6 +6435,7 @@ int fluid_synth_set_channel_type(fluid_synth_t *synth, int chan, int type)
+ FLUID_API_RETURN(FLUID_OK);
+ }
+
++#ifdef LADSPA
+ /**
+ * Return the LADSPA effects instance used by FluidSynth
+ *
+@@ -6447,6 +6448,7 @@ fluid_ladspa_fx_t *fluid_synth_get_ladspa_fx(fluid_synth_t *synth)
+
+ return synth->ladspa_fx;
+ }
++#endif
+
+ /**
+ * Configure a general-purpose IIR biquad filter.
diff --git b/libs/fluidsynth/src/fluid_synth.h a/libs/fluidsynth/src/fluid_synth.h
-index 3af336d..019a8e0 100644
+index 95e2c2e5f..96dc54574 100644
--- b/libs/fluidsynth/src/fluid_synth.h
+++ a/libs/fluidsynth/src/fluid_synth.h
-@@ -37,8 +37,8 @@
+@@ -33,8 +33,6 @@
#include "fluid_rev.h"
#include "fluid_voice.h"
#include "fluid_chorus.h"
-#include "fluid_ladspa.h"
-#include "fluid_midi_router.h"
-+//#include "fluid_ladspa.h"
-+//#include "fluid_midi_router.h"
- #include "fluid_sys.h"
#include "fluid_rvoice_event.h"
+ /***************************************************************
+@@ -165,7 +163,9 @@ struct _fluid_synth_t
+
+ fluid_mod_t *default_mod; /**< the (dynamic) list of default modulators */
+
++#ifdef LADSPA
+ fluid_ladspa_fx_t *ladspa_fx; /**< Effects unit for LADSPA support */
++#endif
+ enum fluid_iir_filter_type custom_filter_type; /**< filter type of the user-defined filter currently used for all voices */
+ enum fluid_iir_filter_flags custom_filter_flags; /**< filter type of the user-defined filter currently used for all voices */
+ };
diff --git b/libs/fluidsynth/src/fluid_sys.c a/libs/fluidsynth/src/fluid_sys.c
-index ee7d8d9..328f255 100644
+index 5a4a2dd93..c9662f778 100644
--- b/libs/fluidsynth/src/fluid_sys.c
+++ a/libs/fluidsynth/src/fluid_sys.c
-@@ -686,7 +686,7 @@ fluid_thread_join(fluid_thread_t* thread)
- }
-
-
--void
-+static void
- fluid_timer_run (void *data)
- {
- fluid_timer_t *timer;
-@@ -950,6 +950,7 @@ fluid_ostream_printf (fluid_ostream_t out, char* format, ...)
- #endif
- }
-
-+#if 0 // Ardour says: no, thanks
- int fluid_server_socket_join(fluid_server_socket_t *server_socket)
+@@ -202,9 +202,10 @@ fluid_log(int level, const char *fmt, ...)
+ * @param delim String of delimiter chars.
+ * @return Pointer to the next token or NULL if no more tokens.
+ */
+-char *fluid_strtok(char **str, char *delim)
++char *fluid_strtok(char **str, const char *delim)
{
- return fluid_thread_join (server_socket->thread);
-@@ -1294,3 +1295,4 @@ int delete_fluid_server_socket(fluid_server_socket_t *server_socket)
- }
+- char *s, *d, *token;
++ char *s, *token;
++ const char *d;
+ char c;
+
+ if(str == NULL || delim == NULL || !*delim)
+diff --git b/libs/fluidsynth/src/fluid_sys.h a/libs/fluidsynth/src/fluid_sys.h
+index 47cc95c11..d95f6159f 100644
+--- b/libs/fluidsynth/src/fluid_sys.h
++++ a/libs/fluidsynth/src/fluid_sys.h
+@@ -91,7 +91,7 @@ else \
+ /*
+ * Utility functions
+ */
+-char *fluid_strtok(char **str, char *delim);
++char *fluid_strtok(char **str, const char *delim);
- #endif
-+#endif
-diff --git b/libs/fluidsynth/src/fluid_tuning.c a/libs/fluidsynth/src/fluid_tuning.c
-index cc440aa..8977ed6 100644
---- b/libs/fluidsynth/src/fluid_tuning.c
-+++ a/libs/fluidsynth/src/fluid_tuning.c
-@@ -143,7 +143,7 @@ char* fluid_tuning_get_name(fluid_tuning_t* tuning)
- return tuning->name;
- }
--void fluid_tuning_set_key(fluid_tuning_t* tuning, int key, double pitch)
-+static void fluid_tuning_set_key(fluid_tuning_t* tuning, int key, double pitch)
- {
- tuning->pitch[key] = pitch;
- }
+ #if defined(__OS2__)
diff --git b/libs/fluidsynth/src/fluidsynth_priv.h a/libs/fluidsynth/src/fluidsynth_priv.h
-index faf2772..b01618d 100644
+index 41e398398..d500f6174 100644
--- b/libs/fluidsynth/src/fluidsynth_priv.h
+++ a/libs/fluidsynth/src/fluidsynth_priv.h
-@@ -28,14 +28,6 @@
+@@ -26,10 +26,6 @@
+
#include "config.h"
- #endif
-#if defined(__POWERPC__) && !(defined(__APPLE__) && defined(__MACH__))
-#include "config_maxmsp43.h"
-#endif
-
--#if defined(WIN32) && !defined(MINGW32)
--#include "config_win32.h"
--#endif
--
#if HAVE_STRING_H
#include <string.h>
#endif
-@@ -113,8 +105,6 @@
+@@ -133,8 +129,9 @@ typedef guint64 uint64_t;
#endif
- #if HAVE_WINDOWS_H
+ #if defined(WIN32) && HAVE_WINDOWS_H
-#include <winsock2.h>
--#include <ws2tcpip.h>
- #include <windows.h>
- #endif
-
-@@ -131,6 +121,12 @@
- #define STDOUT_FILENO 1
- #define STDERR_FILENO 2
-
-+#elif defined _MSC_VER
-+
-+#define STDIN_FILENO _fileno(stdin)
-+#define STDOUT_FILENO _fileno(stdout)
-+#define STDERR_FILENO _fileno(stderr)
-+
- #endif
+-#include <ws2tcpip.h> /* Provides also socklen_t */
++//#include <winsock2.h>
++//#include <ws2tcpip.h> /* Provides also socklen_t */
++#include <windows.h>
- /* Darwin special defines (taken from config_macosx.h) */
+ /* WIN32 special defines */
+ #define DSOUND_SUPPORT 1
diff --git a/tools/update_fluidsynth.sh b/tools/update_fluidsynth.sh
index 785d68bc0f..c64e8adf6f 100755
--- a/tools/update_fluidsynth.sh
+++ b/tools/update_fluidsynth.sh
@@ -23,7 +23,7 @@ cd $TMP
#git clone git://git.code.sf.net/p/fluidsynth/code-git fs-git
git clone git://github.com/FluidSynth/fluidsynth.git fs-git
-FSR=fs-git/fluidsynth/
+FSR=fs-git/
rsync -auc --info=progress2 \
${FSR}src/midi/fluid_midi.c \
@@ -48,18 +48,23 @@ rsync -auc --info=progress2 \
${FSR}src/rvoice/fluid_rvoice_mixer.h \
${FSR}src/sfloader/fluid_defsfont.c \
${FSR}src/sfloader/fluid_defsfont.h \
+ ${FSR}src/sfloader/fluid_samplecache.c \
+ ${FSR}src/sfloader/fluid_samplecache.h \
+ ${FSR}src/sfloader/fluid_sffile.c \
+ ${FSR}src/sfloader/fluid_sffile.h \
+ ${FSR}src/sfloader/fluid_sfont.c \
${FSR}src/sfloader/fluid_sfont.h \
${FSR}src/synth/fluid_chan.c \
${FSR}src/synth/fluid_chan.h \
${FSR}src/synth/fluid_event.c \
- ${FSR}src/synth/fluid_event_priv.h \
- ${FSR}src/synth/fluid_event_queue.h \
+ ${FSR}src/synth/fluid_event.h \
${FSR}src/synth/fluid_gen.c \
${FSR}src/synth/fluid_gen.h \
${FSR}src/synth/fluid_mod.c \
${FSR}src/synth/fluid_mod.h \
${FSR}src/synth/fluid_synth.c \
${FSR}src/synth/fluid_synth.h \
+ ${FSR}src/synth/fluid_synth_monopoly.c \
${FSR}src/synth/fluid_tuning.c \
${FSR}src/synth/fluid_tuning.h \
${FSR}src/synth/fluid_voice.c \