Skip to content

Releases: FluidSynth/fluidsynth

fluidsynth 2.5.2

23 Dec 20:33
2d07b6b

Choose a tag to compare

  • The CoreAudio driver has gained iOS support (#1720, thanks to @neoharp-dev)
  • Improve error handling and reporting when loading default soundfont (#1712)
  • Improve logging and side-effect mitigation when basic channel configuration changes (#1695)
  • Fix CVE-2025-68617 - a heap-based use-after-free involving DLS files (GHSA-ffw2-xvvp-39ch)

fluidsynth 2.5.1

31 Oct 10:55

Choose a tag to compare

  • Previous versions have incorrectly exposed private C++ and inline symbols; they are now hidden from the library (#1676)
  • Fluidsynth now resets DataEntry values when it receives (N)RPN MSB/LSB to prevent off-tuned channels (#1672, thanks to @rsp4jack)
  • It is now possible to install the library, header and executable independently from each other (#1693, refer to wiki for details, thanks to @pedrolcl)
  • Add a CI pipeline for iOS and publish precompiled iOS binaries for each release (#1703, #1677, thanks to @withSang)
  • Fix the precompiled Windows binaries lacking dependency libraries (#1668)
  • Fix a regression introduced in 2.5.0, that could have caused a NULL pointer deref when playing AWE32 NRPN MIDIs (#1691)
  • Fix a regression introduced in 2.5.0, that caused convex unipolar modulators to use a concave mapping (#1697)
  • Fix a regression introduced in 2.4.6, which in rare cases could have caused the cutoff frequency of the IIR filter to get stuck or change abruptly (#1679)
  • Fix a build issue where fluidsynth was trying to find glib even when it shouldn't (#1673, thanks to @dg0yt)
  • Fix a build issue on MacOS (#1684, thanks to @pedrolcl)
  • Fix typos in ALSA log messages (#1704, thanks to @toadster172)

fluidsynth 2.5.0

05 Oct 13:18
df432e1

Choose a tag to compare

Starting with 2.5.0, a C++11-compliant compiler and standard library will be required to compile fluidsynth! Additionally, users now have to link Fluidsynth's library libfluidsynth against the C++ standard library that was used when compiling fluidsynth.

It is now possible to compile fluidsynth without GLib! Pass -Dosal=cpp11 -Denable-libinstpatch=0 to CMake when compiling fluidsynth. In addition, if you use a C++17-compliant compiler, fluidsynth will be compiled with native DLS support! Precompiled Windows binaries will be provided for both flavors: glib and C++11 as OSAL.

Support for GLib and libinstpatch is hereby deprecated. They will be removed in 2.6.0.

New Features

  • Add a C++11-based OS abstraction layer as a replacement for glib, bringing these minor limitations when C++17 is unavailable (#1570, thanks to @mmlr)
  • Add native support for Downloadable Soundfont Format (#1626, thanks to @rsp4jack)
  • Fluidsynth now recognizes the DMOD INFO-subchunk (#1582, thanks to @spessasus)
  • A new positional flag has been introduced: -b, --bank-offset, (#1538, refer to UserManual for details)
  • Fluidsynth now natively supports the long CLI option flags on Windows (#1544)
  • Fluidsynth now supports native Android logging (#1621, thanks to @neoharp-dev)

Breaking Changes

  • Support for SDL2 has been removed - pls. use SDL3 instead (#1594)
  • The processing order of fluidsynth's configuration files has been changed (#1573, refer to wiki for details)
  • The legacy shell commands for reverb and chorus have been removed (#1659, refer to UserManual for details)

Musically Breaking Changes

  • It was discovered that fluidsynth was mapping some modulators slightly inaccurately into their normalized range (#1651, thanks to @baskanov)
  • Some Roland GS NPRN Params are now mapped to CC numbers (#1519, refer to wiki for details)
  • Fluidsynth now auto-detects whether Portamento Time is 7bit or 14bit wide - this fixes the infamous Descent Game08 tune (#705, #1232, #1311, #1456, #1495, #1517, see synth.portamento-time for details)
  • Previously, fluidsynth's default behavior was to use portamento only for those notes, that were played in a successive / legato manner; to further improve the portamento experience, this was changed and fluidsynth now plays portamento for all notes by default (#1656)

Other Changes

  • Fix drum kits not always being selected after SysEx GS Rythm Part (#1579)
  • The LGPL license now uses the remote-only FSF address (#1568, thanks to @musicinmybrain)
  • The logic for parsing INFO chunks has been revised to improve handling of unknown INFO-subchunks (#1644)
  • Fix a race condition in fluid_synth_alloc_voice() public API function (#1664)
  • Fix installing static and shared libs cmake targets on the same prefix (#1648, thanks to @pedrolcl)
  • The auto-generated lookup tables - that vcpkg and cross-compiling users have learned to love so much - are gone! (#1620)

For changes related to the public API, pls. consult the API docs.

fluidsynth 2.4.8

31 Aug 09:50

Choose a tag to compare

  • Fix systemd daemon failing with spaces in Soundfont filenames (#1608)
  • Fix a build issue on OpenIndiana (#1615)
  • Fluidsynth now explains why it discards invalid generators when run in verbose mode (#829)

Note: The absence of Android binaries will be fixed in the next release.

fluidsynth 2.4.7

15 Jul 15:00
45f2a79

Choose a tag to compare

  • All previous versions of fluidsynth have incorrectly rejected Soundfont files with unknown INFO subchunks (#1580, thanks to @spessasus)
  • Fix build for Windows on ARM64 (#1586, thanks to @carlo-bramini)
  • Fix incorrect GS DT1 SysEx checksum validation (#1578)
  • Suppress a SIGFPE on OS/2 (#1592, thanks to @komh)
  • Android binaries are now compiled with page sizes aligned to 16kB boundary to allow for Android 15+ support (#1600)
  • Due to continuing problems with openMP, precompiled Android binaries are now built without openMP support (#1603)
  • Fix a NULL pointer dereference during legato mono playing (#1602)

Please note: This is expected to be the last release for which precompiled WindowsXP binaries can be shipped! (See #1590)

fluidsynth 2.4.6

04 May 12:10
a779251

Choose a tag to compare

  • Fix inconsistent library naming for MSVC vs. MinGW builds (#1543)
  • Fix MIDI player skipping some events when seeking (#1532)
  • A regression introduced in 2.4.5 could have caused a heap-based buffer overrun (#1560)
  • Fix several issues when generating API docs with recent versions of Doxygen (#1566, thanks to @mmlr)

fluidsynth 2.4.5

13 Apr 12:41
9f2edaa

Choose a tag to compare

  • Prebuilt Windows Binaries were missing SDL3.dll (#1510)
  • Fix SDL3 intercepting signals, causing CTRL+C to not quit fluidsynth (#1509)
  • Fix a few flaws in the AWE32 NRPN implementation (#1452, #1473)
  • A regression introduced in 2.4.4 broke drum preset selection for XG MIDIs (#1508)
  • Fix for OpenMP thread affinity crashes on Android devices (#1521, thanks to @looechao)
  • Fix fluidsynth's systemd user daemon being unable to create lock file on some distros (#1527, thanks to @andrew-sayers)
  • Fix fluidsynth ignoring initialFilterFc generator limits (#1502)
  • A regression introduced in 2.3.6 prevented SF2 NRPN messages from being processed correctly (#1536)

Hint to package maintainers: Pls. make sure to install the newly added fluidsynth.tmpfile, as shown here.

Edit: Pls. note that the filename of fluidsynth's DLL is incorrect in this release (#1543).

fluidsynth 2.4.4

16 Mar 18:10
8a76c4f

Choose a tag to compare

  • Support for SDL3 has been added, support for SDL2 has been deprecated (#1485, #1478, thanks to @andyvand)
  • Soundfonts that are not respecting the 46 zero-sample padding-space previously sounded incorrect when
    synth.dynamic-sample-loading was active (#1484)
  • Allow drum channels to profit from Soundfont Bank Offsets by no longer ignoring MSB Bank changes (#1475)
  • Revise the preset fallback logic for drum channels (#1486)
  • A regression introduced in 2.4.1 may have caused interrupted real-time playback when voices were using the lowpass filter (#1481)
  • Improve multi-user experience when running fluidsynth as systemd service (#1491, thanks to @andrew-sayers)
  • Fix ordering and dependencies of fluidsynth's systemd service (#1500, thanks to @fabiangreffrath)
  • Revise fluidsynth's man page (#1499, thanks to @fabiangreffrath)

Note about cross-compilation: The CMake variable FLUID_HOST_COMPILER has been superseded by the Autools convention of using environment variables like CC_FOR_BUILD and friends (#1501, thanks to @fabiangreffrath)


Thanks for 2k stars!

Star History Chart

fluidsynth 2.4.3

25 Jan 19:59
124267d

Choose a tag to compare

  • It was discovered, that exclusive class note terminations were too slow (#1467, thanks to @mrbumpy409)
  • Fix a regression introduced in 2.4.0 that allowed the amplitude of a voice playing in delay phase to rise infinitely (#1451)
  • MSGS drum-style note-cut has been converted to an opt-in setting synth.note-cut (#1466)
  • Support for SDL2 has been disabled by default* (#1472)
  • Fix a regression introduced in 2.4.1 that could have caused infinite audio gain output for some MIDI files under certain configurations (#1464)
  • Silence a warning issued by Systemd v254+ (#1474, thanks to @andrew-sayers)

*It was found that SDL2 hijacks fluidsynth's main() function which causes build problems on Windows, see (#1472). A PR for migrating to SDL3 is highly welcome! If you still want to compile with SDL2 support, you need to explicitly enable it using CMake flag -Denable-sdl2=1.

fluidsynth 2.4.2

30 Dec 11:00
33f5461

Choose a tag to compare

  • Fix audible clicks when turning off voices while using a high filter resonance (#1427)
  • Fix a build failure with MSYS2 and MinGW when processing VersionResource.rc (#1448, thanks to @pedrolcl)
  • Fix a crash on startup when there are no MIDI devices available on Windows (#1446, thanks to @pedrolcl)
  • Restore discovery of libsndfile (#1445)
  • Fix a race condition when loading SF3 files containing multiple uncompressed samples (#1457)