Skip to content

Commit

Permalink
Update to 1.1.5.
Browse files Browse the repository at this point in the history
pkgsrc: Not switched to cmake, no libaudiofile dependency.

1.1.5:

  * Autotools build resulted in the wrong version number for libfluidsynth.so (reported by plcl, Takashi Iwai)
  * One symbol was dropped from libfluidsynth.so - this symbol was not part of the public API though. (reported by Alessio Treglia)
  * Windows 64 bit: Wrong prototype declaration for MIDI (reported by Graham Goode)
  * JACK: Using jack_free instead of free when needed. Note that this might require a later version of JACK than previously. (reported
    by Graham Goode)
  * Update Free Software Foundation address (reported by ogetbilo)

1.1.4:

  * Several improvements and fixes to the CMake build system, especially for Mac OS X
  * Several bug fixes to the engine, notably quite a few which could cause FluidSynth to sound bad in some cases.
  * API additions, that make it possible to
       * load MIDI files from memory
       * to inspect/modify MIDI events as they are being played from a MIDI file
       * to change channels between melodic and drum mode
       * and to silence all notes in one command.
  * Improvements to the CoreAudio driver

1.1.3:

* Compilation with LADSPA enabled was broken in 1.1.2 - fixed (plcl, diwic)
* Multichannel output broken when double precision was used - fixed (plcl, diwic)
* Doxygen settings (plcl)
* Mac OS X build system fixes (plcl, Benjamin Reed, Jean-Franc,ois Mertens)
* Fix build problem with scummvm (Alexander Hansen, Ebrahim Mayat)
* Optimize by not starting unused threads with multicore rendering (diwic)
* Window handle creation/destruction in Windows dll version (Andy Fillebrown)
* Race condition in alsa_seq / alsa_raw drivers caused them not to quit (diwic)

1.1.2:

Big changes:

  * New CMake build system [plcl]
       * Winbuild and Macbuild directories dropped
       * Autotools build system is deprecated, but is still working
  * Rewriting of thread safety [diwic]
       * Two new settings control the thread safety mode. The default is to be backwards compatible.

Smaller changes:

  * Voice overflow settings [diwic]
  * Possible to update polyphony, up to 65536 (and beyond initial setting) [diwic]
  * Possible to update sample rate (jack driver updates sample rate correctly) [diwic]
  * MIDI Bank Select handling fixed [plcl]
  * Source files moved into different subdirectories [diwic]
  * Can use RealTimeKit (on Linux) to get real-time priority [diwic]
  * Shell commands for pitch bend and pitch bend range [monk]
  * PulseAudio driver: specify media role, and allow pulseaudio to adjust latency [diwic]
  * Bug fixes [diwic, plcl, KO Myung hun, Felix Krause, laurent, nshepperd]

1.1.1:
Bug fixes

     * Recommit fix for voice stealing algorithm (David Henningsson)
     * Update deltatime on midi file load, ticket #59 (David Henningsson and Josh Green, reported by Hans Petter Selasky)
     * Build fix on OS X 10.4 (David Fang and Ebrahim Mayat)
     * Fixed most asynchronous assignment/query regressions affecting QSynth (chorus, reverb, polyphony, MIDI CCs and presets) (Josh Green,
       reports and testing by Rui Nuno Capela)
     * Reverted queuing of chorus and reverb assignments which fixes real-time performance issues when changing values (Josh Green)
     * Fixed issue with audio thread changes affecting CoreAudio on OS X (Josh Green, reported by Ebrahim Mayat)
     * Improved SMP safety with CC MIDI controls, polyphony, modulators and synth gain (Josh Green)
     * Fixed crash bugs in fluid_timer functions (Josh Green)
     * Reverted char * -> const char * changes to function prototypes (Josh Green, reported by Rui Nuno Capela)
     * Fixed TCP server build issue where WITHOUT_SERVER was still being set on win32 (Josh Green)
     * Fixed crash when Jack driver was re-created (Josh Green)
     * Fixed unknown macro warning in FluidSynth man page (David Henningsson)

Misc

     * Return queue process is now a thread instead of a timer and more responsive (Josh Green)
     * Added missing dist files in doc/ (Josh Green)
     * Updated README-OSX (Ebrahim Mayat)

1.1.0:
Features and improvements

     * Extensive work on making FluidSynth more thread safe, resulting in better stability.
     * Audio file rendering for MIDI to audio file conversion, faster than realtime (#15).
     * Optional libsndfile support for file rendering in different audio file formats (wav, flac, ogg vorbis, etc) (#30).
     * Audio and MIDI are synchronized for MIDI file playback.
     * Server can be specified for Jack audio and MIDI drivers.
     * Jack audio and MIDI is now synchronized (when same Jack server used).
     * MIDI file playback is now timed correctly, even with large audio buffer sizes.
     * Fixed issue with missing percussion in MIDI files caused by very short notes, using synth.min-note-length setting (#1).
     * Improved support for MIDI tuning standard, including SYSEX support and realtime tuning activation.
     * Multi-core support for utilizing multiple CPUs for synthesis or increasing speed of file rendering.
     * Voices for a note-on event are started synchronously (#46).
     * TCP/IP shell server support for windows (#20).
     * Improved settings output (-o help) (alphabetically sorted and string options listed).
     * Audio driver (-a) and MIDI driver (-m) options now accept "help" and list available options (#41).
     * Added audio.realtime-prio and midi.realtime-prio for controlling realtime scheduling of some audio and MIDI drivers.
     * Default priority levels of audio and MIDI threads set to 60 and 50 respectively.
     * All yes/no string boolean settings converted to integer toggle settings (with backwards compatibility).
     * glib is now a required dependency.
     * Updated README-OSX
     * Added "voice_count" shell command for getting current number of active voices.

New command line options

     * -F, --fast-render=[file]
     * -T, --audio-file-type
     * -O, --audio-file-format
     * -E, --audio-file-endian

New or changed parameters

     * Audio file output settings: audio.file.endian, audio.file.format, audio.file.name, audio.file.type, audio.sample-format
     * Realtime scheduling settings: audio.realtime-prio, midi.realtime-prio
     * Jack settings: audio.jack.server and midi.jack.server
     * Other settings: player.reset-synth, player.timing-source, synth.cpu-cores (experimental), synth.min-note-length

Bug fixes and minor changes

     * Fixed enabling of high priority scheduling in many audio drivers.
     * Fixed bank selection logic
     * Build fixes for mingw and VC++ builds on Windows
     * Fix default values (after MIDI reset) to be more consistent with MIDI spec (#29).
     * Removed VintageDreamsWaves?-v2.sf2 since it wasn't under a free license.
     * Solaris build fix (#52)
     * Implemented fluid_player_set_loop (#33)
     * Fixed scaletune error (#26)
     * Fixed synth reset between songs (#31)
     * Fixed pitch bend error in Windows MIDI driver (#54)
     * Skip remaining track data in MIDI file after EOT (#53)
     * Bug fix in MIDI router where mutex was left locked with MIDI system reset message.
     * Help command now shows list of topics instead of General help.
     * Fixed non-blocking in alsa_raw, alsa_seq and OSS MIDI drivers.
     * Fixed segfault on config file load (#45).
  • Loading branch information
wiz committed Jan 28, 2012
1 parent c9b623d commit 458261b
Show file tree
Hide file tree
Showing 7 changed files with 65 additions and 196 deletions.
11 changes: 6 additions & 5 deletions audio/fluidsynth/Makefile
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# $NetBSD: Makefile,v 1.16 2012/01/11 17:05:51 hans Exp $
# $NetBSD: Makefile,v 1.17 2012/01/28 13:15:32 wiz Exp $

DISTNAME= fluidsynth-1.0.9
PKGREVISION= 1
DISTNAME= fluidsynth-1.1.5
CATEGORIES= audio
MASTER_SITES= http://savannah.nongnu.org/download/fluid/
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=fluidsynth/}

MAINTAINER= [email protected]
HOMEPAGE= http://fluidsynth.resonance.org/trac
HOMEPAGE= http://www.fluidsynth.org/
COMMENT= Software synthesizer based on SoundFont2
LICENSE= gnu-lgpl-v2

PKG_INSTALLATION_TYPES= overwrite pkgviews
PKG_DESTDIR_SUPPORT= user-destdir

USE_LIBTOOL= yes
USE_TOOLS+= pkg-config
GNU_CONFIGURE= yes
PKGCONFIG_OVERRIDE= fluidsynth.pc.in
PTHREAD_AUTO_VARS= yes
Expand All @@ -26,6 +26,7 @@ CPPFLAGS.SunOS+= -Du_int32_t=uint32_t -Du_int64_t=uint64_t
CPPFLAGS.SunOS+= -DSOUND_PCM_WRITE_CHANNELS=SNDCTL_DSP_CHANNELS
LIBS.SunOS+= -lsocket

.include "../../devel/glib2/buildlink3.mk"
.include "../../devel/libgetopt/buildlink3.mk"
.include "../../devel/readline/buildlink3.mk"
.include "../../mk/oss.buildlink3.mk"
Expand Down
17 changes: 8 additions & 9 deletions audio/fluidsynth/distinfo
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
$NetBSD: distinfo,v 1.8 2009/05/13 22:08:21 wiz Exp $
$NetBSD: distinfo,v 1.9 2012/01/28 13:15:32 wiz Exp $

SHA1 (fluidsynth-1.0.9.tar.gz) = fed8dcd8a816981e1e30ac8818a45949eb4f59c0
RMD160 (fluidsynth-1.0.9.tar.gz) = 077ecb13000ee58ebc0cfcde65323a7a1128f1e2
Size (fluidsynth-1.0.9.tar.gz) = 927002 bytes
SHA1 (patch-aa) = 5a45b13669c928a10f6bddc0bfdd351a7cd863fc
SHA1 (patch-ab) = 5bd951cdbc23fc69a5bd6cd09418505ee8447235
SHA1 (patch-ac) = 8b4b9b5bad17d06b77f725d50fa0b98867103228
SHA1 (patch-ad) = 01c32d97c8ff02ba34e0bf903206c74b5b69d92c
SHA1 (patch-ae) = 666286cb52c8cedeb1de5c863f9d9f9e81ef2e86
SHA1 (fluidsynth-1.1.5.tar.gz) = 2f98696ca0a6757684f0a881bf92b3149536fdf2
RMD160 (fluidsynth-1.1.5.tar.gz) = f95f5a7091cede2d0991bab7fa8089e79925544f
Size (fluidsynth-1.1.5.tar.gz) = 932960 bytes
SHA1 (patch-aa) = 1819b1e969b4b98dc7677cdfbff624be3f3ec666
SHA1 (patch-ac) = 81ca2243404a4fd1a3f93da82116c276db7fb42c
SHA1 (patch-ad) = edb221360d033804d04c15560a80e9d08e8406bc
SHA1 (patch-ae) = a536d0d16e7b4a138e69b0b0d91f2926e0675e45
150 changes: 25 additions & 125 deletions audio/fluidsynth/patches/patch-aa
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
$NetBSD: patch-aa,v 1.2 2007/12/16 15:18:29 adam Exp $
$NetBSD: patch-aa,v 1.3 2012/01/28 13:15:32 wiz Exp $

--- src/fluid_oss.c.orig 2007-09-19 08:10:57.000000000 +0200
+++ src/fluid_oss.c
@@ -43,6 +43,12 @@
--- src/drivers/fluid_oss.c.orig 2011-09-04 07:38:58.000000000 +0000
+++ src/drivers/fluid_oss.c
@@ -42,6 +42,12 @@
#include <errno.h>
#include <sys/poll.h>

Expand All @@ -14,8 +14,8 @@ $NetBSD: patch-aa,v 1.2 2007/12/16 15:18:29 adam Exp $
+
#define BUFFER_LENGTH 512

/* SCHED_FIFO priorities for OSS threads (see pthread_attr_setschedparam) */
@@ -103,7 +109,7 @@ static void* fluid_oss_midi_run(void* d)
// Build issue on some systems (OSS 4.0)?
@@ -101,7 +107,7 @@ static void fluid_oss_midi_run(void* d);
void
fluid_oss_audio_driver_settings(fluid_settings_t* settings)
{
Expand All @@ -24,91 +24,25 @@ $NetBSD: patch-aa,v 1.2 2007/12/16 15:18:29 adam Exp $
}

/*
@@ -122,8 +128,10 @@ new_fluid_oss_audio_driver(fluid_setting
int format;
pthread_attr_t attr;
int err;
+#if !defined(__NetBSD__)
int sched = SCHED_FIFO;
struct sched_param priority;
+#endif

dev = FLUID_NEW(fluid_oss_audio_driver_t);
if (dev == NULL) {
@@ -168,7 +176,7 @@ new_fluid_oss_audio_driver(fluid_setting
}

if (!fluid_settings_getstr(settings, "audio.oss.device", &devname)) {
- devname = "/dev/dsp";
+ devname = DEVOSSAUDIO;
}

if (stat(devname, &devstat) == -1) {
@@ -229,6 +237,13 @@ new_fluid_oss_audio_driver(fluid_setting
goto error_recovery;
}

+#ifdef __NetBSD__
+ err = pthread_create(&dev->thread, &attr, fluid_oss_audio_run, (void*) dev);
+ if (err) {
+ FLUID_LOG(FLUID_ERR, "Couldn't create audio thread");
+ goto error_recovery;
+ }
+#else
/* the pthread_create man page explains that
pthread_attr_setschedpolicy returns an error if the user is not
permitted the set SCHED_FIFO. it seems however that no error is
@@ -264,6 +279,7 @@ new_fluid_oss_audio_driver(fluid_setting
}
break;
@@ -164,7 +170,7 @@ new_fluid_oss_audio_driver(fluid_setting
}
+#endif /* __NetBSD__ */

return (fluid_audio_driver_t*) dev;
if (!fluid_settings_dupstr(settings, "audio.oss.device", &devname) || !devname) { /* ++ alloc device name */
- devname = FLUID_STRDUP ("/dev/dsp");
+ devname = FLUID_STRDUP (DEVOSSAUDIO);

@@ -285,8 +301,10 @@ new_fluid_oss_audio_driver2(fluid_settin
int format;
pthread_attr_t attr;
int err;
+#if !defined(__NetBSD__)
int sched = SCHED_FIFO;
struct sched_param priority;
+#endif
if (devname == NULL) {
FLUID_LOG(FLUID_ERR, "Out of memory");
@@ -278,7 +284,7 @@ new_fluid_oss_audio_driver2(fluid_settin

dev = FLUID_NEW(fluid_oss_audio_driver_t);
if (dev == NULL) {
@@ -311,7 +329,7 @@ new_fluid_oss_audio_driver2(fluid_settin

if (!fluid_settings_dupstr(settings, "audio.oss.device", &devname) || !devname) {
- devname = FLUID_STRDUP ("/dev/dsp");
+ devname = FLUID_STRDUP (DEVOSSAUDIO);

if (!fluid_settings_getstr(settings, "audio.oss.device", &devname)) {
- devname = "/dev/dsp";
+ devname = DEVOSSAUDIO;
}
if (stat(devname, &devstat) == -1) {
FLUID_LOG(FLUID_ERR, "Device <%s> does not exists", devname);
@@ -380,6 +398,13 @@ new_fluid_oss_audio_driver2(fluid_settin
goto error_recovery;
}

+#ifdef __NetBSD__
+ err = pthread_create(&dev->thread, &attr, fluid_oss_audio_run2, (void*) dev);
+ if (err) {
+ FLUID_LOG(FLUID_ERR, "Couldn't create audio2 thread");
+ goto error_recovery;
+ }
+#else
/* the pthread_create man page explains that
pthread_attr_setschedpolicy returns an error if the user is not
permitted the set SCHED_FIFO. it seems however that no error is
@@ -415,6 +440,7 @@ new_fluid_oss_audio_driver2(fluid_settin
}
break;
}
+#endif /* __NetBSD__ */

return (fluid_audio_driver_t*) dev;

@@ -642,7 +668,7 @@ fluid_oss_audio_run2(void* d)
if (!devname)
{
@@ -503,7 +509,7 @@ fluid_oss_audio_run2(void* d)

void fluid_oss_midi_driver_settings(fluid_settings_t* settings)
{
Expand All @@ -117,46 +51,12 @@ $NetBSD: patch-aa,v 1.2 2007/12/16 15:18:29 adam Exp $
}

/*
@@ -655,8 +681,10 @@ new_fluid_oss_midi_driver(fluid_settings
int err;
fluid_oss_midi_driver_t* dev;
pthread_attr_t attr;
+#if !defined __NetBSD__
int sched = SCHED_FIFO;
struct sched_param priority;
+#endif
char* device;
@@ -546,7 +552,7 @@ new_fluid_oss_midi_driver(fluid_settings
fluid_settings_dupstr(settings, "midi.oss.device", &device); /* ++ alloc device name */

/* not much use doing anything */
@@ -687,7 +715,7 @@ new_fluid_oss_midi_driver(fluid_settings
/* get the device name. if none is specified, use the default device. */
fluid_settings_getstr(settings, "midi.oss.device", &device);
if (device == NULL) {
- device = "/dev/midi";
+ device = DEVOSSMIDI;
}

/* open the default hardware device. only use midi in. */
@@ -704,6 +732,14 @@ new_fluid_oss_midi_driver(fluid_settings
FLUID_LOG(FLUID_ERR, "Couldn't initialize midi thread attributes");
goto error_recovery;
}
+
+#ifdef __NetBSD__
+ err = pthread_create(&dev->thread, &attr, fluid_oss_midi_run, (void*) dev);
+ if (err) {
+ FLUID_LOG(FLUID_ERR, "Couldn't create midi thread");
+ goto error_recovery;
+ }
+#else
/* use fifo scheduling. if it fails, use default scheduling. */
while (1) {
err = pthread_attr_setschedpolicy(&attr, sched);
@@ -735,6 +771,7 @@ new_fluid_oss_midi_driver(fluid_settings
}
break;
}
+#endif /* __NetBSD__ */
return (fluid_midi_driver_t*) dev;
- device = FLUID_STRDUP ("/dev/midi");
+ device = FLUID_STRDUP (DEVOSSMIDI);

error_recovery:
if (!device)
{
31 changes: 0 additions & 31 deletions audio/fluidsynth/patches/patch-ab

This file was deleted.

22 changes: 11 additions & 11 deletions audio/fluidsynth/patches/patch-ac
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
$NetBSD: patch-ac,v 1.5 2007/12/16 15:18:29 adam Exp $
$NetBSD: patch-ac,v 1.6 2012/01/28 13:15:32 wiz Exp $

--- configure.orig 2007-11-17 22:32:16.000000000 +0100
--- configure.orig 2011-09-04 07:38:58.000000000 +0000
+++ configure
@@ -20727,7 +20727,7 @@ esac

@@ -11587,7 +11587,7 @@ else
fi


- if test "$mingw32_support" == "yes"; then
+ if test "$mingw32_support" = "yes"; then
MINGW32_SUPPORT_TRUE=
MINGW32_SUPPORT_FALSE='#'
else
@@ -20899,7 +20899,7 @@ cat >>confdefs.h <<\_ACEOF
_ACEOF
@@ -11723,7 +11723,7 @@ if test "$GCC" = yes; then
$as_echo "#define DEBUG 1" >>confdefs.h

else
- CFLAGS="${CFLAGS} ${FCCFLAGS} -O2 -fomit-frame-pointer -funroll-all-loops -finline-functions -Wall -W -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wstrict-prototypes -Wno-unused -Winline"
+ CFLAGS="${CFLAGS} ${FCCFLAGS} -Wall -W -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wstrict-prototypes -Wno-unused -Winline"
else
- CFLAGS="${CFLAGS} ${FCCFLAGS} -O2 -fomit-frame-pointer -funroll-all-loops -finline-functions -Wall -W -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wstrict-prototypes -Winline -Wno-unused-parameter -Wno-cast-qual"
+ CFLAGS="${CFLAGS} ${FCCFLAGS} -Wall -W -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wstrict-prototypes -Winline -Wno-unused-parameter -Wno-cast-qual"

$as_echo "#define DEBUG 0" >>confdefs.h

cat >>confdefs.h <<\_ACEOF
#define DEBUG 0
6 changes: 3 additions & 3 deletions audio/fluidsynth/patches/patch-ad
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
$NetBSD: patch-ad,v 1.3 2009/05/13 22:08:21 wiz Exp $
$NetBSD: patch-ad,v 1.4 2012/01/28 13:15:32 wiz Exp $

--- src/fluid_sys.h.orig 2009-02-04 07:29:24.000000000 +0000
+++ src/fluid_sys.h
--- src/utils/fluid_sys.h.orig 2009-02-04 07:29:24.000000000 +0000
+++ src/utils/fluid_sys.h
@@ -284,7 +284,7 @@ extern fluid_profile_data_t fluid_profil
sample data.
*/
Expand Down
24 changes: 12 additions & 12 deletions audio/fluidsynth/patches/patch-ae
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
$NetBSD: patch-ae,v 1.4 2009/05/13 22:08:21 wiz Exp $
$NetBSD: patch-ae,v 1.5 2012/01/28 13:15:32 wiz Exp $

--- src/fluidsynth.c.orig 2009-02-04 07:45:02.000000000 +0000
--- src/fluidsynth.c.orig 2011-09-04 07:38:58.000000000 +0000
+++ src/fluidsynth.c
@@ -212,9 +212,9 @@ int main(int argc, char** argv)
int audio_channels = 0;
@@ -293,9 +293,9 @@ int main(int argc, char** argv)
int with_server = 0;
int dump = 0;
int fast_render = 0;
- int connect_lash = 1;
char *optchars = "a:C:c:df:G:g:hijK:L:lm:no:p:R:r:sVvz:";
char *optchars = "a:C:c:dE:f:F:G:g:hijK:L:lm:nO:o:p:R:r:sT:Vvz:";
#ifdef LASH_ENABLED
+ int connect_lash = 1;
int enabled_lash = 0; /* set to TRUE if lash gets enabled */
fluid_lash_args_t *lash_args;

@@ -237,7 +237,9 @@ int main(int argc, char** argv)
@@ -323,7 +323,9 @@ int main(int argc, char** argv)
{"audio-groups", 1, 0, 'G'},
{"chorus", 1, 0, 'C'},
{"connect-jack-outputs", 0, 0, 'j'},
+#ifdef LASH_ENABLED
{"disable-lash", 0, 0, 'l'},
+#endif
{"dump", 0, 0, 'd'},
{"fast-render", 1, 0, 'F'},
{"gain", 1, 0, 'g'},
{"help", 0, 0, 'h'},
@@ -344,9 +346,11 @@ int main(int argc, char** argv)
@@ -458,9 +460,11 @@ int main(int argc, char** argv)
audio_channels = atoi(optarg);
fluid_settings_setint(settings, "synth.audio-channels", audio_channels);
break;
Expand All @@ -33,17 +33,17 @@ $NetBSD: patch-ae,v 1.4 2009/05/13 22:08:21 wiz Exp $
break;
+#endif
case 'm':
fluid_settings_setstr(settings, "midi.driver", optarg);
break;
@@ -421,6 +425,7 @@ int main(int argc, char** argv)
if (FLUID_STRCMP (optarg, "help") == 0)
{
@@ -572,6 +576,7 @@ int main(int argc, char** argv)
#endif

#ifdef LASH_ENABLED
+#ifdef LASH_ENABLED
/* connect to the lash server */
if (connect_lash)
{
@@ -428,6 +433,7 @@ int main(int argc, char** argv)
@@ -579,6 +584,7 @@ int main(int argc, char** argv)
fluid_settings_setint (settings, "lash.enable", enabled_lash ? 1 : 0);
}
#endif
Expand Down

0 comments on commit 458261b

Please sign in to comment.