Releases: harmonoid/harmonoid
Bug-Bash #9 [Windows, Linux, Android]
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]
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
- Updated Spanish (@enrique-mp).
- Updated Portuguese (@maisondasilva).
- Updated Catalan (@aniol).
- Updated Japanese (@maboroshin).
- Updated Czech (@Tutislav).
- Updated Italian (@Trainax).
- Updated Russian (@Feelogil).
Breeze [Windows, Linux, Android]
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
- Taylor • 10 $ per month.
- Oleks • 4.50 € per month.
- Benjamin Kranz • 4.50 € per month • Checkout their YouTube Channel!
- Tse Loki • 2 € per month.
Translation Updates
- Updated Japanese (@maboroshin).
- Added Korean (@dart-bird).
- Updated Spanish (Latin America) (@SteveeWasTaken).
Going Ahead [Windows, Linux, Android]
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 wrongBuildContext
. - 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 toShuffle
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 withModernNowPlayingScreen
(?). - 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
- Taylor • 10$ per month.
Patreons
- Oleks • 5$ per month.
- Benjamin Kranz • Checkout their YouTube! • 5$ per month.
- Mohammed Abutaki • 5$ per month.
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
- Added & updated Czech translations (@IHtDzenda & @PogLop).
- Added & updated Spanish translations (@enrique-mp & @SteveeWasTaken).
- Updated Portuguese translations (@maisondasilva).
- Updated Italian translations (@Trainax).
- Updated Slovenian translations (@mytja).
- Updated German translations (@ken-der-guru).
- Updated Hungarian translations (@csalsz).
Essentials [Windows, Linux, Android]
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
& defaultMusic
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
- Taylor • 10$ per month.
Patreons
- Oleks • 5$ per month.
- Benjamin Kranz • Checkout their YouTube! • 5$ per month.
- Mohammed Abutaki • 5$ per month.
Translation Updates
- Added Malaysian translations (@Thaza-Kun).
- Added Italian translations (@Trainax).
- Updated Simplified Chinese translations (@litbear).
- Updated Russian translations (@Feelogil).
- Updated Malagasy translations (@rivo2302 & @tbgracy).
- Updated Turkish translations (@CilgaIscan).
- Updated Japanese translations (@mi875).
- Updated Portuguese translations (@maisondasilva).
- Added Ukrainian translations (@unreadablename).
- Added Spanish translations (@SteveeWasTaken).
Bug-Bash #8 [Windows, Linux, Android]
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).
- Thanks to @FloRyuK0 for the report.
- Fixed storage access permission issue specifically on Android 10 (#338).
- Thanks to @Quackdoc for the report.
- 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]
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 (fromutf8
), 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.
- libmpv stores it in a single byte with a value of
- 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.
- This caused libmpv to return incorrect UTF-8 bytes (from
- 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"
IOException
s from Java/Kotlin.
- This will prevent any "File name too long"
- 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]
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 &
TextField
s 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 ofIcons.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) toAndroid/data/com.alexmercerind.harmonoid/files/.Harmonoid
. - This is due to scoped storage enforcement.
Bug-Bash #6 [Windows, Linux, Android]
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).
- big thanks to @lars-goeran for descriptive reports.
- fix(critical): some files not being indexed from added folders (#322) (windows, linux).
- big thanks to @sakuramodokich for descriptive reports.
- fix: view album art button not working for some albums containing ascii characters (windows, linux).
- big thanks to @sakuramodokich for descriptive reports.
- 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
- Oleks • 5$ per month.
- Benjamin Kranz • Checkout their YouTube channel! • 5$ per month.
New Horizons [Windows, Linux, Android]
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 withDuration
s 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/OEditDetailsScreen
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
TextField
s 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.