MIDI Player

By: kode54

Adds decoding support for General MIDI files (.MID, .KAR) and RIFF MIDI files (.RMI) as well as several proprietary MIDI formats (.MIDS, .MDS, .HMI, .HMP, .MUS, .XMI, .LDS).
Plays through either a built-in "chip tune"-like synthesizer called "Emu de MIDI," through VST instruments installed to a configurable directory, or through the built-in BASSMIDI SoundFont synthesizer.

Regarding recent changes to the VST instrument handler: Due to the removal of the piped I/O message pump, to alleviate crashes due to interactions with other components, the VST instrument scanner in the preferences dialog will cause the main player to hang for a while, depending on how many instruments you have installed. It will also hang for the duration of having an instrument's configuration dialog open.

Change logs:

VST Instrument support requires a path to be configured in the Advanced section of Preferences before opening the regular MIDI decoder configuration page. It is recommended that you only include instruments you may wish to use in this directory.

MT-32 support requires either the PCM and control ROMs for either the MT-32 or CM-32L to be located in the directory configured in Preferences.

SoundFont list files are plain text files with the file name extension .SFLIST. They are assumed to be UTF-8 encoded, unless they contain an appropriate UTF-16LE byte order marker. A simple way to create a list for a given directory of SoundFont files from a cmd.exe prompt:

C:\soundfonts\>chcp 65001
C:\soundfonts\>dir /b *.sf2 > soundfonts.sflist

The chcp command switches the command prompt to the UTF-8 code page so that Unicode file names will be written to the list file properly.

You may also copy the names from Explorer and paste them into Notepad or another Unicode capable text editor.

IMPORTANT: The included MUNT MT-32 emulator will automatically be used to play any MIDI files which contain MT-32 System Exclusive messages. You do not need to select MUNT from the synthesizer list. Selecting MUNT from the synthesizer list only has an effect when playing non-MT-32 files, in which case it will automatically upload a General MIDI emulation instrument set, and enable an extended channel and polyphony mode which I implemented, to support the full 16 MIDI channels as well as 256 voices worth of polyphony.

Current version

2.3, released on 2020-02-15

Works with foobar2000 v1.4 and newer


Home page

More components

Browse all
Browse by author: kode54
Tags: decoder

How to install a component?