CD Files Play is a group of programs, used to configure and play CD files, using the MusicBrainz online music database.
Both command line and GTK 4 based CD players, that play TOC-BIN and CUE-BIN CD files directly.
A command line tool that reads the TOC or CUE file and downloads artist name, album name, track names, etc, from the MusicBrainz online database.
Storage of CD metadata in config files, which is much faster than downloading it each time a CD is played (and allows playing them offline).
Downloading of CD cover images, that are loaded automatically.
A CD cover images window that allows selection of the CD to play.
Multiple options for sorting CDs in the main window.
Both hardware and software volume controls.
A preferences system that remembers the CD and track that were last playing.
See the INSTALL file for generic install instructions - this package uses the Autoconf compilation and installation system. It’s recommended to also install the command CDRDAO, for ripping CDs. Make sure to use a version that has Cdparanoia built in.
After running the GUI application cdfgplay, it will have created the file “~/.stdconfig/cdfgplay” (if it didn’t already exist). This file can be edited to change the dirs option to point to a directory or directories containing CD BIN and TOC/CUE files.
Optical discs were once the ultimate in data storage, but nowadays they’re large in size, small in capacity, and unreliable. However they also have a very big legacy, and so cannot be ignored. So, the solution for anyone with a substantial CD library is to rip them to a modern form of storage, then play them from there. In future CD files may also become obsolete, perhaps in favour of 48KHz WAV files, but until then it’s important to store CDs in a format that preserves them accurately.
All code is licensed under the GNU General Public Licence (GPL).
The major version of the GPL used is only 2, in rejection of version 3’s social engineering. Forks of CD Files Play may only use GPL version 2.
Please make bug reports clear and concise, with a brief description of what actions led to the bug appearing.
Patches should be in unified diff format, created with diff -u <original file> <modified file>. Nb. I don’t use git or any other source code version control system, since I believe that every package should have a single author, and that large projects should ideally be broken down into a number of independent libraries.
Email: marks@cinfinity.info, cinfinity.info@protonmail.com.
My name is Mark Skinner. I’m an Australian, self taught computer programmer, with a degree in engineering (specifically, computer control systems).
I write all my source code using the Geany text editor, and compile and test it via the command line. My main Hyprland Linux desktop consists of the text editor, a web browser and a terminal.
Last modified: 2025-12-09 15:19:09 UTC.