3.0.0.0 current version, released on: 2025-07-19
-
New: Resurrected yuno's fmmidi player.
-
New: User Guide [documentation](docs/README.md) (*Work in Progress*)
-
The default Programs definition file is located in the component directory but can be changed in the Preferences dialog.
-
New: CLAP host functionality. foo_midi can now use [CLAP ((CLever Audio Plug-in API))](https://u-he.com/community/clap/) MIDI plug-ins to render the audio stream.
-
Specify the directory containing CLAP plug-ins in the **Paths** preferences page.
-
Take a look at [Nuked-SC55-CLAP](https://github.com/johnnovak/Nuked-SC55-CLAP) for an example.
-
New: MIDI flavor `None` sends no SysEx messages to the player before playback starts.
-
New: **midi_player_ext** info field that contains the name of the active plug-in when a player supports it or the ADL, OPN and Nuked OPL3 emulator core.
-
New: FluidSynth can be configured using a configuration file. See [Configuration file](docs/README.md#configuration-file)
-
New: Detecting the extra percussion channel can be turned on or off in the Preferences.
-
New: Log level setting determines which foo_midi messages are written to the foobar2000 console.
-
Improved: Stricter interpretation of the RCP mute mode that prevents an RCP track from being included in the MIDI stream.
-
Improved: Updated LibMT32Emu to v2.7.2.
-
Improved: LibADLMIDI configuration
-
Moved to separate **FM Synthesis** page. All the advanced settings can now be set here.
-
Added Opal, Java, ESFMu, MAME OPL2, YMFM OPL2, YMFM OPL3, Nuked OPL2 LLE and Nuked OPL3 LLE as selectable emulator cores.
-
Fixed sorting in bank names combobox.
-
Improved: LibOPNMIDI configuration
-
Moved to separate **FM Synthesis*- page. All the advanced settings can now be set here.
-
Improved: Rewrote MuntPlayer to use LibMT32Emu API version 3.
-
Supports [Versioned ROMs](https://github.com/dosbox-staging/dosbox-staging/wiki/MIDI#mt-32-roms).
-
Samples are rendered as floating-point numbers.
-
Limitation: Most of options are still hardcoded.
-
Improved: Added a couple of MT32Emu settings.
-
Improved: ADL player uses LibADLMIDI 1.6.0 and 64-bit floating-point samples.
-
Improved: OPN player uses LibOPNMIDI 1.6.0 and 64-bit floating-point samples. WOPN bank can be set from a file.
-
Improved: Added setting to reverse the stereo channels of the LibMT32Emu player (default is on).
-
Improved: Added enable or disable reverb processing by the LibMT32Emu player (default is on).
-
Improved: Skip to First Note, Loop Count and Fade-Out Time can be set on the main Preferences page.
-
Improved: Lots of little fixes, code cleanup and code polishing.
-
Improved: VSTi player issues a warning whenever it's host executable `vshost32.exe` and `vshost64.exe` can't be found. Some releases of MS Defender are known to delete the file.
-
Changed Moved BASS MIDI, FluidSynth and LibMT32Emu settings to new **Wavetable** preference page.
-
Changed: All advanced preferences have been moved to a Preferences page. The current values will **not** be migrated.
-
Changed: Loop mode descriptions should better reflect their functionality.
-
Fixed: Preferences dialog should adapt to High DPI settings now.
-
Fixed: An old threading issue caused by allowing the MIDI channels to be enabled or disabled during playback.
-
Fixed: The LibMT32Emu player reversed the left and the right channels in the output.
-
Fixed: Changing the channel mask setting did not always stick.
2.18.0.0 released on: 2025-04-05
-
Changed: Enabled dynamic sample loading in the FluidSynth player again when using FluidSynth 2.4.4 or later.
-
Added: BASSMIDI will ignore NRPN Vibrato Depth events in SC-88Pro mode. It overreacts to this parameter.
-
Added: Support for MMF/SMAF MA-2 files.
2.17.2.0 released on: 2025-03-19
-
Fixed: Crash while attempting to open a MIDI file containing non-ASCII characters. An old bug suddenly surfaced while attempting to open a WRD file containing external lyrics.
2.17.1.0 released on: 2025-03-16
-
Fixed: Secret Sauce crashed due to too many port resets.
2.17.0.0 released on: 2025-03-16
-
New: Metadata MIDI_EMBEDDED_SOUNDFONT: Contains "SF x.x" (where x.x is the version number of the SoundFont specification) or "DLS" if the MIDI file contains an embedded soundfont.
-
Improved: Support for XMF/MXMF files with raw deflated content.
-
Improved: Tweaked the handling of embedded sound fonts for BASSMIDI and FluidSynth again.
-
The Official SF2 RMIDI Specification (https://github.com/spessasus/sf2-rmidi-specification) example files seem to work now.
-
Improved: The RIFF IPRD chunk will also be used to add an Album tag in case an IALB chunk is not found.
-
Improved: FluidSynth player understands Polyphonic Key Pressure (Aftertouch) now.
-
Changed: Increased the gain of the FluidSynth player.
-
Changed: Disabled dynamic sample loading in the FluidSynth player. It causes distortion when playing some very short samples.
-
Fixed: A pending SysEx message would get skipped when the next event used the running status.
-
Fixed: More Multi Port MIDI files play correctly in BASSMIDI now.
-
The first MIDI Port message of a track is now added at the start of a track to make sure it occurs before any Program Change events.
2.16.0.0 released on: 2025-02-24
-
New: Support for XMF (Extensible Music Format) and MXMF (Mobile Extensible Music Format) files.
-
New: Metadata XMF_META_FILE_VERSION, XMF_FILE_TYPE and XMF_FILE_TYPE_REVSION.
-
Fixed: VSTi plugins did not load or save their configuration anymore (regression).
-
Fixed: VSTi plugins did not always show the correct name in the Preferences dialog (regression).
2.15.1.0 released on: 2024-09-18
-
Fixed: The selected player now only gets overriden to BASSMIDI/FluidSynth when an embedded soundfont or a soundfont is found with the same basename as the MIDI file.
-
Fixed: The BASS MIDI Resampling combo box was not always enabled correctly when switching player types.
2.15.0.0 released on: 2024-09-14
-
New: Support for embedded DLS sound fonts in RMI files. Works only with the FluidSynth player.
-
New: Support for the DBNK chunk in RMI files.
-
New: Support for SoundFont layering without using SFList files. Not perfect yet but usable.
-
Improved: Tweaked the player type override logic.
-
Improved: Increased the number of MIDI ports supported by the BASS MIDI player.
-
Fixed: A very old bug in the MIDI parsing code when Pitch Bend control change messages were encountered.
-
Fixed: Some preferences were not reset when the Reset button was clicked.
2.14.0.0 released on: 2024-08-17
-
New: Support for embedded artwork (IPIC) and encoding (IENC) chunks in RMI files.
2.13.2.0 released on: 2024-08-16
-
Fixed: The Apply button remained active again even if nothing was changed.
2.13.1.0 released on: 2024-08-15
-
Improved: An All Notes Off channel mode message will be sent when a channel gets disabled. The overall filtering has been fine-tuned.
-
Improved: Channels can be disabled per port.
-
Improved: Only sets the MIDI player to BASSMIDI with SoundFonts if FluidSynth is not used.
-
Fixed: 0-byte *.tmp files were not deleted after playing an RMI file with an embedded SoundFont.
-
Builds with foobar2000 SDK 2024-08-07.
2.12.0.0 released on: 2024-08-10
-
New: Added support for embedded sound fonts in RMI files.
-
New: MIDI channels can be enabled and disabled during playback.
-
See MSKB article 84817 [Using the MIDI Mapper](https://www.betaarchive.com/wiki/index.php?title=Microsoft_KB_Archive/84817) for an explanation of the 1 - 10 and 11 - 16 buttons.
-
Changed: Dropped support for foobar2000 1.x.
2.11.0.0 released on: 2024-06-23
-
New: Recomposer support (.RCP, .R36, .G18, .G36). Some files may still have issues.
-
New: Preferences page to configure Recomposer and HMI/HMP settings. (alpha7)
-
New: HMI/HMP default tempo can be configured. (alpha7)
-
New: Support for LeapFrog loop markers (CC 110 and 111). (alpha8)
-
Improved: Added support for Unicode paths to RCP converter (alpha3)
-
Improved: Detection of mixed-encoding text in metadata (alpha5)
-
Fixed: RPG Maker loops should work again.
-
Fixed: Recomposer files with strange tempo changes crashed the component. (alpha4)
-
Fixed: HMI conversion added a second Note On event after every note instead of a Note Off event. (alpha7)
-
Fixed: Apply button remained active even if nothing was changed. (alpha7)
2.10.0.0 released on: 2024-05-07
-
New: The volume of BASS MIDI can be tweaked independently of the overall volume. Defaults to 0.15, determined experimentally to align with the other players.
-
Improved: Added detection of EUC-JP encoded meta data.
-
Improved: Added Shift-JIS and EUC-JP detection and conversion for lyrics.
-
Fixed: Mixed ANSI and Shift-JIS wasn't detected (anymore?).
-
Fixed: The BASS MIDI voice count was not initialized correctly when using a preset.
-
Fixed: Emu de MIDI sysex recognition.
-
Fixed: Emu de MIDI potential buffer overflow during rendering.
2.9.2.0 released on: 2023-12-24
-
New: Compatible with foo_vis_midi v0.1.0.
-
Bug Fix: Crash in Emu de MIDI because dynamic synthesis rate was not initialized in time.
-
Bug Fix: Loop type was not respected when converting to other audio formats.
-
Builds with foobar2000 SDK 2023-09-23.
2.9.1.3 released on: 2023-11-02
-
New: You can specify the path of an ADLMIDI bank (*.wopl or any of the other supported formats) in the Advanced branch of the Preferences dialog.
-
The bank in the file overrides any selection in the bank drop down list in Preferences.
-
The file path is not yet saved as part of a preset.
-
Only file paths with Latin-1 characters are supported (limitation of the library).
-
New: Made Opal and Java OPL3 emulator core from LibADLMIDI selectable in the Advanced Preferences.
-
Improved: The decay time is now configurable. The default is still 1s (1000ms).
-
Improved: Looping, fading and decay has been tweaked.
-
Improved: The song duration is now always calculated without taking into account the selected loop mode. So it's the absolute length of the song without any looping or decay time.
-
Improved: Made the parsing the MIDI data more robust.
-
Improved: LDS file detection is more robust.
-
Bug Fix: FluidSynth did not respect the preferred sample rate.
-
Bug Fix: FluidSynth did not save two settings in a preset.
-
Bug Fix: Invalid embedded karaoke lyrics were not handled correctly.
-
Builds with foobar2000 SDK 2023-09-06.
2.9.0.0 released on: 2023-08-02
-
New: Added FluidSynth player again.
-
It can be selected after setting the path to the directory that contains the FluidSynth libraries. You can download FluidSynth [here](https://github.com/FluidSynth/fluidsynth/releases). Make sure you download the version that has the same CPU architecture as foobar2000 (x64 or x86).
-
New: Added .XFM as an alternative file extension for XMI files.
-
Improved: Added FluidSynth settings to preferences page.
-
Improved: MIDI standard detection
-
Some XG files where not recognized as such if the file contained anyy GS messages first.
-
GM 2 detection.
-
Changed: Renamed dynamic info tags *bassmidi_voices* and *bassmidi_voices_max* to *midi_active_voices* and *midi_peak_voices*. The FluidSynth player also sets those tags while playing.
-
Bug Fix: An old bug in the XMI parser prevent some XMI files from loading.
2.8.5.0 released on: 2023-07-23
-
New: Added a configuration option to always use Super Munt when playing an MT-32 file. Default is on.
-
New: Added an configuration option to always use a VSTi to play an XG file. Default is off.
-
Don't forget to specify the path name of the VSTi in the Advanced preferences.
-
Bug Fix: Saving MIDI presets was broken.
-
Bug Fix: Loop detection was broken for some files.
2.8.4.0 released on: 2023-06-26
-
New: A new Info tag "MIDI_PLAYER" contains the name of the MIDI player playing the current track.
-
New: Added detection of an extra percussion channel in Standard MIDI Files (*.MID). When meta data messages of type Text, Track Name or Instrument Name containing the word "drum" preceed the first message for channel 16 it will be used as an extra percussion channel in addition to channel 10.
-
New: A new Info tag "MIDI_EXTRA_PERCUSSION_CHANNEL" contains the (1-based) number of the channel that acts as an additional percussion channel (only channel 16 for now).
-
Improved: Error reporting in general and in case of parsing MIDI files with problems.
-
Bug Fix: Playing loops did not always work. (Regression)
2.8.3.1 released on: 2023-06-03
-
Bug Fix: The user selection of the MIDI player was no longer honored. (Regression) A SOLID bug...
2.8.3.0 released on: 2023-06-01
-
Cue Marker, Lyrics, Time Signature and Key Signature meta events are now converted to tags.
-
Soft Karaoke lyrics are stored in an SYNCEDLYRICS tag; other lyrics in a LYRICS tag. The tags can be edited but will not be written back to the MIDI file.
-
Info tag MIDI_LYRICS_TYPE contains the name of the Karaoke standard. For now, only Soft Karaoke format is recognized.
-
Bug Fix: vshost process was not stopped when checking for presets. (Regression)
2.8.2.0 released on: 2023-05-20
-
Bug Fix: MIDI files with malformed tracks caused a crash.
-
Bug Fix: MIDI files with malformed SysEx events caused a crash.
-
Bug Fix: Work-around for weird rendering problem in Dark mode.
-
Bug Fix: Restored access to the Preferences page from the Decoding page in the Preferences dialog.
-
Improved: Tweaked the size of some of the labels of the Preferences dialog.
-
Improved: Added a message to re-open the Preferences dialog after any of the paths were changed.
-
Improved: Changed Shift-JIS detection in meta data. A copyright sign (©) was interpreted as Shift-JIS.
2.8.1.0 released on: 2023-05-01
-
Bug Fix: The dialog now properly resizes on systems with High DPI settings (> 100% scaling)
2.8.0.0 released on: 2023-04-30
-
Major refactoring of the source code.
-
Builds with foobar2000 SDK 2023-04-18.
-
Tried to make the preferences page a bit more accessible to new users.
-
Moved all the path controls to a separate preferences page.
-
Added the configuration of the VTSi plugin path to the preferences page (in addition of the Advanced Preferences, for backwards compatibility).
-
Added the configuration of the Secret Sauce path to the preferences page (in addition of the Advanced Preferences, for backwards compatibility).
2.7.4.4 released on: 2022-11-21
-
Bug Fix: The new scpipe32 and scpipe64 in the previous version had issues. Secret Sauce is back.
-
Added support for compressed SoundFonts (.sf3) to BASS MIDI player.
-
Updated Munt (MT32 emulator) to v2.7.0.
-
Reduced the component package size a bit. Only one copy of each vsthost and scpipe executable is included.
2.7.4.3 released on: 2022-11-20
-
Re-added missing BASS libraries.
-
Re-added recompiled versions of scpipe32 and scpipe64.
-
Upgraded JSON parser and build to latest version.
-
Started fixing compiler warnings.
-
No added functionality.
2.7.4.2 released on: 2022-11-14
-
Added 32-bit and 64-bit VST instrument support for foobar2000 v2.0.
-
Fixed 64-bit VST instrument support for foobar2000 v1.6.13.
-
Added Dark Mode support.
-
Updated Bass to v2.4.17.