Foobar2000 ~ Playlists & Autoplaylists


Playlists, or named lists of songs, are an essential aspect of Foobar2000. Whenever you add a song to Foobar, you are adding it to one of Foobar’s playlists. Foobar allows you to create and maintain different playlists, which are just entitled lists of your audio tracks (files). The playlists link to audio files in a ‘many to one’ relationship; that is, there can be many tracks on different playlists that reference the same audio track. Foobar can import and exports playlists in a variety of formats; and stores its own playlists as .fpl files. (This is different from adding a song to your Foobar2000 Library).

Playlists can be created manually by adding individual songs, or automatically by specifying a set of conditions in a query with the result displayed as an “Autoplaylist”. Manually created playlists are static, they don’t change unless you change them; Autoplaylists are dynamic, that is the results may change whenever the Autoplaylist is queried.

Playlists created manually can be edited directly, while Autoplaylists are edited by modifying the query. However, you can save the results of an Autoplaylist as a new static, and therefore editable, playlist.

Creating an Autoplaylist of an Albumlist item like genre:

  1. Select by genre from the Albumlist view selector
  2. Select a genre from the list of genres
  3. Right click that selected genre and select Create Autoplaylist

You will now have a new Autoplaylist listed on the playlist manager tab with the name of the genre you selected. Playlists created this way are called an Album List branch.

Creating an Autoplaylist of a folder’s contents:

  1. Select the Search tab
  2. enterΒ %path% HAS replace this with the actual pathΒ Β in the search field
  3. Select ...
  4. Select Create Autoplaylist
  5. Rename the new playlist (hint, with the path)

AutoPlaylist query examples:

  • Lossless ~ “$info(encoding)” IS lossless
  • Lossy ~ “$info(encoding)” IS lossy
  • Missing title ~ title MISSING (no percent signs)
  • Missing genre ~ genre MISSING
  • Never played ~ %play_count% MISSING
  • No Dynamic Range info ~ %dynamic_range_album% MISSING
  • No ReplayGain info ~ %replaygain_track_gain% MISSING
  • No Artist info ~ %path% HAS album AND album artist MISSING
  • Played often ~ %play_count% GREATER 9
  • Randomly sorted ~ ALL SORT BY “$rand()”
  • Recently added ~ %added% DURING LAST 1 WEEKS
  • Recently played ~ %last_played% DURING LAST 1 WEEK
  • Recently modified ~ %last_modified% DURING LAST 2 WEEKS

Foobar Playlist Management Components:

  • foo_new_playlist replicates the regular “New playlist” command with a customizable pattern in advanced configuration using %always_counter% and %maybe_counter% to enumerate possible names.
  • <a hrefoo_pl_push” target=”_blank” rel=”noopener”>foo_pl_push automatically saves playlists when changed … including new JSON format to share on the web. automatically saves playlists … including new JSON format for the web.
  • foo_playlist_revive replaces old file paths with new file paths. v1.x
  • foo_playlist_fix replaces dead playlist items based on title formatting v2.x
  • foo_softplaylists creates different Last.fm related playlists.
  • foo_utils allows inactive playlists to be edited or protected from editing.
  • foo_xspf_1 ~ Import / Export XML & XSPF playlists
  • Playlist_Bind binds a folder to a playlist.
  • Playlist Attributes allows attributes to be added to playlists.
  • Playlist Dropdown displays playlists in a drop down menu.
  • Playlist History maintains a playlist history.
  • Playlist Organizer organizes your playlists in a treeview fashion.
  • Playlist Tour is an updated version of Playlist History for Foobar2000 v.2.x
  • Random Pools creates random dynamic playlists.
  • Remove Playing Track ~ Removes the playing track from the playing playlist and optionally advances playback.
  • SimPlayList Manager has playback status icons, smooth scrolling, and statistics.

Additional resources:

Building Autoplaylist queries ~ Foobar2000: Query Syntax
Formatting playlist contents ~ Title Formatting Introduction
Adding Playlist Headers ~ Playlist GroupingΒ Schemes

Discogs ~ Gallery


What started as a straightforward Python script to sort and organize my vinyl records, in order to visualize my collection, ended up being a bit more than the initial intent was.

I was sat at home, sick, for the last few days which gave me plenty of time to listen to and organize my collection whilst also programming this custom gallery view with an obvious nod to the old IOS -6 Cover Flow which I always wished came back somehow.

github.com/rinus-vh/Discogs-Gallery

Shovel For Discogs ~ Queue & Listen


Shovel is your sidekick for digging on Discogs. Build a playlist by queuing releases from any page. Browse your selections in record time.

shovelfordiscogs

GrooveKraft ~ Mac Music Collection Viewer


GrooveKraftΒ is a fast, lightweight music collection manager that uses Discogs and MusicBrainz to enrich your collection with detailed metadata and artwork.

Features:

  • Import your Discogs collection into a local database
  • View and filter your Discogs collection locally, with artwork
  • Matches releases with MusicBrainz automatically to get release dates
  • “On this day” function shows anniversaries in your collection
  • Randomizer to help you pick something to listen to
  • Missing or incorrect release dates can be manually entered
  • Match quality shown with traffic-light icons (Red, Amber, Yellow, Green)

github.com/v8oholic/groovekraft

Foobar2000 ~ ctrfoobar2000 script


Control Foobar2000 with python + Command line

usage: control.py [-h] [-p] [-t PLAY_TRACK] [-s] [-P] [-n] [-r] [-R]
[-V VOLUME] [-m] [-i] [-f [ADDFOLDER [ADDFOLDER ...]]]
[-fi [ADDFILES [ADDFILES ...]]]
[-F [ADDFOLDERPLAY [ADDFOLDERPLAY ...]]]
[-Fi [ADDFILESPLAY [ADDFILESPLAY ...]]] [-c]
[-d [DEL_TRACK [DEL_TRACK ...]]] [-l] [-b]
[-S TYPE_CONTROLLER] [-H HOST] [-O PORT] [-?] [-g]
[-x [CHANGE_CONFIG [CHANGE_CONFIG ...]]] [-T SECTION]
[-E OPTION OPTION] [-a DIR_ALIAS] [-v] [-L LEVEL_ALIAS]
[-z REPEAT] [--repeat-off] [--repeat-playlist]
[--repeat-track] [--repeat-random] [--shuffle-track]
[--shuffle-album] [--shuffle-folder] [--seek SEEK]
[--root ROOT]
optional arguments:
-h, --help show this help message and exit
-p, --play Play Playback
-t PLAY_TRACK, --play-track PLAY_TRACK
Play Playback Track No
-s, --stop Stop Playback
-P, --pause Pause Playback
-n, --next Next Play
-r, --previous Previous Play
-R, --random Play Random
-V VOLUME, --volume VOLUME
Set Volume, range is -100 <= value <= 0
-m, --mute Mute Volume
-i, --info Get info current Playing
-f [ADDFOLDER [ADDFOLDER ...]], --addfolder [ADDFOLDER [ADDFOLDER ...]]
Add Remote Folder Queue [HTTP]
-fi [ADDFILES [ADDFILES ...]], --addfiles [ADDFILES [ADDFILES ...]]
Add Remote Files Queue [HTTP]
-F [ADDFOLDERPLAY [ADDFOLDERPLAY ...]], --addfolderplay [ADDFOLDERPLAY [ADDFOLDERPLAY ...]]
Add Remote Folder Queue & Play it [HTTP]
-Fi [ADDFILESPLAY [ADDFILESPLAY ...]], --addfilesplay [ADDFILESPLAY [ADDFILESPLAY ...]]
Add Remote Folder Queue & Play it [HTTP]
-c, --clear-playlist Clear Current Playlist [HTTP]
-d [DEL_TRACK [DEL_TRACK ...]], --del-track [DEL_TRACK [DEL_TRACK ...]]
Delete Playlist [HTTP], example: foobar -d 1 2 3
-l, --list List Playlist
-b, --browser Browser Library
-S TYPE_CONTROLLER, --type-controller TYPE_CONTROLLER
Set Type Of Controller [com,http]
-H HOST, --host HOST Remote Host control Address [HTTP]
-O PORT, --port PORT Remote Port control Address [HTTP]
-?, --usage Print All Help
-g, --read-config Read config file
-x [CHANGE_CONFIG [CHANGE_CONFIG ...]], --change-config [CHANGE_CONFIG [CHANGE_CONFIG ...]]
Set Change config. format: section#option#value
-T SECTION, --section SECTION
Set Section Config
-E OPTION OPTION, --option OPTION OPTION
Set Option Config
-a DIR_ALIAS, --dir-alias DIR_ALIAS
Root of Directory Alias On Server
-v, --version -v = show version | -vv = verbosity process
-L LEVEL_ALIAS, --level-alias LEVEL_ALIAS
Level Root of Directory Alias On Server
-z REPEAT, --repeat REPEAT
Repeat 0 = Default (repeat off) | 1 = Repeat Playlist
| 2 = Repeat Track | 3 = Random Play | 4 = Shuffle
Track | 5 = Shuffle Album | 6 = Shuffle Folders
--repeat-off Repeat Off
--repeat-playlist Repeat Playlist
--repeat-track Repeat Track
--repeat-random Random Play
--shuffle-track Shuffle Track
--shuffle-album Shuffle Album
--shuffle-folder Shuffle by Folder
--seek SEEK Seek for a second
--root ROOT Root path / Directory Containt Music files, this is
for One Folder Files Selected

github.com/cumulus13/ctrfoobar2000

Groove ~ Cross-platform Music Player


A cross-platform music player based on PyQt5, supports Win32, Linux and macOS.

github.com/zhiyiYo/Groove

VinylFlip ~ iOS Discogs Market Tool


VinylFlip is a tool for vinyl record sellers β€” scan barcodes,
check Discogs market prices by condition, and list directly
to Discogs Marketplace, all from your iPhone.

Features:

  • Barcode scan β€” instantly search any record on Discogs
  • Manual search β€” by artist name or catalog number
  • Market price β€” condition-based pricing from Discogs
  • List for sale β€” post directly to Discogs Marketplace
  • Listings tab β€” manage your active listings
  • Bookmarks β€” save records for later
  • History β€” recently viewed records
  • Profit calculator β€” estimate your margin before listing

Requires a free Discogs account.

apps.apple.com/us/app/vinylflip

uhj2amb ~ UHJ Stereo To Ambisonic B-Format


We provide aΒ simple Windows UHJ stereo to Ambisonic B-Format conversion toolΒ for Windows. It converts stereo material that is in the UHJ format (typically fromΒ Nimbus Records) into Ambisonic B-Format .AMB files (using FuMa encoding and just the WXY channels). It uses the “naive” speaker-agnostic approach to this.

www.blueripplesound.com/free_stuff

DiscoLister ~ Discogs Playlists


DiscoLister connects directly to Discogs so you can browse your collection, search the Discogs database (including barcodes), see wantlist/collection badges while you search, inspect release details with videos, and build reusable tracklists that stay synced locally across sessions, perfect for planning mixes or powering the Now Spinning overlay for your broadcast.

What you can do:

  • Browse your Discogs collection with fast filtering
  • See wantlist and collection indicators while searching Discogs
  • Search the full Discogs catalog, including barcode scanning on mobile
  • Open release detail modals with cover art, videos, and wantlist/collection controls
  • Add, reorder, replace, or manually enter tracks in your working tracklist
  • Save named tracklists, export/import JSON, or copy formatted lists for sharing
  • Stream with Now Spinning overlays for OBS plus optional Twitch auto-posting
  • Installable PWA with offline support, responsive layout, and dark mode

discolister.app

Foobar2000 ~ Autometa Playlists


AutometaΒ is a minimalist, customizable JScript Panel script designed to quickly create autoplaylists based on the current track’s tags with a single click (similar to the quick search function).

github.com/Zhiro90/foobar2000-autometa

KeyKit ~ MIDI Scripting GUI


An algorithmic MIDI scripting language and GUI system. Musical Fun with Windows, Tasks, and Objects.

github.com/nosuchtim/keykit
github.com/nosuchtim/keykit/tree/master/dist
github.com/nosuchtim/keykitwasm
en.wikipedia.org/wiki/Keykit
sites.google.com/site/albertozin/Home/keykit

Install Procedure:

  • Navigate to the KeyKit GitHub repository (nosuchtim/keykit).
  • Open the /dist/ directory.
  • Download the appropriate archive for your system: Windows (key_nt.zip), Linux (key_linux_alsa.zip), or Raspberry Pi (key_raspbian.zip).
  • On Windows, right-click the downloaded .zip file, select β€œExtract All,” and extract it to a simple path such as C:\tools\keykit\.
  • On Windows, open the extracted folder and double-click key.exe to launch KeyKit and in the KeyKit console enter midiout("KeyKitPort").
  • On Linux, open a terminal, navigate to your download directory, run unzip key_linux_alsa.zip, then cd keykit, then run ./key from inside the keykit folder.
  • If Linux reports a permission error, run chmod +x key and then ./key.
  • Install a virtual MIDI driver on Windows (for example, loopMIDI).
  • Launch the MIDI driver and create a virtual port (for example, KeyKitPort).
  • Route the virtual MIDI port to a sound source such as a software synthesizer, DAW, or virtual MIDI instrument.
  • On Linux, verify MIDI devices by running aconnect -l.
  • Start a software synthesizer on Linux, for example fluidsynth -a alsa -m alsa_seq soundfont.sf2.
  • Run aconnect -l again to view available ports.
  • Connect KeyKit to the synthesizer using aconnect <keykit_port> <synth_port>.
  • In the KeyKit console, type 'c d e f g' and press Enter to test audio output.
  • Load a built-in sequencer by entering load "lib/seq.k" in the KeyKit console.
  • Optionally load a demo by entering load "lib/demo.k".
  • Ensure KeyKit is always launched from its root directory.
  • On Windows, if using a shortcut, set the β€œStart in” field to the KeyKit folder path.
  • On Linux, always run cd ~/keykit followed by ./key before launching.
  • If KeyKit cannot locate its libraries on Linux, set the environment variable with export KEYROOT=~/keykit.
  • Copy any additional .k scripts into the keykit/lib/ directory or your working directory.
  • Load additional scripts in KeyKit using load "myscript.k".
  • Create a startup script by making a file named startup.k.
  • Add commands such as load "lib/seq.k" and midiout("KeyKitPort") to startup.k.
  • Load the startup script in KeyKit using load "startup.k".
  • If KeyKit produces no sound, confirm MIDI devices exist and are properly connected.
  • If KeyKit fails to start, confirm you are running it from the correct directory and that permissions are set correctly on Linux.

foo_opensubsonic ~ Streaming Client


OpenSubsonic / NavidromeΒ client implementation forΒ foobar2000.Β 

Features:

  • Connect to OpenSubsonic-compatible servers such as Navidrome
  • Stream tracks directly in foobar2000 throughΒ subsonic://Β paths
  • Sync remote library metadata into a local foobar2000 playlist
  • Import and sync remote playlists
  • Load and cache album artwork with fallback support for streamed items

github.com/michioxd/foo_opensubsonic

Related:

lx-music-desktop ~ Electron Based Player


LX‑Music‑Desktop is an open‑source, Electron‑based music player built with Vue 3, offering a simple, fast interface for managing and playing local music libraries on desktop systems.

github.com/lyswhut/lx-music-desktop
sourceforge.net/projects/lx-music-desktop.mirror