* add web visualizer
* fallback to simple model
* less samples, hopefully more efficient
* Use audiomotion analyzer
- Note: fixed to 4.1.1 because 4.2.0 uses esm which breaks in the current workflow...
* revert publish changes
* r2
* don't massively change package.json
* lazy
* [scuffed bugfix]: Update table rating/favorite when updated anywhere else
Modify player store to have temporary state for favorite/rating update
Add effect handler for `virtual-table` to update rating/favorite for players
Note that this does not handle song grid view.
Using a similar handler for gird view did not work, as it appeared to result in inconsistent state.
Finally, this is probably not the optimal solution.
Performance appears fine for ~20k items, but no guarantees.
* restore should update song
* update song rating/favorite/played everywhere except playlist
* special rule for playlists
* use iterator instead
* [enhancement]: Support toggling Album/Track view for gneres
The _primary_ purpose of this PR is to enable viewing tracks OR albums for genres.
This has a few requirements:
1. Ability to set default route for genres, **except** when already on song/album page
2. Ability to toggle between album and genre view
3. Fixed refresh for genre ID
Additionally, there was some refactoring:
- Since the *-list-headers had very similar functions for search, export that as a hook instead
* also use hook for album artist
* support switching albumartist tracks/albums
* remove toggle on song/album list, simplify logic
* fix carousel, full screen metadata improvements
* Add missing mapped keys on multiple artist
* Remove bg opacity on metadata section
* Improve visibility of currently playing song
---------
Co-authored-by: jeffvli <jeffvictorli@gmail.com>
Two bugs addressed in response to Safari changes:
1. Only handle `onEnded` for real streams, preventing `autoNext()` spam when the last track finishes
2. `.play()` is not necessarily a safe operation (if empty wave was started, can cause exception later). Catch this exception and discard it. This also only occurred when playing the last track
* [bugfix/feature]: Improve ratings
Fix: add preventDefault/stopPropagation to prevent scrolling to top in queue
Feat: instead of double click for clear, click on same value
* initial idea for playback rate
* Add transparency to dropdown
* Move playback speed component to right controls
* Set mpv speed on startup
---------
Co-authored-by: jeffvli <jeffvictorli@gmail.com>