Releases: FluidSynth/fluidsynth
fluidsynth 2.5.2
- 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
- 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
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
DMODINFO-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-timefor 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
INFOchunks has been revised to improve handling of unknownINFO-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
fluidsynth 2.4.7
- All previous versions of fluidsynth have incorrectly rejected Soundfont files with unknown
INFOsubchunks (#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
- 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
- Prebuilt Windows Binaries were missing
SDL3.dll(#1510) - Fix SDL3 intercepting signals, causing
CTRL+Cto 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
initialFilterFcgenerator 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
- 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-loadingwas 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!
fluidsynth 2.4.3
- 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
- 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)