-
-
Notifications
You must be signed in to change notification settings - Fork 237
Description
Release Goals
Greatly affected by my personal life e.g. study, schedule, exams, other projects, interview preparation & college.
[Out Now • v0.3.4] 2022 Q4 - Part 1
- 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 (MPV ipc socket #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. -
AlbumTilecontext menus (Long / double click to add album to queue. #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& defaultMusicfolder 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 (No touch Dragging on Linux (Upstream flutter issue) #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.
[Out Now • v0.3.5] 2022 Q4 - Part 2
- Migrate project to API changes in
package:media_kit. - Safer hyperlinks. Add null-check after lookup for album/artist in
package:media_libraryHashSet(s) (OPENING HYPERLINK FOR A SONG NOT IN THE LIBRARY #366). - Multiple genre support (not exposed yet).
- Ability to disable all audio filters on Android. Some ROMs are having trouble.
- Fixed NAS / SMB support on Windows.
- Support for installing for current users only on Windows (Windows Installer: Install to current user #372).
- Next/Previous buttons not greyed out in
ModernNowPlayingScreen(Next and Previous buttons are not greyed out in view with the animation #369). - Make fallback album arts configurable (Feature: Expose fallback album art file(s) list to Configuration.JSON #379).
- Fixed missing thumbnail toolbar buttons on Windows.
- Fixed opening file from file explorer causing Harmonoid window to become restored (if already maximized).
- Fixed "CANCEL" button on minimum file size dialog popping
Navigatoron the wrongBuildContext. - Sticky Miniplayer option for Android.
- Add
Play allbutton next toShuffleon Albums & Artists screens to play them orderly. - Disable GTK headerbar on GNOME (request: disable GTK header-bar on GNOME #380).
- Fixed unresponsive window when closing window on Windows 7 only.
- Fixed issue that caused opening music from File Explorer making Harmonoid restored (if maximized) on Windows.
- Aligned text & label inside various
TextField(s). - Fixed issue that made manually entering values in "Control Panel" difficult.
[Under Progress] 2022 Q4 - Part 3
-
Delegate recursive directory listing & metadata fetching toMediaStoreuse inpackage:media_libraryon Android 10+. - "Play next".
- Replay Gain support for Windows & Linux.
- Drag & drop support ([Feature Request]: Drag+Drop support #371).
- Add "album artist" filter in Artist tab (feat: add album artist filter in artists tab #365).
- Use rubberband as default audio filter instead of scaletempo (if available on system) (Low quality bass #368).
- Support for system-wide Android equalizer (Support for system-wide equalizers on Android #374).
[Future Scope] 2023 Q1
Patreon, GitHub Sponsors & supporters exclusive [one-time].
- Android app for controlling & browsing music on desktop app.
- Folder view.
- Directory sorting parameters.
- View types: tiles, icons, list.
- Ability to add a complete folder to "now playing" or a playlist.
- Genre view (with multiple genre support / tag split).
[Future Scope] 2023 Q2
- Universal Material You / Material Design 3 music widget (not specific to Harmonoid).
Somewhere along the line
- Last.fm scrobbling.
- Mini-window mode.
- Minimization to system tray.
- Improved playlist specification.
- Plugin API.
- Windows 11
IExplorerCommandintegration. - Re-design illustrations & empty state artworks.
- Ability to disable animations (Disabling animation #341).
- Expose theme configuration & add support for third-party themes.
- Enable ICECAST metadata support for online URLs & cache cover art.
- Consistent & precise Material You / Material Design 3 implementation.
- Improved UI for tablets.
Seems impossible based on my availability
- [feature] Add support Jellyfin or other self-hosting media/streaming services #315.
- Support Subsonic API compatibles servers (e.g. Navidrome) #375.
- [Feature Request] Tags & metadata editing support #277
Along the way, account for the improvements made in Flutter itself.
Personal Thoughts
I built Harmonoid for myself. I have spent a large amount of time on configuring small bits & pieces of the UI & animations. You may know more about this in "Why" section of the README. Holding accountability of a software, ensuring that the implemented features work perfectly & UI feels good / consistent / nicely-put-together, is a really big challenge. Still, I feel it's in a good state now.
Recently, I have been really active in terms of development on Harmonoid (and various modules as part of it). I still fix bugs within few hours of report (now things are really stable though) from the users, usability is important.
However, I've decided to slow down.
I recently had a realization (after having a talk with my family & friends) that I've been working on this like a maniac. I should instead study my subjects in detail, prepare for interviews, learn more skills & work for my future. In general, I'm missing out my life as-well. Now, I'm back in college & I also have a part-time job along the way. Harmonoid isn't going anywhere. Unfortunately, the amount of time that I've spent on Harmonoid is far-far more than a "portfolio project" deserves. A "portfolio project" doesn't have any users or any responsibility of holding accountability.
When adding a new feature, it's now a trade-off between:
"The effort it would take." V.S. "The actual improvement in experience it would bring."
There are project Patreon & supporters (love you guys), who deserve some exclusive features for their valuable early support to the project. Let's see where this goes.
Then, there are people who ask for crazy features. Like... c'mon I'm a single developer with little-to-no funding & backing. There's no way I can compete with a multibillion-dollar organization. It's just that I worked hard on this software, after missing out on a lot of moments of my life with my family & friends to hold "somewhere-near" credibility & quality.
Anyways, good things take time to build (years of time).
And I've just started, there's a lot more to come... as long as I don't suffer burnout.
Thanks!
If you have any question, feel free to ask in a comment below.