foo_midi
foo_midi is a foobar2000 component that adds playback of MIDI files to foobar2000.
It is based on foo_midi by kode54.
Features
- Decodes and plays General MIDI files (.MID, .MIDI, .RMI, .KAR) and several MIDI based formats. (.MIDS, .MDS, .HMI, .HMP, .MUS, .XMI, .XFM, .LDS, .RCP, .R36, .G18, .G36, .XMF/.MXMF, .MMF, .MMD).
- Preliminary support for MIDI 2.0 files (.MIDI2) (M2-104-UM 1.1.1 Draft 2023-07-19)
- Supports several synthesizers, several of which do not require any additional files to play back music. The bundled synthesizers which do not require additional files may sound rather basic, though.
- Supports FluidSynth SoundFont (.sf2) based synthesizer, including support for the newer compressed format. (.sf3). SoundFonts may be loaded in a simple, or even complex setup, using either basic .sflist text files encoded in UTF-8 format, but for now, it only supports a bare list of files.
- Supports 32 and 64-bit VST instruments.
- Supports dark mode.
Requirements
- foobar2000 v2.0 or later (32 or 64-bit).

- Tested on Microsoft Windows 10 and later.
Getting started
- Double-click
foo_midi.fbk2-component.
or
- Import
foo_midi.fbk2-component into foobar2000 using the “File / Preferences / Components / Install…” menu item.
Usage
You can find the user guide here.
Developing
Requirements
To build the code you need:
The following libraries are included in the code:
- BASS 2.4.18.3
- FluidSynth 2.6.2
- LibADLMIDI 1.6.2.1, Yamaha YMF262 and CT1747 (OPL3)
- LibOPNMIDI 1.6.2, Yamaha YM2612 (OPN2), Yamaha YM2608 (OPNA), Yamaha YM3438 (OPN2C) and YMF276 (OPN2L).
- LibEMIDI, Yamaha (OPLL), PSG and SCC
- LibMT32Emu 2.8.6, Roland MT-32, CM-32L and LAPC-I synthesiser modules
- Nuked-OPL3, Yamaha YMF262 and CT1747 (OPL3)
- zlib 1.4
- CLAP 1.2.10
To create the deployment package you need:
Setup
Create the following directory structure:
3rdParty
WTL10_10320
bin
bin.x86
foo_midi
out
sdk
3rdParty\WTL10_10320 contains Windows Template Library (WTL).
bin contains a portable version of foobar2000 64-bit for debugging purposes.
bin.x86 contains a portable version of foobar2000 32-bit for debugging purposes.
foo_midi contains the Git repository.
out receives a deployable version of the component.
sdk contains the foobar2000 SDK.
Issue the following commands:
git clone --recurse https://github.com/stuerp/foo_midi
cd foo_midi
git submodule update --recursive --init
Building
Open foo_midi.sln with Visual Studio and build the solution.
Packaging
To create the component first build the x64 configuration and next the x86 configuration.
Change Log
v3.3.0.0, 2026-11-12
- New: Upgraded to libADLMIDI 1.6.2.1.
- Nuked CQM emulator can be selected from the Preferences page.
- New: Upgraded to libOPNMIDI 1.6.2.
- New: Integrated jecassis IMusicKeyboard2 interface to support the foo_vis_midi fork by jecassis.
- New: Upgraded to libmt32emu 2.8.6.
- New: Upgraded to zlib 1.4.
- New: Compiled with foobar2000 SDK 2026-09-17.
- Added: Support for MMD98 (MIDI Music Driver) files. GitHub Issue 154
- Added: Option “Use Secret Sauce with SC-88 or later”. This option will override the selected player when the MIDI file contains a SYSTEM MODE SET sysex. GitHub Issue 145
- Added: Semitones slider to transpose a MIDI sequence for playback. GitHub Issue 123
- Added: Preliminary support for MIDI 2.0 files (.MIDI2) (M2-104-UM 1.1.1 Draft 2023-07-19).
- Added: FluidSynth 2.6.0 interpolation methods to the preferences.
- Changed: Channels can be turned off and on again without using the Apply button of the configuration dialog. There is latency due to foobar2000 audio buffering.
- Changed: Builds with Visual Studio 2026.
- Changed: SysEx REQ1 events are no longer sent to Secret Sauce. The plug-in does not handle malformed SysEx events correctly and the result of the request is not used anyway. GitHub Issue 155
- Improved: MMD converter is thread safe now.
- Fixed: OPN Player ignored the selected WOPN bank file.
You can read the full history here.
Acknowledgements / Credits
Links
🌠Home page: https://github.com/stuerp/foo_midi
🌠Issue tracker: https://github.com/stuerp/foo_midi/issues
🌠Issue tracker: https://github.com/stuerp/foo_midi/issues
License

评论