/harmonoid

🎡 Elegant music app to play & manage music library. Lyrics & playlists. YouTube support.

Primary LanguageDart

Elegant music app to play & manage music library

Join our Discord server?

New Windows & Linux version is live πŸŽ‰. We are still working on Android refactor...

Motion

Download

Windows

On Windows, setup is recommended as it automatically links with files & file explorer context menus.

Linux

NOTE: Flutter seems to be causing MEMORY LEAKS on Linux.

It causes memory to steadily increase & at a really fast pace when indexing the music.

flutter/flutter#73402

I will have a detailed look once I return after my exams.

On Debian or Ubuntu based distros, you need to install mpv & libmpv-dev to be able to install & run the app.

sudo apt install mpv libmpv-dev
sudo dpkg -i harmonoid-linux-x86_64.deb

Similar instructions can be followed on your favorite distro.

Big thanks to @prateekmedia for setting up Linux packages & stuff.

Android

  • Coming Soon 😣.

Features

  • Powerful music library management based on metadata tags. Indexes music into group of albums & artists.
  • Capable of indexing 20 files/second (on Windows) & saves cache for future app start-ups.
  • Cross-platform (currently aiming Windows, Linux & Android).
  • MPV based music playback for strong format support (on Linux & Windows) using dart:ffi.
  • Taskbar & System Media Transport Controls for Windows.
  • Small installer (< 25 MB) & low RAM usage (< 120 MB).
  • Lyrics for all your music.
  • Very strictly follows Material Design guidelines for UI & animations.
  • Ability to create persistent or "Now playing" playlists.
  • Context menu integrations & file associations (exclusive to setup version).
  • Discord RPC integration.
  • Portable (if you wish).
  • Does not use electron.js.
  • D-Bus MPRIS controls for Linux.

Upcoming features

  • Mini-window mode.
  • Minimization to system tray.
  • Music visualizations.
  • Tag editor.
  • Time-synced lyrics.
  • Importing playlists from YouTube & Spotify using Web API.
  • Equalizer.
  • Improvising YouTube support to be close to official web-client.
  • Last.fm scrobbling.
  • Plugin API.
  • Windows 11 IExplorerCommand integration.
  • Publishing to Microsoft Store & other places.
  • Support for remaining macOS & iOS platforms.
  • YOU Tell πŸ˜„

We are working hard to bring this new update to all platforms soon.

NOTE: Project is NEVER going to offer feature for downloading music from YouTube.

License

Source code and official releases/binaries are distributed under our End-User License Agreement for Harmonoid (EULA). Please check that there are modules/libraries in the source code that are proprietary to Harmonoid & present in the external directory (at the time of commiting this file).

Acknowlegements

  • Harmonoid is (for the most part) written in Dart programming language using Flutter SDK. Refrences to all the other external "plugins" & "packages" used at the time of building application can be found here.

  • Harmonoid uses a modified version of libmpv for media playback capabilities on desktop. The compilation setup & other information can be found here. The application bundles a minimal & LGPL compilant version of mpv shared library (mpv-2.dll). Users are free to update/change to their own preferred libmpv by replacing the mpv-2.dll file present in Harmonoid's application directory.

  • End-User License Agreement for Harmonoid (EULA) is a slightly modified version of End-User License Agreement for Aseprite (EULA).

Bonus

Well you've scrolled this down... How about seeing more stuff.

Contributors

  •   Hitesh Kumar Saini
    • Lead developer. Deals with playback & indexing of music. Writes UI, state management & lifecycle code. Maintains native C++ plugins.
  •   Denis
    • Windows installer & major bug fixes. Russian translation.
  •   mytja
    • WinGet package. Backward compatiblity checks. Bug reports. CI. Slovenian translation.
  •   Prateek Sunal
    • AppImage, RPM & Flatpak installers. Bug reports. Hindi translation.
  •   Bluebell
    • Artwork & iconography used in the application.
  •   Bruno D'Luka
    • User interface & design. Portuguese translation.
  •   Gaetan Jonathan BAKARY
    • Linux related bug-fixes. French translation.
  •   Fodor Benedek
    • Hungarian translation.
  •   Tamim Arafat
    • User interface & design. Bug reports.
  •   Max Haureus
    • Swedish translation.
  •   Lars
    • Dutch translation.
  •   CanbiZ
    • German translation.
  •   ilopX
    • Testing & bug reports.
  •   Ankit Rana
    • Testing & bug reports.
  •   Leon
    • User interface fixes, app persistence improvements. Dutch translation.
  •   stonegate
    • Mandarin translation & bug reports.
  •   γ•γΆγ†γ‡γ„
    • Japanese translation.
  •   Yusuf Kamil Turan
    • Turkish translation.
  •   yulog
    • Update Japanese translation.
  •   ejacquemoud
    • Update French translation.
  •   Maison
    • Update Portuguese translation.