0.20.0
Yes, Museeks is still alive, I worked on a bunch of small improvements in the past year, but due to a few unintended bugs and side-effects, I could not finish the full release. Also, I kind of got caught in a big rewrite of the back-end, so here we are :)
This is a quite big update, and to illustrate the nature of changes this new release brings, I'm bumping the version directly from 0.13
to 0.20
.
There are a few breaking changes, issues and removed features, they are marked with
Let's dive into what's new!
Bye Electron, Hello Tauri!
Museeks is now built on top of Tauri instead of Electron. This brings many improvements, but also a few downsides, so let's details those!
The whole back-end has been rewritten from TypeScript to Rust, and the main advantage of the new platform is reduced footprint on your system.
Electron | Tauri | ||
---|---|---|---|
App Size (.app) | 201.4 MB | 8.1 MB | |
CPU % (maximized, playing) | 26.3 % | 12 % | |
Memory (maximized, playing) | 331.3 MB | 197.2 MB |
Testing done on macOS, sources: trust me bro. More seriously, gains may vary depending on systems, I did not setup a real and strict test procedure, but the order of magnitude should be similar.
Another improvement is all the interactions with the operating system are not done from the UI anymore, but from the Back-End using IPC, making the UI more responsive and the app more secure.
The storage layer is not backwards compatible (tracks, playlists and config):
- You will have to re-import your library from the app
- Please export your playlists before installing
[email protected]
, so Museeks can re-create those when re-indexing your library
Downsides and Known Issues
There are some downsides jumping to a newer but less mature platform, and I will need your help to report bugs or issues you see. :)
Most existing features could be ported, but there are a few exceptions:
⚠️ Known Issues
- All platforms:
- Audio output selection is broken
- Windows:
- Drop-files-anywhere is broken
- Thumbar is broken
- macOS
- The queue cannot be persisted for more than 2000 tracks when the app is re-opened
- The dock context menu is broken
Header Revamp
The header was in dire need of some improvements, here are the things that changed:
- More compact, track name and album + artist on different lines
- Added interactivity hints buttons (play, pause, shuffle etc)
- Added a "See more" button in the queue panel
- Added covers in the queue panel
- Changed the volume changer location to avoid collision with player controls
- Improved the "muted" state visibility (it was quite confusing before)
- Fixed window frame color mismatch on Linux / Windows when changing theme
before/after:
Library Scan Revamp
Library folders are back! Instead of just importing folders, you can set all your library folders and rescan them at once. In addition to that:
- Added the possibility to automatically re-scan your library on startup (disabled by default)
- Added notifications about the added tracks and playlists
Dark Theme Revamp (again)
The Dark theme got refined, here are the highlights:
- More neutral color set (instead of the previous dark blue tint)
- Better contrast around borders, progress bars, etc
- Window frame now also gets dark (window/linux)
before/after:
Compact track view
It is now possible in Settings > Interface
to set the track density to compact
for those who like to see more things at once.
Scroll Restoration
When moving between views (playlists, library etc), the scroll position will now be restored.
Edit more track information
It is now possible to edit more track information, like year, track numbers and disk numbers. Thank you @igorer88 for building this!
⚠️ Removed Tray
The tray icon was removed.
- Tray Icons are always buggy in some form on some Desktop Environment (blurry icons, duplicated tray, etc), and I cannot test them all.
- The Desktop Environment (on both Linux and Windows) should be providing the basic usability bricks, and apps should plug themselves to them.
The tray way mainly used to control the playback and close the app (using the cross icon to close the app, the app would actually get minimized, and not closed).
It makes more sense to control the playback via MPRIS, which Museeks also supports, and the close behavior should be consistent with other apps. This also aligns with many other music players on both Windows and Linux (VLC, iTunes, Clementine etc).
Hence the removal :)
⚠️ Removed 32-bit binaries
WTTS. This was mainly done for my own sanity. If you really need a 32-bit version of Museeks, please open an issue.
Misc
- Adjust icon size on Linux + macOS
- Track change will not trigger a new notification but will update the previous one
- Added button in the settings to open the storage folder (database, config, etc)
- The app is now correctly notarized on macOS (no more security warning on first startup)
- Improved accessibility (progress, queue, etc)
Internal changes
- The database is now powered by SQLite, which should allow us to perform migrations in the future instead of asking users to recreate their library at every release
- The bundling and transpilation is now handled by Vite instead of Webpack
- Hot-reloading when editing UI files (finally!)
- Migrated from Redux to Zustand for UI state management
What's next?
On my immediate todo list are the next items, some are partially done but now fully cross-platform or missing features:
- Improve startup time (we can probably trim one second easily)
- Artists/Albums View (#130): add another view to access tracks by artist, grouped by albums.
- File association (#155 #154): be able to play audio files directly from file explorers
- Get feedback on Tauri+Linux and fix issues if any (I could not extensively test things there)