Tom M.
2018-05-20 12:08:09 UTC
A beta of FluidSynths next major version has been released!
Over the past 10 months FluidSynth has received comprehensive new features, a few of them making a major version bump necessary. Thanks to everybody involved so far!
The opportunity of a major version bump was also used to revise FluidSynths API in the hope it will get cleaner and more resistant to future changes. Development has now reached a point where we would like to get some community feedback. Of special interest for us is, how much trouble the API changes cause downstream. Therefore please download the recently released 2.0 beta version of FluidSynth and build it against your software. Any feedback is highly appreciated!
Windows users may directly download the CI build artifacts:
Win32: https://ci.appveyor.com/project/derselbst/fluidsynth/build/1037/job/5nj9yl7v74126be5/artifacts
Win64: https://ci.appveyor.com/project/derselbst/fluidsynth/build/1037/job/xfp58vxf904ou3e9/artifacts
Everybody else will need to build from source:
https://github.com/FluidSynth/fluidsynth/releases/tag/v2.0.0.beta1
For further info what's new, please find the preliminary changelog below. For developers the API docs will be of special interest as well:
http://www.fluidsynth.org/api-unstable/index.html#NewIn2_0_0
Also, if you ever had an API/ABI breaking change in mind, now is the right time to bring it up. E.g. I keep thinking about removing the (redundant) fluid_midi_event_t type and replacing it with fluid_event_t. This issue is on the TODO list for already 15 years. It would allow to further cleanup FluidSynths code base. However I'm are aware that this step would be a little painful for downstream. Any feedback if and how your apps utilize fluid_midi_event_t as well as general thoughts on that are welcome, too.
Tom
P.S.: FluidSynth 1.1.x stays the current stable branch and continues to receive bug fixes as long as 2.0 is not released. However 1.1.x will not receive any new features.
### New Features
* implement polyphonic key pressure (#185, thanks to @mawe42)
* add API for manipulating default modulators (#265, #164, #71, thanks to @mawe42)
* add `midi.autoconnect` setting for automatically connecting fluidsynth with available MIDI Input ports (currently only for `alsa_seq` thanks to @tomcucinotta)
* add seek support to midi-player (#261, thanks to @loki666)
* add support for text and lyrics midi events (#111)
* add support for 24 bit sample soundfonts (#301, #329)
* consider "important midi channels" during overflow calculation `synth.overflow.important-channels` (#294, thanks to @mawe42)
* add a custom default modulator for MIDI CC8 to support proper stereo balance (#317, thanks to @mawe42)
* add support for an additional custom high-pass filter (#331, thanks to @mawe42)
* incorporate jjc's polymono patch (#306, #236, #158)
* add basic channel support
* implement MIDI modes Omni On, Omni Off, Poly, Mono
* implement portamento control
* implement legato control
* implement breath control
* add support soundfont loading from memory (#241)
* add a profiling command interface (#345, thanks to @jjceresa)
* add support on demand sample loading (#366, thanks to @mawe42)
* add reverb and chorus settings (#49)
### General
* consider channel pressure, key pressure and pitch wheel for lower attenuation boundary calculation (#163, thanks to @mawe42)
* complete rewrite of the LADSPA subsystem (#227, #235, thanks to @mawe42)
* complete rewrite of the Soundfont Loader API (#334, #309)
* avoid reverb amplitude growing exponentially (#279, thanks to @jjceresa)
* removed deprecated autotools build system
* a minimal build of fluidsynth without requiring pkg-config is supported
* remove deprecated LADCCA support
* use unique device names for the `audio.portaudio.device` setting (#284, thanks to @jjceresa)
* documentation of the settings moved to http://www.fluidsynth.org/api/fluidsettings.xml
* adjust MIDI Pan and Balance calculations as outlined by MIDI Recommended Practice (RP-036) (#317, thanks to @mawe42)
* make network support compile-time optional (#307, thanks to @carlo-bramini)
* speed up calculation of chorus modulation waveforms for devices without FPU (#321, thanks to @carlo-bramini)
* cleanup internal audio rendering and mixing engine (#197)
* reduce memory consumption of loaded soundfonts (#370, thanks to @mawe42)
Over the past 10 months FluidSynth has received comprehensive new features, a few of them making a major version bump necessary. Thanks to everybody involved so far!
The opportunity of a major version bump was also used to revise FluidSynths API in the hope it will get cleaner and more resistant to future changes. Development has now reached a point where we would like to get some community feedback. Of special interest for us is, how much trouble the API changes cause downstream. Therefore please download the recently released 2.0 beta version of FluidSynth and build it against your software. Any feedback is highly appreciated!
Windows users may directly download the CI build artifacts:
Win32: https://ci.appveyor.com/project/derselbst/fluidsynth/build/1037/job/5nj9yl7v74126be5/artifacts
Win64: https://ci.appveyor.com/project/derselbst/fluidsynth/build/1037/job/xfp58vxf904ou3e9/artifacts
Everybody else will need to build from source:
https://github.com/FluidSynth/fluidsynth/releases/tag/v2.0.0.beta1
For further info what's new, please find the preliminary changelog below. For developers the API docs will be of special interest as well:
http://www.fluidsynth.org/api-unstable/index.html#NewIn2_0_0
Also, if you ever had an API/ABI breaking change in mind, now is the right time to bring it up. E.g. I keep thinking about removing the (redundant) fluid_midi_event_t type and replacing it with fluid_event_t. This issue is on the TODO list for already 15 years. It would allow to further cleanup FluidSynths code base. However I'm are aware that this step would be a little painful for downstream. Any feedback if and how your apps utilize fluid_midi_event_t as well as general thoughts on that are welcome, too.
Tom
P.S.: FluidSynth 1.1.x stays the current stable branch and continues to receive bug fixes as long as 2.0 is not released. However 1.1.x will not receive any new features.
### New Features
* implement polyphonic key pressure (#185, thanks to @mawe42)
* add API for manipulating default modulators (#265, #164, #71, thanks to @mawe42)
* add `midi.autoconnect` setting for automatically connecting fluidsynth with available MIDI Input ports (currently only for `alsa_seq` thanks to @tomcucinotta)
* add seek support to midi-player (#261, thanks to @loki666)
* add support for text and lyrics midi events (#111)
* add support for 24 bit sample soundfonts (#301, #329)
* consider "important midi channels" during overflow calculation `synth.overflow.important-channels` (#294, thanks to @mawe42)
* add a custom default modulator for MIDI CC8 to support proper stereo balance (#317, thanks to @mawe42)
* add support for an additional custom high-pass filter (#331, thanks to @mawe42)
* incorporate jjc's polymono patch (#306, #236, #158)
* add basic channel support
* implement MIDI modes Omni On, Omni Off, Poly, Mono
* implement portamento control
* implement legato control
* implement breath control
* add support soundfont loading from memory (#241)
* add a profiling command interface (#345, thanks to @jjceresa)
* add support on demand sample loading (#366, thanks to @mawe42)
* add reverb and chorus settings (#49)
### General
* consider channel pressure, key pressure and pitch wheel for lower attenuation boundary calculation (#163, thanks to @mawe42)
* complete rewrite of the LADSPA subsystem (#227, #235, thanks to @mawe42)
* complete rewrite of the Soundfont Loader API (#334, #309)
* avoid reverb amplitude growing exponentially (#279, thanks to @jjceresa)
* removed deprecated autotools build system
* a minimal build of fluidsynth without requiring pkg-config is supported
* remove deprecated LADCCA support
* use unique device names for the `audio.portaudio.device` setting (#284, thanks to @jjceresa)
* documentation of the settings moved to http://www.fluidsynth.org/api/fluidsettings.xml
* adjust MIDI Pan and Balance calculations as outlined by MIDI Recommended Practice (RP-036) (#317, thanks to @mawe42)
* make network support compile-time optional (#307, thanks to @carlo-bramini)
* speed up calculation of chorus modulation waveforms for devices without FPU (#321, thanks to @carlo-bramini)
* cleanup internal audio rendering and mixing engine (#197)
* reduce memory consumption of loaded soundfonts (#370, thanks to @mawe42)