FluidSynth 1.1.0 - "A More Solid Fluid"
Changes from previous version 1.0.9
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).
Changes affecting developers
- Developer API docs overhauled and now very complete.
- Lots of code cleanup in fluid_synth.c, fluid_chorus.c, fluid_reverb.c and fluid_chan.c.
- Improved use of settings hints for all settings.
- char * arguments changed to const char * for many function prototypes.
- Many new API functions.
See "Whats new in 1.1.0?" section in developer API documentation for more details:
- Josh Green
- David Henningsson
- Pedro Lopez-Cabanillas
- Ebrahim Mayat
And many others!