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 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).
- 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.17
- FluidSynth 2.4.7
- LibADLMIDI 1.6.1, Yamaha YMF262 and CT1747 (OPL3)
- LibOPNMIDI 1.6.1, Yamaha YM2612 (OPN2), Yamaha YM2608 (OPNA), Yamaha YM3438 (OPN2C) and YMF276 (OPN2L).
- LibEMIDI, Yamaha (OPLL), PSG and SCC
- LibMT32Emu 2.7.2, Roland MT-32, CM-32L and LAPC-I synthesiser modules
- Nuked-OPL3, Yamaha YMF262 and CT1747 (OPL3)
- zlib 1.3.1
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.2.3.0, 2025-10-04
- New: Gain setting for Secret Sauce. It works the same with BASS MIDI. Positive values increase the volume, negative values decrese the volume. The valid range is -1.0 (Silence) to 2.0. Default is 0.0 (No gain). Beware that clipping will occur if you set the value too high.
- New: The VSTi Plug‑Ins setting can contain multiple paths separated by a pipe (|) character (e.g. “c:\VSTi\x86|d:\VSTi\x64”). Make sure there are no unwanted spaces at the beginning or end of the path names.
- Fixed: The preferences dialog accepts negative BASS MIDI gain values. The valid range is -1.0 (Silence) to 2.0. This already worked for JSON soundfont lists.
- Improved: Soundfonts in a JSON soundfont list that not specify their own gain value will also use the gain value from the preferences. Soundfonts in a text soundfont list ignore this value since they have no way to override it.
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

评论