Top Related Projects
:tangerine: Clementine Music Player
Music player and music library manager for Linux, Windows, and macOS
Tomahawk, the multi-source music player
Music Player Daemon
Quick Overview
DeaDBeeF is an open-source, cross-platform audio player for Linux, BSD, OpenSolaris, macOS, and other UNIX-like systems. It supports a wide range of audio formats and offers a highly customizable user interface with plugins and themes.
Pros
- Supports a vast array of audio formats, including lossy and lossless codecs
- Highly customizable with plugins and themes
- Lightweight and efficient, suitable for older hardware
- Offers advanced playback features like gapless playback and ReplayGain
Cons
- Limited availability on Windows platforms
- Steeper learning curve compared to some mainstream audio players
- Some users may find the interface less intuitive than more popular alternatives
- Documentation can be sparse for advanced features and customizations
Getting Started
To get started with DeaDBeeF on a Linux system:
- Download the latest release from the official website or use your distribution's package manager.
- Install the package using your system's package management tool.
- Launch DeaDBeeF from your application menu or terminal.
- Add music to your library by dragging and dropping files or folders into the main window.
- Explore the settings and plugins to customize your experience.
For building from source:
git clone https://github.com/DeaDBeeF-Player/deadbeef.git
cd deadbeef
./autogen.sh
./configure
make
sudo make install
Note that building from source may require additional dependencies, which can be found in the project's documentation.
Competitor Comparisons
:tangerine: Clementine Music Player
Pros of Clementine
- Cross-platform support (Windows, macOS, Linux)
- More feature-rich with advanced functionality like internet radio, podcasts, and cloud services integration
- Active development with frequent updates and new features
Cons of Clementine
- Heavier resource usage due to its extensive feature set
- More complex user interface, which may be overwhelming for users seeking a simple audio player
- Longer startup time compared to lightweight alternatives
Code Comparison
Clementine (C++):
void MainWindow::AddToPlaylist(const QMimeData* data) {
if (MimeData::HasUrls(data)) {
const QList<QUrl> urls = data->urls();
MimeData* mime_data = new MimeData;
mime_data->setUrls(urls);
AddToPlaylist(mime_data);
}
}
DeaDBeeF (C):
int deadbeef_add_to_playlist(ddb_playlist_t *plt, const char *uri) {
DB_playItem_t *it = deadbeef->plt_insert_file(plt, NULL, uri, -1, 0);
if (it) {
deadbeef->pl_item_unref(it);
return 0;
}
return -1;
}
The code snippets show different approaches to adding items to a playlist, with Clementine using Qt's drag-and-drop functionality and DeaDBeeF utilizing a simpler C-style function.
Music player and music library manager for Linux, Windows, and macOS
Pros of Quod Libet
- More extensive library management features
- Better support for large music collections
- More active development and frequent updates
Cons of Quod Libet
- Heavier resource usage
- Steeper learning curve for new users
- Less customizable interface compared to DeaDBeeF
Code Comparison
DeaDBeeF:
void playback_loop(void) {
while (!terminate) {
if (play_state == PLAY_STATE_PLAYING) {
// Playback logic
}
}
}
Quod Libet:
def __play(self, source, next_source=None):
self._source = source
if source is not None:
self._play_source(source, next_source)
else:
self.paused = True
Both projects handle playback differently due to their underlying architectures. DeaDBeeF uses a C-based loop for playback control, while Quod Libet employs Python's object-oriented approach with method calls. DeaDBeeF's implementation may offer lower-level control and potentially better performance, while Quod Libet's Python code could be more maintainable and easier to extend.
Tomahawk, the multi-source music player
Pros of Tomahawk
- Cross-platform support (Windows, macOS, Linux)
- Social features and playlist sharing
- Integration with multiple streaming services
Cons of Tomahawk
- More complex setup and configuration
- Heavier resource usage
- Less frequent updates and maintenance
Code Comparison
Tomahawk (C++):
void AudioEngine::setVolume( float volume )
{
m_volume = volume;
emit volumeChanged( volume );
}
DeaDBeeF (C):
static int
deadbeef_set_volume (float volume) {
conf_set_float ("volume", volume);
return 0;
}
Tomahawk uses a more object-oriented approach with C++, while DeaDBeeF opts for a simpler C implementation. Tomahawk's code includes signal emission for UI updates, whereas DeaDBeeF directly modifies configuration settings.
Both projects are audio players, but Tomahawk focuses on social features and streaming integration, while DeaDBeeF prioritizes simplicity and lightweight performance. Tomahawk offers a more feature-rich experience at the cost of complexity, while DeaDBeeF provides a straightforward, efficient audio player for users who prefer a minimalist approach.
Music Player Daemon
Pros of MPD
- Client-server architecture allows for multiple clients and remote control
- Supports a wide range of audio formats and protocols
- Highly customizable and extensible through plugins
Cons of MPD
- Requires separate client software for user interaction
- Setup and configuration can be more complex for beginners
- Limited built-in GUI options
Code Comparison
MPD (C++):
bool
playlist::AddSong(PlayerControl &pc, DetachedSong &&song, Error &error)
{
const auto &song_ref = pc.AppendToQueue(std::move(song), error);
if (!song_ref.IsDefined())
return false;
DeaDBeeF (C):
int
deadbeef_add_track (ddb_playlist_t *plt, const char *fname, int *pabort, int (*callback)(void *user_data, const char *fname), void *user_data)
{
char *uri = NULL;
DB_playItem_t *it = NULL;
Both projects are open-source music players, but MPD focuses on a client-server model while DeaDBeeF is a standalone player. MPD offers more flexibility for remote control and multiple clients, while DeaDBeeF provides a simpler, all-in-one solution. The code snippets show different approaches to adding tracks, reflecting their architectural differences.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
About
DeaDBeeF is a multiple-platform music player for desktop operating systems.
If you wish to chat with developers, join us on Discord.
Download official releases (only GNU/Linux and Windows)
Download nightly (development) builds
NOTE: The macOS version has not been officially released, and has many unresolved issues and unimplemented features
Building DeaDBeeF from source
Linux, BSD and similar (GTK/*NIX version)
The overall process is simple, but it's hard to figure out the dependencies.
Please consult the README file in the same folder for more details, or visit the wiki page
If you have the dependencies - follow these simple steps:
- Install Git, Clang toolchain
- Remember to get submodules:
git submodule update --init
- Install dependencies
- Run
./autogen.sh
to bootstrap - Run
CC=clang CXX=clang++ ./configure
, followed withmake
andsudo make install
. - For more information about the build process, read the generated INSTALL file and the output of
./configure --help
.
macOS
- Install Xcode. The latest one is the best, but older versions will usually keep working for a year or two.
- Run
sudo xcode-select --install
- This will configure git and command line build tools - Clone the deadbeef git repository
- Remember to get submodules:
git submodule update --init
Command line
- Run
xcodebuild -project osx/deadbeef.xcodeproj -target DeaDBeeF -configuration Release
- The output will be located here:
osx/build/Release/DeaDBeeF.app
Xcode UI
- Open the
osx/deadbeef.xcodeproj
in Xcode, and build/run from there
Windows
Prerequisites
- MSYS2: Install the 64-bit version of msys2 and ensure to run
pacman -Syu
- Premake5: v5.0.0-beta1
- Toolchain
pacman -S mingw-w64-x86_64-libzip mingw-w64-x86_64-pkg-config mingw-w64-x86_64-dlfcn mingw-w64-x86_64-clang mingw-w64-x86_64-libblocksruntime git make tar xz
- Dependencies:
pacman -S mingw-w64-x86_64-jansson mingw-w64-x86_64-gtk3 mingw-w64-x86_64-gtk2 mingw-w64-x86_64-mpg123 mingw-w64-x86_64-flac mingw-w64-x86_64-portaudio
- Plugin dependencies: follow the Windows plugin status page to find out dependencies of the plugins, and install them too.
Compiling
- Ensure that you are in mingw64 shell (run mingw64.exe) and clone this git repository
- From deadbeef main directory run
premake5 --standard gmake2
using your corresponding path topremake5.exe
- Compile with
make config=debug_windows
(debug build) ormake config=release_windows
(stripped/release build) - Find the resulting binaries in
bin/debug
orbin/release
Other notes
- GTK3 uses Windows-10 theme and Windows-10-Icons by default. If they are not in msys2 tree, then they must be manually placed in the
share/icons
andshare/themes
. A different theme can be specified by editing theetc/gtk-3.0/settings.ini
file.
Supporting this project
Top Related Projects
:tangerine: Clementine Music Player
Music player and music library manager for Linux, Windows, and macOS
Tomahawk, the multi-source music player
Music Player Daemon
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot