My foobar2000 components
Game Emu Player
Version 1.218, updated on Friday, August 14, 2020; requires foobar2000 version 1.3.
This component plays emulated console music formats and logged console music formats. It supports .AY, .GBS, .GYM, .HES, .KSS, .NSF/.NSFE, .SAP, .SGC, .SPC, .SFM, and .VGM. It also supports the compressed formats .RSN (renamed RAR), .VGZ (gzipped .VGM), and .VGM7Z (renamed 7-Zip), without any extra archive components.
Version r1050-3205-g295e1874, updated on Friday, August 14, 2020; requires foobar2000 version 1.3.
This component decodes streamed formats from hundreds of game console, PC, and mobile game audio formats.
Version 1.55, updated on Sunday, August 9, 2020; requires foobar2000 version 1.3.
This component decodes several old MSDOS and game formats specific to the AdLib / OPL2 sound chip. This includes .HSC, .SNG, .IMF/.WLF/.ADLIB, .A2M, .AMD, .BAM, .CMF, .D00, .DFM, .HSP, .KSM, .MAD, .LAA, .MKJ, .CFF, .DMO, .S3M, .DTM, .MTK, .RAD, .RAW, .SAT, .XAD, .LDS, .M, .ROL, .XSM, .DRO, .MSC, and .RIX.
Version 0.25.4, updated on Saturday, August 8, 2020; requires foobar2000 version 1.4.
This component decodes game music for the Nintendo DS console, as ripped in the .2SF or .MINI2SF formats.
Version 1.17, updated on Wednesday, August 5, 2020; requires foobar2000 version 1.4.
Decodes .NCSF and .MININCSF files, containing Nintendo DS music based on the SDAT/SSEQ format.
OpenMPT component (kode54 fork)
Version 0.5.1, updated on Sunday, July 26, 2020; requires foobar2000 version 1.4.
This component decodes modules, or music files combining both samples and sequence data and effects, using libopenmpt. Its version number is usually derived from the associated libopenmpt version, with a plus sign and trailing number if I add any extra commits following a library update. It supports files in the following formats: .MPTM, .MOD, .S3M, .XM, .IT, .669, .AMF, .AMS, .C67, .DBM, .DIGI, .DMF, .DSM, .DTM, .FAR, .IMF, .ICE, .J2B, .M15, .MDL, .MED, .MMS, .MT2, .MTM, .NST, .OKT, .PLM, .PSM, .PT36, .PTM, .SFX, .SFX2, .ST26, .STK, .STM, .STP, .ULT, .WOW, and .GDM. It also supports Ian Luck's .MO3 compressed format with MP3, Ogg Vorbis, or ADPCM samples, and it also supports arbitrary archive formats with the extensions of .MDZ, .MDR, .S3Z, .S3R, .XMZ, .ITZ, or .MPTMZ, assuming foobar2000's Archive Support plugin is installed, or any other archive plugin.
Version 2.3.5, updated on Friday, July 24, 2020; requires foobar2000 version 1.4.
This component decodes General MIDI files (.MID, .MIDI, .RMI, .KAR) and several MIDI based formats. (.MIDS, .MDS, .HMI, .HMP, .MUS, .XMI, .LDS)
It 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.
It also supports Ian Luck's wonderful BASSMIDI SoundFont (.sf2) based synthesizer, including bundled support for his .sf2pack format, which is nearly identical to the basic .sf2 format, except the file identifier is "sfpk" instead of "sfbk", and the audio section of the file is a compressed format supported by BASS that also supports seeking, as it decodes the samples as they are referenced by the MIDI files. The compressed format is identified only by its bitstream properties. BASS includes support for MP3 and Ogg Vorbis samples, while plugins are bundled to support FLAC, WavPack, Musepack, and Opus format samples.
FLAC is the suggested format for saving space and fast decoding, while Opus is suggested for "preview" type downloads, as it provides a relatively stable waveform for loops in this format, while compressing quite a bit. However, I cannot recommend using lossy compression of SoundFonts as a final distribution format, as loops could still show errors.
SoundFonts may be loaded in a simple, or even complex setup, using either basic .sflist text files encoded in UTF-8 format, or .sflist.json files, also encoded in UTF-8 format. A description for the SFLIST JSON format, as well as a parser capable of handling both the original and JSON formats, may be found here:
Please note that the VST instrument and Secret Sauce support executables are bundled, and are invoked using named pipes for communication with standard input and output devices on the executable end. The full source code is also published, in case anyone wants to replicate them, or use them for another purpose. They are built with the same compiler as this component, but since they are not themselves components, they require the Microsoft Visual Studio 2015 C++ runtimes. Both 32 and 64 bit versions, to be precise.
fdk-aac packet decoder
Version 1.12, updated on Monday, June 15, 2020; requires foobar2000 version 1.4.
This component replaces the stock input component's AAC decoder with the one from FDK-AAC v2.0.1, to support AAC formats not supported by FFmpeg, such as xHE-AAC / USAC.
Version 3.0.19, updated on Friday, February 28, 2020; requires foobar2000 version 1.4.
This component decodes Gameboy Advance music in the .GSF or .MINIGSF format. The .MINIGSF format requires its accompanying .GSFLIB files to be present in the same form as they were packaged by the ripper, usually the same directory.
Pause on Lock
Version 0.8, updated on Friday, February 28, 2020; requires foobar2000 version 1.4.
This component adds the ability to optionally pause or stop on display lock, and also optionally unpause or restart playback upon unlock if an action was taken on lock.
To use this component, you must first enable it in the Playback menu. Then you must open Preferences, locate Advanced, and navigate through the Playback category to Lock Actions, and configure it to do something.
Version 1.50, updated on Friday, February 28, 2020; requires foobar2000 version 1.4.
This component decodes music files for the Commodore 64 or 128 computers, ripped in the .SID or .MUS or .MUS+.STR formats. It supports up to 3SID rips, and supports the latest High Voltage SID Collection song length database.
TTA Audio Decoder
Version 3.6, updated on Friday, February 28, 2020; requires foobar2000 version 1.4.
This component decodes the True Audio / .TTA lossless compression format.
Version 2.2.5, updated on Sunday, February 16, 2020; requires foobar2000 version 1.4.
This component decodes music files for the Sony Playstation and Playstation 2 game consoles, as ripped in the .PSF/.MINIPSF or .PSF2/.MINIPSF2 formats.
Version 3.1.1, updated on Thursday, May 2, 2019; requires foobar2000 version 1.4.
Decodes game music for arcade machines featuring the QSound sound hardware, in the .QSF or .MINIQSF formats.
Version 2.0.52, updated on Thursday, May 2, 2019; requires foobar2000 version 1.4.
This component decodes music from the Sega Saturn or Dreamcast consoles, in the .SSF/.MINISSF or .DSF/.MINIDSF formats. It is not to be confused with the .DSF format which contains DSD audio.
Version 2.3.4, updated on Thursday, May 2, 2019; requires foobar2000 version 1.4.
This component decodes game music from the Nintendo 64 console, as ripped in the .USF or .MINIUSF formats.
Version 0.6.8, updated on Wednesday, February 20, 2019; requires foobar2000 version 1.4.
This component decodes .DTS and .DTSWAV files, and also decodes DTS and DTS-derived bitstreams in other raw PCM stream containers, including .WAV, .FLAC, .WV, and .TAK. It also decodes DTS packets in several stream container formats, including .MP4 and .MKA.
Version 0.9.13, updated on Friday, February 1, 2019; requires foobar2000 version 1.3.
This component decodes .AC3 audio files, and streams containing .AC3 format audio in other container formats supported by the player or other components.
Lunar 2 PCM decoder
Version 0.9, updated on Tuesday, January 30, 2018; requires foobar2000 version 1.3.
Decodes the RP*.PCM files from the Lunar: Eternal Blue disc for the Sega CD console. Includes bundled metadata for both US and Japanese releases.
Version 0.83, updated on Tuesday, January 30, 2018; requires foobar2000 version 1.3.
This component provides a faster, if slightly less faithful, SNES music format player, based on the SNESAPU.dll library. It plays SNES .SPC files. It also supports a huge level of tweaking, including the mixing sample rate, the sample depth, and effects control.
Version 0.11, updated on Tuesday, January 30, 2018; requires foobar2000 version 1.3.
This component decodes Amiga music in the .TFMX format, optionally with .MDAT or .TFM or .TFX extensions, or Amiga style file names with MDAT.* or TFMX.* names. Original decoder by Peter Pawlowski from way too long ago, but somewhat cleaned up, and using band limited synthesis now.
Hively Tracker decoder
Version 1.19, updated on Sunday, January 14, 2018; requires foobar2000 version 1.3.
This component decodes .AHX format files, and the advanced derivative format, .HVL. It also came to my attention that this player library was derived from leaked source code without permission. It is not my intention to stir up trouble, just to support these relatively obscure file formats. This library just happens to be the cleanest way to support .AHX files on any platform that can support compiled C/C++ code, and is way less of a mess than the old AHX replayer, and its mix of assembly code.
Version 1.3, updated on Sunday, January 14, 2018; requires foobar2000 version 1.3.
Decodes Ken Silverman's .KDM music files.
Version 1.12, updated on Saturday, February 4, 2017; requires foobar2000 version 1.3.
This component is made obsolete by foobar2000 version 1.6, which includes 7-zip support in its bundled Archive Support component.
This component unpacks 7-Zip archives (.7z) for use with any format supported by the player. It is not advised for use with large solid archives of equally large sound files, as they probably won't compress well, and will likely take ages to unpack, every single time you play the file.
EBU R128 Normalizer
Version 1.12, updated on Saturday, February 4, 2017; requires foobar2000 version 1.3.
This component provides a simple DSP for normalizing audio tracks using a running windowed calculation of the EBU R-128 standard, targeting the same average volume level as the player's stock ReplayGain component. This is not the same as proper ReplayGain, however, as it is shifting over time, rather than applying a constant level across an entire track.
Version 1.19, updated on Saturday, February 4, 2017; requires foobar2000 version 1.3.
This component automatically decodes HDCD streams contained in several supported lossless containers, including .WAV, .FLAC, .WV, and .TAK. It also supports scanning files for HDCD features in use to report in a list.
Version 1.13, updated on Saturday, February 4, 2017; requires foobar2000 version 1.3.
This component unpacks archives in the LHARC/LHA .LHA format, using source code from an old Unix utility, somewhat cleaned up to prevent crashing on malformed files.
Version 1.74, updated on Saturday, February 4, 2017; requires foobar2000 version 1.3.
This component provides configurable screen overlays which may be opened with hotkeys, or appear on specific events. Each overlay is configured separately, and has its own set of events.
Unix archive reader
Version 1.10, updated on Saturday, February 4, 2017; requires foobar2000 version 1.3.
This component unpacks archives in several Unix formats, including GZIP .gz, Bzip2 .bz2, and the Tape Archive container, .TAR.
Version 1.0, updated on Tuesday, November 15, 2016; requires foobar2000 version 1.3.
This component provides an unsecure Telnet based remote control interface for the player. It should not be possible to actually affect the player in any way more than the intended playback or playlist manipulation commands.