OpenMPT is well known tracker software for Windows.
OpenMPT (shorthand for Open ModPlug Tracker) is completely free and allows you to create and play back some great music on your computer. Based on the original ModPlug Tracker written by Olivier Lapicque, OpenMPT is free software, can import a wide variety of module formats and offers an intuitive, native GUI as well as advanced features such as VST plugins and ASIO output.
In addition to its own song format, OpenMPT can natively edit Impulse Tracker, FastTracker, Scream Tracker and ProTracker module files.
OpenMPT based module player library and libopenmpt based command-line player:
libopenmpt is a cross-platform C++ and C library to decode tracked music files (modules) [wikipedia] into a raw PCM audio stream.
openmpt123 is a cross-platform command-line or terminal based module file player.
libopenmpt is based on the player code of the OpenMPT project (Open ModPlug Tracker). In order to avoid code base fragmentation, libopenmpt is developed in the same source code repository as OpenMPT.
libopenmpt ships with plugins for 3 popular Windows audio players already included:
xmp-openmpt is a plugin based on libopenmpt for XMPlay.
in_openmpt is an input plugin based on libopenmpt for WinAMP 2.x or later compatible players.
foo_openmpt is a component based on libopenmpt for foobar2000.
loved tracks of a single user, multiple users, friends or neighbours.
recent tracks of a single user, multiple users, friends or neighbours.
top tracks of a single user, multiple users, friends or neighbours over different periods.
top tracks of an artist.
top tracks of artists similar to an artist.
top tracks with certain tag.
tracks similar to a track.
Can also…
love, unlove, ban and unban a track on your Last.fm account.
add a track to a custom playlist on your Last.fm account.
save and load XSPF playlists (make playlists without hard paths). This makes it possible to easily share playlists with other people. Also when you restructure your library (change location of your music files), these playlists will continue to work.
Integrating Last.fm with Foobar2000 Using Soft Playlists
Step 1: Install Soft Playlists Begin by downloading the foo_softplaylists component from the foobar2000 website. Once downloaded, open foobar2000 and navigate to File → Preferences → Components → Install…, then select the downloaded .fb2k-component file. Restart foobar2000 to activate the plugin. This component enables you to generate dynamic playlists directly from your Last.fm data.
Step 2: Connect Your Last.fm Account After installation, go to Preferences → Tools → Soft Playlists → Last.fm. Enter your Last.fm username and password to authorize the connection. Once you are logged in, the plugin can fetch your loved tracks, recent plays, top tracks, and tag-based data.
Step 3: Creating Loved Tracks Playlists Soft Playlists can generate playlists of tracks in your library that are marked as loved on Last.fm. Simply create a new playlist, Open the Library Menu and choose the “Loved Tracks” option, and the plugin will match these tracks with your local files and create a new playlist. You can now play or sort these loved tracks directly from foobar2000.
Step 4: Generating Top Tracks Playlists You can also create playlists based on top tracks from your Last.fm account, your friends, or neighbors. Select the “Top Tracks” option and filter by user, artist, or tag. This allows you to automatically build playlists of your most-played tracks, popular tracks by similar artists, or tracks labeled with specific moods or genres.
Step 5: Recent Tracks Playlists Soft Playlists supports recent tracks queries from Last.fm. You can generate playlists of your most recently played tracks or recent tracks from other users. This is ideal for keeping up to date with current listening trends.
Additional Features: Soft Playlists allows you to save sharable playlists in XSPF format, which keeps them portable and resilient to file location changes. The plugin also lets you love or unlove tracks directly from foobar2000, updating your Last.fm account automatically. This integration creates a seamless workflow between your local library and Last.fm.
Adding a toolbar button to love a track:
Right click the Foobar2000 toolbar and select “Customize Buttons...“
In the Available Commands Panel, open “Context Menu” and then “Last.fm”
Select "Last.fm Love Track” and click the “Add” button then click “Ok”
Change the button icon to a Last.fm icon (.ico file)
Tips and Considerations Soft Playlists is an older 32bit component. The plugin works best if most of your Last.fm scrobbled tracks are present in your local library. For more advanced integration, consider combining Soft Playlists with Spider Monkey Panel scripts to pull additional data, such as playcounts, tags, or charts.
This component displays several groups of items which are described in the following sections. The item names are displayed in upper-case letters in the UI element, but can also be used in lower-case in title formatting code, since field names in title formatting are case-insensitive.
The Location group contains information about the physical location of the track.
The Tag Fields group contains the user-modifiable metadata fields of the track.
The technical Fields groups contains technical information fields that are provided by the decoder.
The Replaygain group contains the Replaygain data of the track.
Control all the playback functions of Foobar2000 from icons on the Taskbar Notification Area. Using an area only two tray icons wide, you have the playback functions, and the volume or the seek bar, as well as a context menu.
A popup balloon (which can be disabled) appears each time a new song begins, to provide fully customizable information about the song that is playing.
The Delete Current File function deletes the file that is currently playing. It always asks for confirmation and puts the file into the recycle bin if possible, so you won’t delete files without intending to.
The extra functions introduced by this component can also be mapped to a shortcut key.
Title formatting in foobar2000 is a system that allows you to control how information about your music is displayed in the interface. It doesn’t modify the audio files themselves or change tags — it only affects how metadata and other information is shown in playlists, status bar, or window title.
Think of it like a template language: you define a pattern for text, and foobar2000 fills in the fields with actual track information. For example, you can make the playlist display tracks as:
Artist - Track Title (Album)
Why Title Formatting Exists
Music files contain metadata such as:
Artist
Album
Track title
Track number
Year
Duration
Different users want to display this information differently. Title formatting lets you:
Decide which information to display
Choose the order of information
Add separators, labels, or punctuation
Optionally display certain information only when it exists
For example, you might want to show the album only if it exists. Title formatting makes that possible.
Where To Use Title Formatting
You typically use title formatting in three main places:
Playlist columns — to customize how each column displays track info.
Status bar — to show the “Now Playing” track in a readable format.
Window title — to display the currently playing track in the foobar2000 window or taskbar.
Core Concepts You Need to Know
There are three core concepts that beginners must understand:
Plain Text: Text you type exactly as it should appear.
Fields: Metadata values from the audio files (e.g., %artist%, %title%).
Conditional Logic: Optional logic to handle missing fields or customize output dynamically.
Plain Text in Title Formatting
Any normal text you type is displayed exactly as written. This is useful for labels, punctuation, or separators:
Now Playing:
You can combine plain text with fields to make output more readable:
Now Playing: %artist% - %title%
This will display something like:
Now Playing: Radiohead - Paranoid Android
Fields (Metadata Tags)
Fields are placeholders that pull metadata from your music files. They are written inside percent signs:
%artist%
Some common fields include:
Field
Meaning
%artist%
Track artist
%album%
Album name
%title%
Track title
%tracknumber%
Track number
%date%
Year or release date
%length%
Track duration
Example combining fields:
%artist% - %title%
Output:
Radiohead - Paranoid Android
Combining Plain Text and Fields
You can mix plain text with fields to create more structured output. For example:
%artist% – %title% (%album%)
Output:
Radiohead – Paranoid Android (OK Computer)
Handling Missing Information
If a field does not exist in the file, foobar2000 simply displays nothing. For example, if %composer% is missing:
%composer%
The output will be blank. To prevent blank parentheses or awkward spacing, you can use conditional logic.
Using Conditional Logic with $if()
The $if() function allows you to display text only when a field has a value:
$if(condition,then,else)
Example:
%artist% - %title%$if(%album%, (%album%),)
This will display the album in parentheses only if %album% exists. Otherwise, it leaves that part empty.
Practical Examples
Playlist Column
%artist% - %title%
Status Bar
Now Playing: %artist% – %title%
Window Title
%artist% – %title% | foobar2000
Useful Built-In Fields
These fields are always available and do not require files to be tagged:
Field
Meaning
%filename%
File name
%path%
Full file path
%codec%
Audio codec
%bitrate%
Bitrate
%samplerate%
Sample rate
Things Beginners Can Ignore
Nested functions
Math expressions
String replacement logic
Legacy syntax
Advanced grouping
Starter Setup for New Users
For someone just installing foobar2000, start with these basic formats:
%artist% - %title%
Now Playing: %artist% – %title%$if(%album%, (%album%),)
%artist% – %title%
Final Notes
%field% is the most important concept
$if() handles missing or optional data elegantly
Some data and fields depend upon components being installed
foo_tfsandbox
A good place to start is by installing foo_tfsandbox, this component allows you to experiment with title formatting expressions and fields before you implement them.
Title Formatting Fields:
$info(referenced_offset) ~ shows time in format mm:ss:ff where ff are CD frames. For the first track it will show nothing instead of 00:00:00 hydrogenaud.io/index.php?topic=118733.msg979344
Title Formatting Examples: Name | Pattern | Alignment
Display Dynamic Range: Album DR: $if2(%album dynamic range%,–) | Track DR: $if2(%dynamic range%,–) Bits (bit depth) | $ifequal([%__bitspersample%],0,16,%__bitspersample%) | Left
Super Audio CD Decoder input plugin for foobar2000. Decoder is capable of playing back Super Audio CD ISO images, DSDIFF, DSF and DSD WavPack files. Direct DSD playback for compatible devices.
Separate DSD Processor/DSD Converter plugins for track extraction into DSD/DST encoded files.
I’ve successfully followed these steps to get DSD (.dsf filetype) and SACD (.iso filetype) playing at high bit rate using foobar2000 on my S.M.S.L M500 DAC.
This has been adapted from “SECTION II” of this page, thanks to “sirblew” for the tip!
Introduction
DSD stands for Direct Stream Digital and it is a high-definition lossless audio format with a twist. PCM signal solutions (like FLAC, TTA or APE) measure a set of bits multiple times per second to capture the audio data, hence the 16/24-bit parameter. On the other hand, DSD uses only one bit but samples it 2.8 million times a second to capture the audio signal.
Device: “ASIO : USB DAC ASIO” (or name of your device)
Optionally, disable all other devices:
File > Preferences > Playback > Output > Devices
(uncheck all but “ASIO : USB DAC ASIO”, for example)
SACD (ISO) Playback
Download and extract foo_input_sacd – Super Audio CD Decoder. This decoder is capable of playing back Super Audio CD ISO images, DSDIFF, DSF and DSD WavPack files.
Install DSD SACD component:
File > Preferences > Components
Click Install.
Select only “foo_input_sacd.fb2k-component”.
Click OK, then OK again to restart Foobar2000.
Set plugin for “PCM” as output mode:
File > Preferences >Tools > SACD
Output (per device)
Type: “DSD+PCM” (was PCM). Note: DSD+PCM will send a converted to PCM stream to Foobar so graphic add-ons like VU-meters, spectrographs and so on will work as they do when playing regular PCM files.
Samplerate: 384000 (was 44100)
Converter
DSD2PCM Mode: “Direct (64fp, 30kHz lowpass)” (was “Multistage (32fp)”). 30KHz low pass filtered means all DSD noise above that frequency is removed and does not reach the amp.
Input
Preferable Area: “Stereo” (was “None”). Only stereo tracks are displayed.
Editable Tags (was unchecked).
Store Tags With ISO (was unchecked). Stores tag info in the plugin folder.
Linked 2CH/MCH Tags (was unchecked). Tags added to a SACD ISO will be shared between stereo and multichannel tracks.
Click OK
DSF Extraction (optional)
This can be useful if you open an ISO file and want to extract the contained files to DSF.
This component provides an editor for title formatting code [mainly targeted at title formatting beginners]. The editor includes syntax highlighting, a preview of the selected fragment of the code and a view of the code structure. The idea behind the component is to allow users to explore title formatting scripts by exposing aspects which are normally hidden on the user interface of foobar2000 and its components.