🎺 A desktop music player that brings your music from multiple places together
README.md

Echoes #

Echoes is a music app that allows you to connect to multiple sources of music and play them directly through the app. It's album focused, meaning that instead of treating your library as a list of songs, it treats it as a list of albums, allowing you to shuffle albums, browse them based on genres, and more.

The project is split into a platform-agnostic core C++ library and per-platform UIs. On Linux the UI is built with Qt 6 / KDE Kirigami (see linux/). On macOS the UI is a native SwiftUI app (see macos/) that talks to core through an Objective-C++ bridge.

Echoes is the (desktop) spiritual successor of Echo.

Before building #

Make sure you create a config.cmake file on the root with the following format:

set(ONEDRIVE_AUTH_CLIENT_ID "your_client_id")

It is required by the build process to populate environment variables.

Build on Linux #

Checks #

Format the repository:

# Requires clang-format.
make format

Check formatting without changing files:

make format-check

Run C++ lint checks:

# Requires clang-tidy and the project build dependencies.
# Uses ~/kde/usr as the kde-builder install prefix by default.
make lint

If your KDE prefix is somewhere else:

make lint KDE_PREFIX=/path/to/kde/usr

kde-builder #

Compile and run the project with:

# Requires the project to be registered as `echoes` in your kde-builder config.
# Requires Qt 6, KDE Frameworks 6, Kirigami, and ECM dependencies to be available to kde-builder.
kde-builder echoes --run echoes-linux-ui

# Note: If you ever change `CMakeLists` and need to recreate the build directory use `--refresh-build`

CMake #

Compile:

# Requires Qt 6, KDE Frameworks 6, Kirigami, and Extra CMake Modules development packages.
cmake -S . -B build
cmake --build build

Run from the build directory:

./build/linux/echoes-linux-ui

Install and run from your shell:

cmake --install build
# Make sure the install prefix bin directory is in PATH.
echoes-linux-ui

Build on macOS #

The macOS app is an Xcode project that gets automatically created by CMake. In order to generate and open the project in Xcode, execute the following commands:

cmake -G Xcode -S . -B build-macos
open build_macos/echoes.xcodeproj

# Note: If your (non-Xcode) IDE/LSP still depends on having a `build` folder with compile commands, also run:
cmake -S . -B build

Once it's opened, select echoes_macos as a target on the top and run the app.