A free and open, lean, highly cross-platform, music player.
Millenium Player is very new, unstable, alpha software. It currently works on Linux, Windows, and MacOS. iOS and Android support are desired, but not yet in progress.
Millenium Player strives to:
- Run on as many platforms as practical: Use the same music playing software everywhere.
- Be lean and mean: The software must be small and portable (installers optional). It should also be as efficient as possible to reduce power use.
- Support common audio formats: Obscure formats might be supported, but this player does not strive to play everything.
- Be easy to build and contribute to: The player should have easy to follow code and an easy to setup and use build system to encourage contributions. As much as possible, it should strive to use a single programming language throughout.
In the future, Millenium Player will have music library management features. When this is the case, Millenium Player will not modify any of the files in the music library without requesting permission from the user.
You will need to install the following:
- The Rust compiler
- Trunk: You can use
cargo install trunk
once Rust is installed. Alternatively, on MacOS, it is available in Homebrew astrunk
. - Just: You can use
cargo install just
to install it, or follow their install instructions.
A number of development libraries are required to compile on Linux:
- GCC
- The ALSA library
- GTK 3
- WebKit2GTK 4.1
On Debian or Ubuntu systems, these can be installed with:
sudo apt-get install build-essential libasound2-dev libgtk-3-dev libwebkit2gtk-4.1-dev
On Fedora, these can be installed with:
sudo dnf install gcc gtk3-devel webkit2gtk4.1-devel alsa-lib-devel
Know how to install these on other distributions? Please open a pull request to update this README!
The Rust compiler will require either Microsoft Visual Studio or MinGW. The setup process should have instructions on how to acquire these.
Xcode, or the Xcode command-line tools, are required in order to provide necessary system libraries.
Once all the prerequisites are installed, building is as simple as running:
just build
To get a release build, run:
just release
The resulting binary will be in target/debug for just build
, and in target/release for just release
.
If you want to quickly see the player in action, you can run:
just run-hydrate
This will start up the player playing test-data/hydrate/hydrate.mp3.
Have a look at the justfile
for more build targets.
There is a Discord server for discussing Millenium Player. Ask questions, report issues, and talk about development and contributions there.
Contributions are welcome, and thank you for your interest in contributing! See the contributing guide for information on how to contribute.
The Millenium Player source code is licensed under the GPL-3.0, and a copy of the license is availabe in the COPYING file.
Several assets in the repository are under different licenses, and when this is the case, there is a LICENCE, COPYING, or ATTRIBUTION file present in the directory of the asset, and potentially a README explaining where the asset originated from. Assets that do not have an accompanying LICENSE, COPYING, or ATTRIBUTION file alongside them are licensed as GPL-3.0.