Skip to content

Releases: harmonoid/harmonoid

Bug-Bash #9 [Windows, Linux, Android]

06 Apr 17:17
Compare
Choose a tag to compare

Fixes few regressions caused by the last release (Windows & GNU/Linux only).

Downloads

Downloads are available on the project website.

Highlights

  • Fixed an issue that caused playback to start from first track instead of the track clicked if current queue was finished.
  • Fixed an issue that caused ink ripple to display on various surfaces when opening context-menu with right-click.

Supporters

Stabilizing [Windows, Linux, Android]

04 Apr 12:20
Compare
Choose a tag to compare

Minor bug-fixes & updates.

Downloads

Downloads are available on the project website.

Highlights

  • Added support for HARMONOID_CACHE_DIR environment variable to set cache location.
  • Fixed missing metadata of some music files on Android.
  • Fixed theming of some components e.g. switches.
  • Fixed an issue that made process not terminate on some versions of Windows (#408).
  • Updated package:media_kit to v0.0.3.
  • Updated package:safe_local_storage to v1.0.2.

Supporters

Translation Updates

Breeze [Windows, Linux, Android]

23 Feb 04:14
e0cfae9
Compare
Choose a tag to compare

Some new features & bug-fixes.

Downloads

Downloads are available on the project website.

Highlights

  • Added setting to change speed of animation effects or disable them entirely (#341).
  • Added Ctrl + Q key-binding to close the application (#403).
  • Reduced size of Windows installer & build by ~10 MB & ~30 MB respectively.
    • Thanks to @Quackdoc for stripping unused FFmpeg decoders.
  • Improved route animations.
  • Improved default window size (used on fresh install).
  • Improved "Show Album" performance. It is O(1) now.
  • Improved album screen, artist screen & playlist screen animations.
  • Improved directory picker layout on mobile.
  • Improved music library & settings layout on mobile.
  • Re-arranged settings.
  • Now language selection dialog shows country (#401).
  • Now resolved album arts are cached for rendering.
  • Fixed issue that caused new tracks to not show in album artists & artists after pressing refresh.

Future

So... I've started to work on Material Design 3 & I feel it's looking really good! Expect it to be part of the next update.

Some early screenshots:

Like the current MD2 implementation in Harmonoid, I'm going to very strictly follow the design principles in implementation so that everything looks/feels great. I want everything to look perfect, so it's a long process involving update of various screens & widgets.

NOTES:

  • Material Design 2 will never be removed from Harmonoid.
  • Material Design 3 will be completely optional & users can switch between the two from Settings.
  • Material Design 3 will be only available for Android & enabled by default on Android 12 or higher.
  • Additionally, code is now ready to add support for third-party themes.

Supporters

Translation Updates

  • Updated Japanese (@maboroshin).
  • Added Korean (@dart-bird).
  • Updated Spanish (Latin America) (@SteveeWasTaken).

Going Ahead [Windows, Linux, Android]

05 Jan 16:25
0c9d27c
Compare
Choose a tag to compare

Some necessary fixes important for project to receive quickly. Most importantly:

  • NAS / Samba file-system support for Windows has been fixed.
  • Thumbnail toolbar is no longer missing on Windows.
  • Some specific ROMs/devices will no longer face playback issues on Android.
  • Issue that caused opening music from File Explorer making Harmonoid restored on Windows has been fixed.
  • Harmonoid window no longer freezes when quitting on Windows 7 (backward-compatibility).

Downloads

Downloads are available on the project website.

Highlights

  • Fixed NAS / SMB support on Windows.
  • Fixed issue that caused opening music from File Explorer making Harmonoid restored (if maximized) on Windows.
  • Added ability to disable all audio filters on Android (disabled by default).
  • Disabled GTK header-bar on GNOME desktop environment (#380).
  • Fixed unresponsive process when closing window on Windows 7 only.
  • Updated new page animation when clicking on hyperlinks.
  • Added support for installing for current users only on Windows (#372).
  • Fixed next/previous buttons not greyed out in ModernNowPlayingScreen (#369).
  • Made fallback album arts configurable (#379).
  • Fixed missing thumbnail toolbar buttons on Windows.
  • Fixed "CANCEL" button on minimum file size dialog popping Navigator on the wrong BuildContext.
  • Migrated project to API changes in package:media_kit.
  • Safer hyperlinks. Added null-check after lookup for album/artist in package:media_library HashSet(s) (#366).
  • Added multiple genre support (not exposed yet).
  • Added Play all button next to Shuffle on Albums, Tracks & Artists screens to play them orderly.
  • Now background visuals are stored as animated WebP.
    This has significantly reduced bundle size & also improved Linux's performance with ModernNowPlayingScreen (?).
  • Aligned text & label inside various TextField(s).
  • Fixed issue that made manually entering values in "Control Panel" difficult.

Known Issues

There are few known issues & changes. These will not prevent Harmonoid from functioning, just for the record.

  • In Settings, sometimes "Visuals" thumbnail may fail to load. This is due to some change in Flutter itself.
  • Now whole music library is not added to playlist by default, when playing music from "TRACKS" tab.
    Users may revert to old behavior by enabling "Add library to playlist when playing" flag from settings.

Supporters

GitHub Sponsors

Patreons

Acknowledgements

  • @KabanFriends for working on #372.
  • @epvpalucard for actively providing feedback (over a period of 2 days) & helping me fix NAS / Samba support on Windows.
    BIG THANKS! This was a huge deal breaker for the project.

Translation Updates

Essentials [Windows, Linux, Android]

16 Nov 14:16
08a1b57
Compare
Choose a tag to compare

This update introduces a number of little tweaks, fixes & features requested by a lot of users, thus named "Essentials". A good amount of source-code has been refactored & few new sub-packages have been introduced, to improve the quality & stability of Harmonoid. Read the highlights below for descriptive information.

Downloads

Downloads are available on the project website.

Highlights

  • Ability to configure parameters (year, album artist & album name) which identify an album uniquely.
  • Remembering window position, size & maximized state on fresh start.
  • Ability to set custom libmpv options, properties & flags (#329).
  • Smoother animations (upstream from Flutter 3.3.x).
  • Smoother scrolling with trackpad/touchpad (upstream from Flutter 3.3.x).
  • Fixed/improved FLAC & OGG bitrate calculation/approximation.
  • Fix track order in AlbumScreen. Now accounts disc-number.
  • AlbumTile context menus (#339).
  • Fixed crash on Windows 7.
  • Fixed legacy NowPlayingScreen.
  • Fixed annoying line below window controls on Windows (rarely experienced on some PCs).
  • Rewrite custom window frame, more stable DPI-change handling, hit-box testing & fullscreen.
  • Use Win32 API to fetch AppData & default Music folder on Windows instead of environment variables.
  • Prevent data-redundancy in music library caching.
  • Improve "show in file explorer" behavior on Linux.
  • Improve Android launch speed.
  • Improve the quality of color palette extraction (further tweaks).
  • Better & performant URI & file path parsing.
  • Re-designed missing folders screen.
  • Add missing "Add to playlist" & "Shuffle" buttons on Android (at-places).
  • Enable Linux / Android-x86 touchscreen & mouse drag scroll (#342).
  • Old streaming recommendations behavior i.e. refresh on page revisit.
  • Fixed an issue that caused Harmonoid to request last-modified time stamps of all files already present in cache.
    This is a major issue. Now, cached last-modified time stamps are used.
    This will also improve start-up performance & safety with long file-paths on Windows. Apologies for the inconvenience.

Known Issues

There are few known issues & changes. These will not prevent Harmonoid from functioning, just for the record.

  • Sometimes "Visuals" thumbnail may fail to load.
  • Now whole music library is not added to playlist by default, when playing music from "TRACKS" tab.
    Users may revert to old behavior by enabling "Add library to playlist when playing" flag from settings.

Supporters

GitHub Sponsors

Patreons

Translation Updates

Bug-Bash #8 [Windows, Linux, Android]

21 Sep 10:11
91da606
Compare
Choose a tag to compare

Few more tweaks & fixes for Android only. No we're not turning into a rolling-release model.

Downloads

Downloads are available on the project website.

Highlights

  • Fixed an issue where pressing next/previous buttons with shuffle-enabled didn't pick a random track from the queue (#333).
  • Fixed storage access permission issue specifically on Android 10 (#338).
  • Added prompt to keep app-data before uninstall on Android.
  • Fixed an issue where Harmonoid couldn't be started on some Android ROMs.
  • Fixed animation lag when opening ArtistScreen.
  • Fixed a performance issue where UserScrollNotification were redundantly being bubbled.

I wanna take a moment to thank all the package maintainers for following up with the releases.
This release doesn't bring/fix anything for Windows & Linux, you guys are free to skip this one.

Bug-Bash #7 [Windows, Linux, Android]

19 Sep 21:51
91da606
Compare
Choose a tag to compare

This release mainly addresses a newly discovered issue that caused indexing process to completely freeze (in rare cases) for some users.

Downloads

Downloads are available on the project website.

Highlights

  • Apparently, having Latin characters with certain accents in metadata values confused libmpv.
    • This caused libmpv to return incorrect UTF-8 bytes (from dart:ffi/package:ffi's perspective).
    • This resulted in an unhandled FormatException by Dart (from utf8), causing whole event callback isolate to die.
    • For the character è:
      • libmpv stores it in a single byte with a value of 232. I mean that's under 255, so SGTM.
      • dart:ffi expects 195, 168 (with an extension byte). But, I think Dart's FFI is correct.
    • Thanks to @Zahrun for the file sample & the bug-report.
    • This is quite odd since Harmonoid is tested against music files having metadata/tags in Japanese, Mandarin & other foreign languages (even Latin characters with accents). This was quite an edge-case.
    • However, the issue is now fixed. More details may be found at #331.
  • Harmonoid on Android now uses MD5 hashing for generating a unique identifier to cache the file when opened from file explorer etc.
    • This will prevent any "File name too long" IOExceptions from Java/Kotlin.
  • Translations have been updated for few of the languages, thanks to our kind translation providers.
    • Update Portuguese translations. Thanks to @maisondasilva.
    • Update Simplified Chinese translations. Thanks to @wcxu21.
    • Update Russian translations. Thanks to @Feelogil.

Final Steps [Windows, Linux, Android]

19 Sep 03:52
91da606
Compare
Choose a tag to compare

This release mainly targets Android, since Windows & Linux implementations are very feature-proof & stable for now.
After this release, I can ensure proper feature parity & quality on all supported platforms.

Downloads

Downloads are available on the project website.

Highlights

  • Bitrate, sample rate & format of currently playing song is displayed on the bottom bar & now playing screen. This may be configured from the settings.
  • Now same folder can't be added twice in music library.
  • Music library refresh performance has been improved, less copy operations.
  • Harmonoid on Android now uses Scoped Storage, making it more privacy friendly.
  • This means native delete permission dialogs & more privacy friendly file/folder pickers are added specifically for Android.
  • Harmonoid now makes use of newest Android 13 SDK 33 to provide separate control over notification, photos & music permissions.
  • Now playing screen now looks modern. The colors extracted from currently playing song, ripple into the view, giving a nice transition. The panel can also be now slided downwards, which was quite annoying in previous versions.
  • Lyric view in Android has been made smoother.
  • Changes & tweaks to overall design, making things like context menu positioning & TextFields more coherent.
  • Lyrics are now cached by default.

Changes

All Platforms

  • fix(style): showMenu constraints causing overflow with some languages.
  • feat: ripple effect on NowPlayingScreen with extracted color palette.
  • feat: display audio output bitrate, sample rate & format on NowPlayingBar & NowPlayingScreen.
  • feat: .lrc caching.

Mobile

  • feat: configurable grid size (4, 3, 2, 1).
  • feat: add volume slider.
  • feat: slideable NowPlayingScreen.
  • feat: sliding panel playlist viewer.
  • feat: scoped storage compilant (android 10+) directory picker & delete permission dialogs.
  • feat: special permission settings for android 13 or higher, giving granular control over images or notifications.
  • fix: migrate scoped storage on android.
  • fix: LyricsScreen jitter on scroll.
  • style: use Icons.favorite instead of Icons.thumb_up for like indicator.
  • style: add themed icon for android 13 or higher.
  • build: upgrade targetSdkVersion & compileSdkVersion to 33.

Notes

  • If you were using existing Android version, your music library will be re-indexed & old playlists won't be recognized.
  • To restore your existing playlists & music library in this new stable release, you replace files/cache from .Harmonoid (at root of your local storage) to Android/data/com.alexmercerind.harmonoid/files/.Harmonoid.
  • This is due to scoped storage enforcement.

Bug-Bash #6 [Windows, Linux, Android]

04 Sep 08:22
cf31c08
Compare
Choose a tag to compare

This release addresses some of the crucial bugs & performance issues discovered & reported by users in last major release.

Downloads

Downloads are available on the project website.

Highlights

  • These bugs aren't that easily reproducible for most users but need to be addressed before moving on.
  • Although this was expected, considering first Android build & large improvements to windows/linux tag reader.
  • Along the way, this also brings updated translations from our kind translators at harmonoid/translations.
  • Consider updating to this if you're on v0.2.9 or lower.

Changes

  • fix(critical): music files without any embedded metadata taking way too long to load (android).
    • big thanks to @RapidzDE for descriptive reports.
  • fix(critical): application not reading tags from some music files (#321) (windows, linux).
  • fix(critical): some files not being indexed from added folders (#322) (windows, linux).
  • fix: view album art button not working for some albums containing ascii characters (windows, linux).
  • fix(critical): next & previous buttons not skipping tracks when on "repeat-one" mode (android).
    • big thanks to @NoeRi9n for descriptive reports.
  • fix(critical): discord rpc album arts & metadata do not correct for missing tag files (windows, linux).
  • fix(critical): improve now-playing-screen & android notification performance (windows, linux, android).
    • these freezes were more noticable with there were more files without any embedded metadata & album art.
  • fix: make fallback album art lookup (cover.jpg, Folder.jpg) experimental (windows, linux, android).
    • looking up for additional files at rendering can be expensive.
  • fix: do not spam console with RangeError messages redundantly (windows, linux).
  • perf: improve android storage path retrieval.
  • style: fix TextField paddings on linux.
  • feat: dedicated like button on android now-playing-screen.
  • translation updates (thanks to our kind translation providers):
    • update Azerbaijani translations. thanks to @Lucifer25x.
    • update German translations. thanks to @MickLesk.
    • update Indonesian translations. thanks to @KesiTakeshi.
    • update Japanese translations. thanks to @yulog.
    • update Portuguese translations. thanks to @maisondasilva.
    • update Simplified Chinese translations. thanks to @wcxu21.
    • update Swedish translations.
    • update Russian translations. thanks to @Feelogil.

Patreons

New Horizons [Windows, Linux, Android]

30 Aug 20:44
Compare
Choose a tag to compare
video.mp4

Downloads

Downloads are available on the project website.

There's a lot to cover, let's go through this changelog really quick.
Like it's been done in the past, minor releases & major ones... and this is a major release.

Still steady on the goal of building a consistent, cohesive, modern & fluid music experience for all. 🎵

Highlights

1. Android

0.mp4
1.mp4
2.mp4

Very strictly implemented official Material Design guidelines for design & animations. Official Video:

material-design-guidelines.mp4

2. Volume Boost

Now pitch shifting, speed change & volume boost is available for all platforms.

3. File information & RAW metadata reader

4. Dense Layouts for Android

5. Performance

Before, Harmonoid could index around ~25 songs per second after clean-install / re-index.
Now, it's over 50 songs per second! 🔥Not to forget, app still caches your music library, resulting in an instant start for future.
Ability to set minimum file size has also been added.

indexing.mp4

6. Notification Lyrics

Just drag your notification shade down to sing along.

7. Whatever This Is

8. Even Error Screen Is Revamped

This is a fake error FYI.

9. Many Bug Fixes

See the release notes below, to see the most annoying bug get smacked.

Release Notes

All Platforms

  • feat: ability to independently sort/order albums, tracks, artists & genres.
  • feat: direct metadata reader (from file picker, direct URL or file-path) & copy as JSON.
  • feat: add file picker to play a media file directly without file explorer.
  • feat: LRC setter & reader.
  • feat: volume boost.
  • feat: file info viewer.
  • feat: added ability to avoid indexing files below a certain size.
  • feat: easter eggs.🥚
  • style: follow material design more precisely. more consistency & better design.
    🎈 massive adjustments to sizes, dialogs, buttons, paddings, colors & widgets.
  • style: revamp error screen.
  • fix(regression): broken fallback album art discovery [cover.jpg, Folder.jpg etc.].
  • fix: year not appearing correctly for some tracks [but reading date instead].
  • fix: deleting tracks not updating artist screens in rare cases.
  • fix: possible bug where app could result in blank screen, if package:palette_generator failed to extract a palette from album art.
  • fix: removing a directory not updating album-artists tab unless restarted.
  • fix: sometimes web recommendations fail to render.
  • fix: seekbar position/duration & Duration display at other places in app interface safer with Durations larger than 1 hour.
  • perf: deserialize music library cache concurrently on separate threads on start-up.
  • fix: improve lyrics accuracy.
  • Special thanks to:
    • @maisondasilva for quickly updating the Portuguese translations.
    • @wcxu21 for quickly updating the Simplified Chinese translations.
    • @gaetan1903 @hal9174 for quickly updating the French translations.
    • @mytja for quickly updating the Slovenian translations.

Desktop Specific

  • perf: improved indexing performance even more!!! now indexing around 50 tracks per second.
    since app caches songs for future automatically, this is important only for new users or during re-indexing.
  • fix: addressed & improved linux memory management.
  • feat: new music sorting/ordering ui & floating panel for desktop.
  • fix: non-square album arts being stretched.
  • fix: visual image picker in linux.
  • fix: unsafe file explorer association & "Play URL" implementation [with certain file paths].
  • fix: race condition in discord rpc.
  • fix: non-tagged media showing incorrect album arts in discord rpc.
  • fix: safer File I/O EditDetailsScreen album art change on windows.
  • fix: compatibility with older libmpv versions (before v0.33.0).
  • fix: disable custom window frame on windows 7, 8 & 8.1.
  • fix: application not restoring the last played playlist's index on fresh start.

Mobile Specific

  • feat: pitch shift & rate control on mobile.
  • feat: play raw URL & open media file directly on mobile.
  • feat: edit details screen on mobile.
  • feat: time-synced lyrics for mobile.
  • feat: pull to refresh in web recommendations.
  • feat: stacking notification lyrics.
  • style: enforce android 12 over-scroll & ink-sparkle effects.
  • style: visible context menu buttons on web related widgets on mobile.
  • fix: file opening from file-explorers/whatsapp/chrome etc. like third-party apps on android & general stability.
  • fix: file opening not working from some file browsers on android.
  • fix: notification service dying randomly.
  • fix: improve android home, cache & default collection directory retrieval.
  • fix: yeet exit confirmation dialog.
  • fix: MiniNowPlayingBar theme in-case no palette is extracted on mobile.
  • fix: about page link opening is not in external application.
  • fix: android app not saving state upon exist.
  • fix: improve TextFields in web search on mobile.
  • perf: prevent whole MiniNowPlayingBar re-builds on every position update.
  • perf: switch to package:just_audio & package:audio_service for audio-output & notification-handling on mobile.
  • perf: fix android app becoming jittery over prolonged use.
  • perf: improve search experience in web with persistent floating search bar on mobile.

What's Next

Chilling & enjoying what I've made. I'm really tired.

On a serious note, these are the short-term plans:

  • Some people seem to have some trouble with NAS systems so that's something to handle.
    Please get in contact if you're willing to de-bug & provide reports for fixes.
  • Adding Material You support, behind an optional switch (because not everyone admires the change).
    While being consistent in terms of design & animations as currently Harmonoid is.
  • Release on Google Play Store.

On the other hand, I'm already enjoying listening to music with Harmonoid (way too much) & don't feel necessity of more features.
Harmonoid now has details editor, direct URL players, synced lyrics, pitch shifting, volume boost ... so on.

Please report bugs, if you find any.

It is really important for us to build a stable experience, though everything seems to be working fine for us.
Targeting 3 platforms Windows, Linux & Android alone is surely a tough job.

End Notes

Consider becoming a Patreon or support voluntarily with PayPal if you're enjoying Harmonoid & would like to see more of it.

NOTE: Re-publishing release from my second account. I accidentally deleted original one.