Skip to content

0.20.0

Compare
Choose a tag to compare
@martpie martpie released this 01 Jan 22:24
· 26 commits to master since this release

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!

screenshot

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 ↘️ 20x smaller
CPU % (maximized, playing) 26.3 % 12 % ↘️ 2.5x more cpu-efficient
Memory (maximized, playing) 331.3 MB 197.2 MB ↘️ 1.6x more memory efficient

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:

Screen Recording 2025-01-01 at 23 16 09

Screen Recording 2025-01-01 at 23 08 58

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

Screenshot 2024-09-13 at 16 30 36

Screenshot 2024-09-13 at 16 29 02

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:

app-new-old

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.

compact

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!

Screenshot 2025-01-01 at 23 21 35

⚠️ 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)