Top Related Projects
:tangerine: Clementine Music Player
Music Player Daemon
Mopidy is an extensible music server written in Python
Music player and music library manager for Linux, Windows, and macOS
Quick Overview
Tomahawk is an open-source, cross-platform music player that allows users to stream and play music from various sources. It aggregates content from different music services and local files, providing a unified interface for music discovery and playback.
Pros
- Integrates multiple music sources into a single player
- Cross-platform support (Windows, macOS, Linux)
- Collaborative playlists and social features
- Extensible plugin system for adding new features and services
Cons
- Development has been inactive since 2016
- Some integrated services may no longer be supported
- User interface can be complex for new users
- Limited documentation for developers
Getting Started
Since Tomahawk is not actively maintained, installation and setup may be challenging. However, if you want to try it out:
- Visit the GitHub repository: https://github.com/tomahawk-player/tomahawk
- Check the releases page for the latest available version
- Download the appropriate package for your operating system
- Install and run Tomahawk
- Configure your music sources and start exploring the features
Note: Due to the project's inactivity, some features may not work as expected, and compatibility with current operating systems is not guaranteed.
Competitor Comparisons
:tangerine: Clementine Music Player
Pros of Clementine
- More mature and stable project with a larger user base
- Supports a wider range of audio formats and codecs
- Better integration with local music libraries and traditional music player features
Cons of Clementine
- Less focus on social and collaborative features
- More limited support for streaming services compared to Tomahawk
- User interface may feel less modern and streamlined
Code Comparison
Clementine (C++):
void Player::Next()
{
if (playlist_)
playlist_->Next();
}
Tomahawk (C++):
void AudioEngine::next()
{
tDebug( LOGEXTRA ) << Q_FUNC_INFO;
if ( canGoNext() )
playItem( nextItem() );
}
Both projects use C++ for their core functionality. Clementine's codebase tends to be more straightforward and focused on traditional music player features, while Tomahawk's code often includes more complex logic for handling various music sources and social features.
Clementine is generally considered more suitable for users who prefer a classic music player experience with strong local library management. Tomahawk, on the other hand, caters to users who value social features and integration with multiple streaming services. The choice between the two depends on individual preferences and use cases.
Music Player Daemon
Pros of MPD
- Lightweight and efficient, designed for server-side operation
- Supports a wide range of audio formats and protocols
- Highly customizable with numerous client applications available
Cons of MPD
- Lacks a built-in graphical user interface
- Limited social features and music discovery options
- Requires more technical knowledge to set up and configure
Code Comparison
MPD (C++):
bool
playlist::AddSongToPlaylist(const char *uri, const char *playlist_name,
unsigned *added_id)
{
return spl_add_uri(uri, playlist_name, added_id);
}
Tomahawk (C++):
void
PlaylistModel::addTracks(const QList<Tomahawk::query_ptr>& queries)
{
beginInsertRows(QModelIndex(), rowCount(), rowCount() + queries.count() - 1);
m_queries << queries;
endInsertRows();
}
MPD focuses on server-side playlist management, while Tomahawk emphasizes client-side playlist handling with a more modern C++ approach. MPD's code is more low-level and C-like, reflecting its focus on efficiency and broad compatibility. Tomahawk's code uses Qt framework and higher-level abstractions, indicating a more user-friendly, desktop-oriented application.
Mopidy is an extensible music server written in Python
Pros of Mopidy
- Modular architecture allows for easy extension and customization
- Supports a wide range of audio sources and streaming services
- Active development and community support
Cons of Mopidy
- Requires more technical knowledge to set up and configure
- Limited built-in user interface options
Code Comparison
Mopidy (Python):
from mopidy import core
class MyFrontend(pykka.ThreadingActor, core.CoreListener):
def __init__(self, config, core):
super().__init__()
self.core = core
Tomahawk (C++):
#include "tomahawk/source.h"
class MySource : public Tomahawk::Source
{
public:
MySource( const QString& id, const QString& username );
};
Key Differences
- Mopidy is written in Python, while Tomahawk is primarily C++
- Mopidy focuses on server-side audio playback, while Tomahawk is a full-featured desktop player
- Mopidy has a more active development community and regular updates
- Tomahawk offers a more polished out-of-the-box user experience
Both projects aim to provide a unified music listening experience across multiple sources, but they take different approaches. Mopidy is more flexible and extensible, while Tomahawk offers a more traditional desktop application experience.
Music player and music library manager for Linux, Windows, and macOS
Pros of Quodlibet
- More actively maintained with recent updates and contributions
- Extensive plugin system for customization and feature expansion
- Better support for large music libraries and various audio formats
Cons of Quodlibet
- Less visually appealing interface compared to Tomahawk's modern design
- Steeper learning curve due to its extensive features and options
- Lacks some of Tomahawk's social and streaming integration features
Code Comparison
Quodlibet (Python):
def __init__(self, library, player, window):
super().__init__()
self.library = library
self.player = player
self.window = window
self._set_up_widgets()
Tomahawk (C++):
TomahawkApp::TomahawkApp( int& argc, char *argv[] )
: TOMAHAWK_APPLICATION( argc, argv )
{
setOrganizationName( QLatin1String( TOMAHAWK_ORGANIZATION_NAME ) );
setOrganizationDomain( QLatin1String( TOMAHAWK_ORGANIZATION_DOMAIN ) );
setApplicationName( QLatin1String( TOMAHAWK_APPLICATION_NAME ) );
}
The code snippets show different programming languages and initialization approaches. Quodlibet uses Python with a more straightforward class initialization, while Tomahawk employs C++ with a focus on setting up application-wide properties.
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
This project is essentially abandoned
There is no one working on it. There isn't much sense in adding any new issues in the issue tracker unless you want to fix them yourself.
WHAT TOMAHAWK IS
Tomahawk is a free multi-source and cross-platform music player. An application that can play not only your local files, but also stream from services like Spotify, Beats, SoundCloud, Google Music, YouTube and many others. You can even connect with your friends' Tomahawks, share your musical gems or listen along with them. Let the music play!
HOW TOMAHAWK WORKS
Tomahawk is basically a player for music metadata. At its core it decouples the metadata about a song from the source and reassembles it for each user based on their individual music accessibility and rights. In short, given the name of a song and artist, Tomahawk will find the right source, for the right user at the right time. This fundamentally different approach to music enables a range of new music consumption and sharing experiences previously not possible.
MUSIC SOURCES
- Local music library (MP3, Ogg, FLAC and many other formats)
- Networked music libraries (other connected computers)
Subscription Music Services
- Spotify
- Beats Music
- Google Play Music (on-demand streaming and music locker)
- TIDAL
- Rdio (Android only)
- Deezer (Android only)
Free Streaming/Music Promotion Platforms
- Soundcloud
- Bandcamp
- Last.fm
- Jamendo
- Official.fm
- YouTube
Network/Cloud storage
- Ampache
- Owncloud
- Subsonic
- Beets
Third party-developed resolvers have also been written for services like YouTube, Qobuz and others. We've also heard of digital music distributors writing their own for their internal CMSes to help them navigate and preview their content. That's cool.
Packaged binary resolvers (.axes) are available: here.
Source code (and examples) can be found in our Resolver repository.
DOWNLOAD TOMAHAWK
You can download one of our nightly or stable builds:
BUILD | MAC / OSX | WINDOWS | LINUX |
---|---|---|---|
NIGHTLY | latest | latest | latest (Ubuntu) |
STABLE | 0.8.4 | 0.8.4 | 0.8.4 (various distros) |
BUILD TOMAHAWK
... or you can compile it yourself:
$ mkdir build && cd build
$ cmake ..
$ make
Detailed Build Instructions
Linux: | Arch - Debian - Fedora - Ubuntu |
---|---|
Windows: | Windows |
Mac: | OS X |
Dependencies
Required dependencies:
- CMake 3
- Qt >= 5.4.0
- VLC 2.1.0
- SQLite 3.6.22
- TagLib 1.8
- Boost 1.3
- Lucene++ 3.0.6
- Attica 5.6.0
- QuaZip 0.4.3
- liblastfm 1.0.9
- QtKeychain 0.1
- Sparsehash
- GnuTLS
If you are using Qt>5.6 you need to build and install QtWebKit
The following dependencies are optional (but recommended):
Third party libraries that we ship with our source:
- MiniUPnP 1.6
- Qocoa
- libqnetwm
- libqxt (QxtWeb module)
- SPMediaKeyTap
- kdSingleApplicationGuard
SUPPORT TOMAHAWK
GET HELP
- Support & Feedback
- Chat with us in IRC: #tomahawk on Freenode, and Scrollback.io
- Developer API Documentation
SCREENSHOTS
BROWSE FRIENDS' MUSIC & LISTEN ALONG
INBOX - RECEIVED & FORWARDING
CHARTS - BILLBOARD'S TASTEMAKER ALBUMS
FRIEND FEED
DYNAMIC (AUTO-UPDATING) PLAYLIST
PLUG-INS / RESOLVER SETTINGS
##Enjoy!
Top Related Projects
:tangerine: Clementine Music Player
Music Player Daemon
Mopidy is an extensible music server written in Python
Music player and music library manager for Linux, Windows, and macOS
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