Skip to content

stuerp/foo_midi

Repository files navigation

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). foobar2000
  • 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:

To create the deployment package you need:

Setup

Create the following directory structure:

3rdParty
    WTL10_10320
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.2.1, 2025-09-30

  • Fixed: LibOPNMIDI did not include the new low-level emulators due to a build configuration error.

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

License: MIT