🎉🎉 Welcome to the new Nora 🎉🎉
This is a big update for Nora which includes a lot of new features, and bug fixes.
-
🎉 New Features and Updates
- Now LyricsPage will show the copyright info of the lyrics at the bottom of the page.
- Metadata of Musixmatch for songs now includes artworks from Spotify.
- Auto-scrolling of synced lyrics can be toggled now in the LyricsPage.
- Ability to sort songs relative to the released year.
- Song component now displays the song released year.
- Now Nora can read and write to audio files with a synchronisedLyrics meta tag.
- Added abort controller support for most resource-intensive functions to stop them in case of an emergency.
- Added a new feature to allow users to select whether the app window should hide in the system tray or close by clicking the close button.
- Added a new feature to allow users to determine whether the app should start as hidden when the startup is enabled.
- Added an entry to the system tray with some controls of the app such as show/hide and exit.
- Added the feature to disable the Checkbox component.
- Added a new button to refresh lyrics so that if incorrect lyrics are shown it will re-fetch the correct lyrics.
- Added a new button to show offline lyrics when after the user has requested the online lyrics.
- Added a new placeholder image for MusicFoldersPage when there are no any folders.
- Added a new AppShortcutsPrompt that shows app shortcuts.
- Added a setting to change the Musixmatch token.
- Added support to get metadata for songs from iTunes.
- Added the functionality to start selecting multiple items by holding the shift key and selecting an item.
- Added support for sorting on a lot of pages including AlbumsPage, FoldersPage, AlbumsInfoPage, etc.
- Added new FoldersPage to side bar of the app.
- Added new MusicFolderInfoPage for songs in folders.
- Added a Clear All button for the notification panel.
- Added a Spotify artwork fetching script for song metadata.
- Added a new button to save online lyrics to a song while watching it on LyricsPage.
- Added a queue for parseSong to prevent songs from being parsed twice.
- Added a new title bar for the LyricsPage that shows new buttons that provides features such as Save online lyrics etc.
- Added Lyrics to Mini Player.
- Added support for experimental for multiple search keywords in Search.
- Ability to toggle artists as favorites.
- Added a new default artwork for albums.
- Refactored code into smaller modules for easier readability.
- Improved search functionality
- Added error boundaries to catch errors on app.
- Ability to disable new update alerts for the current version.
- Added a new feature where artists' artworks can be shown on the audio-controls panel.
- Now most relevant results in SearchPage will be more relevant to the search query.
- New network connection indicator on the header.
- Now users can fetch song metadata from the internet and update their songs. (Experimental)
- Support for Synced Lyrics.
- Lyrics from Musixmatch (Implementation from Fashni's MxLRC package). (Experimental)
- Now users can go back and forward through different pages. (Experimental)
- Now users can select multiple songs, artists, etc, and do specific tasks with them. (Experimental)
- New background artworks when viewing ArtistsPage, SongInfoPage, etc.
- Now users can add artworks to user-created playlists.
- Support for recording listening patterns. (Experimental)
- New metrics about listening patterns of a song in SongInfoPage. (Experimental)
- Now users can clear search history results.
- Now users can play songs in a specific genre directly from the GenreInfoPage.
🔨 Fixes and Improvements
- Improved musixmatch lyrics matching which helps to send correct lyrics for songs.
- Reduced font size on context menu items.
- Updated the UI of some components of the app.
- Updated musixmatchSettingsPrompt with a link to how to generate a new user token.
- Updated app dependencies, removed unnecessary dependencies, and fixed some dependency vulnerabilities.
- Updated the maximum dimensions that can be achieved by the Mini Player.
- Updated AUDIO_FADE_INTERVAL and AUDIO_FADE_DURATION.
- Resolved some path issues on the Playlist component.
- Improved app updates functionality.
- Fixed a styling issue where material symbols show icon text instead of icon until it loads its resources.
- Fixed a bug where resetting the app while parsing the library wouldn't stop the parsing process.
- Fixed a bug where the app opens the ReleaseNotesPrompt even though there is no new update to the app.
- Fixed a bug where the app won't start with the previously played song position after an app restart.
- Fixed a bug where resetting the app doesn't remove the listening_data.json file.
- Fixed a bug where the shuffle state is not saved when the app is closing.
- Fixed a bug where the toggling mute state doesn't work when using the keyboard shortcuts.
- Fixed a bug where deleting a currently playing song puts the app in an infinite loop of errors.
- Fixed a bug where HomePage isn't getting updated when a recently played song got deleted.
- Fixed a bug where lyrics are shown with a small delay.
- Fixed a bug where song controls show incorrect metrics such as showing that the song is paused even though the song is playing.
- Fixed a bug where lyrics are fetched without obeying provided filters.
- Fixed a bug where song listening data is not getting recorded.
- Fixed a bug where resources are not being loaded due to resource urls having query parameters.
- Fixed a bug where the app shows the error prompt when a user deletes a song.
- Fixed a styling issue where the 'drop song here' message prompt was not positioned correctly.
- Fixed components re-rendering even though they didn't get any new data.
- Fixed a bug where some keyboard shortcuts not working when in MiniPlayer.
- Fixed a bug where notifications aren't removed when reduced motion is enabled.
- Fixed a bug where the app is looking for search results with empty strings or strings with only spaces.
- Fixed a bug where ListeningActivityBarGraph not showing listening data metrics.
- Fixed some styling issues that appeared on the SongArtist component.
- Fixed a bug where mediaSession controls are not working as intended.
- Fixed some error boundary fallback ui styles.
- Fixed some styling issues in Song and SongsPage.
- Fixed a bug where the song components in some pages not showing the song year.
- Fixed mini player lyrics not positioning to the center.
- Fixed a bug where ReleaseNotesPrompt shows that the app is in the latest version even though there is no network connection.
- Fixed an overflowing issue on some pages.
- Fixed a bug where updating artwork on a song wouldn't show it on the app instantly due to image caching.
- Fixed a bug where lyrics not showing instrumental gaps of a song in lyrics.
- Fixed a bug where lyrics are not being identified as synced.
- Fixed a bug on CurrentQueuePage where the current playing song is not positioned correctly.
- Fixed some text styling issues on PlaylistInfoPage.
- Fixed a bug on the ConfirmDeletePlaylist prompt not positioning elements correctly.
- Fixed a bug where a blacklisted song showed an incorrect index.
- Fixed a bug on the render process where a memory leak occurs due to subscribing for max no. of preload's event listeners.
- Fixed a bug where clicking on Artist not directing to ArtistsInfoPage.
- Fixed a bug where clicking on Genre not directing to GenresInfoPage.
- Fixed a bug on PromptMenu where it doesn't wait for the fade-out animation to end to clear content on the PromptMenu.
- Fixed a bug on MostRelevantResult where clicking on it doesn't direct to the specified info page.
- Fixed a bug on PromptMenu where quick menus opened in full-screen or in maximized windows will make its content appear blurred.
- Fixed Artist component showing wrong default artwork.
- Fixed some contrast issues on GenreInfoPage.
- Fixed a bug where Prompts are not positioning Button components correctly.
- Fixed a styling issue on the Playlist component where when hovered, shows an overflowed gradient.
- Fixed SongArtwork component on SongTagsEditingPage not positioning its buttons correctly.
- Fixed NetworkIndicator not updating its state as intended.
- Fixed a bug in Playlist where clicking on it wouldn't direct to the PlaylistInfoPage.
-
🐜 Known Issues and Bugs
- Editing song tags could remove the artwork of a song.
- Sometimes adding a song to play next would only add it to the queue instead of adding it next to the current song.
- There is still a small amount of unwanted CPU consumption due to the over-rendering of components.
Thanks, @JustCallMeQuincy for the contributions and the feature suggestions for the app and for everyone who has shown interest in my project.
app installer sha512: cE/Gry+9CVIptuyBu24RStTBckefXzUoINGN84aKy+vEmYu4tfj+Q+SxXin2WtY3k+2d5tsSg1Ti7r8o0R3XLQ==