Commit graph

86 commits

Author SHA1 Message Date
Kendall Garner
e00aeb2b67
enable notify, simplify use-scrobble with types, remove unused check 2025-07-07 19:25:25 -07:00
Kendall Garner
055d9ac5c1
use initial index for shuffling when availabe 2025-07-02 20:48:45 -07:00
Jeff
c1330d92b2
Migrate to Mantine v8 and Design Changes (#961)
* mantine v8 migration

* various design changes and improvements
2025-06-24 00:04:36 -07:00
et21ff
62f4bb0d7b
fix(player): Improve MPV stability and seek performance (#953) 2025-06-10 17:22:40 -07:00
jeffvli
930165d006 fix all imports for new structure 2025-05-26 17:20:02 -07:00
jeffvli
1cf587bc8f restructure files onto electron-vite boilerplate 2025-05-26 17:18:55 -07:00
jeffvli
d35e73792f fix item playback buttons on search list (#885) 2025-05-06 14:50:59 -07:00
jeffvli
4a3604b1a8 handle playback on new artist list 2025-05-06 14:43:42 -07:00
jeffvli
b9611589ba fix casing on some translation strings 2025-05-06 13:23:29 -07:00
Kendall Garner
0115ecb59b
fix repeat one/repeat all scrobble 2025-04-20 10:54:44 -07:00
Kendall Garner
a89b6640a9
horizontal scroll 2024-10-01 18:15:18 -07:00
Kendall Garner
660c9744bf
clear queue when shuffle now 2024-09-11 20:36:46 -07:00
Kendall Garner
74aa88e082
add web visualizer (#314)
* 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
2024-09-09 01:25:01 +00:00
Kendall Garner
6b7c69e90a
fix seeking between 0-1 seconds 2024-09-02 10:56:46 -07:00
Kendall Garner
528bef01f0
provide transcoding support 2024-09-01 08:26:30 -07:00
Kendall Garner
5b2977e5e8
[enhancement]: support viewing current/setting current time in remote 2024-08-24 13:26:45 -07:00
Kendall Garner
88741a8616
add ability to configure double click behavior 2024-08-19 21:56:55 -07:00
Kendall Garner
110a1a63f0
simplify remote/media session (#632) 2024-07-03 01:47:26 -07:00
Kendall Garner
67deb3e3d8
[bugfix]: only restart time when now for web 2024-05-23 20:41:01 -07:00
Kendall Garner
168153b211
[bugfix]: restart timestamp when adding to queue 2024-05-10 12:27:33 -07:00
Kendall Garner
0d03b66fe5
prevent change of media state with empty queue 2024-04-20 22:01:29 -07:00
Kendall Garner
65eca32de3
[bugfix]: do not update mpris status unnecessarily 2024-04-02 08:46:38 -07:00
Kendall Garner
ab17ba8add
[bugfix]: fix scrobble race conditions 2024-04-01 22:13:06 -07:00
Kendall Garner
65b045df03
[bugfix]: Resolve MPV next/prev race condition
Resolves #536.

With the previous implementation, next/previous would first update
the current queue and then call next/previous. However, since these were
asynchronous calls it was very likely that the second calls would fail
(and a test of adding delay showed that it actually caused a double skip).
This PR resolves this by just removing the prev/next.

Small other fixes:
- setQueue + pause -> setQueue(..., true)
- make MPV and web player have the same behavior for (pause/stop) where appropriate
2024-03-30 21:48:09 -07:00
jeffvli
9a43ea0e4a Attempt to fix player unresponsive on first start 2024-02-16 22:12:28 -08:00
Jeff
eab11658bb
Merge pull request #501 from kgarner7/allow-no-mpv
- OOBE default to web player
- Allow mpv to run using PATH env
- Add improved mpv error logging
- Add web player fallback on mpv error
2024-02-13 16:16:01 -08:00
jeffvli
9b0c9ba3ac Fallback to web player if mpv fails to run 2024-02-13 02:05:59 -08:00
Kendall Garner
e6b01d4e2b
[bugfix]: set MPV queue when now or queue is empty 2024-02-13 00:04:28 -08:00
Kendall Garner
ae8fc6df13
[bugfix]: improve play behavior
- when adding songs to queue, only `play()` if the queue was empty
- when adding next/last to empty queue, behavior should be same as now
2024-02-10 00:38:21 -08:00
Kendall Garner
eff1cee6a3
[bugfix]: Fix repeated track scrobbling (#480)
* [bugfix]: Fix repeated track scrobbling

This commit fixes scrobbling tracks that are repeated in the queue (either due
to a REPEAT_ONE or just enqueued multiple times). There are two extra cases:

1. The current player changes. The player alternates from 1 -> 2 -> 1 whenever playback
finishes normally, so this is a sort of epoch that can be used to detect both repeat one
and track being enqueued multiple times.
2. The current index changes. The player gets set back to 1 in a variety of cases (most often
previous/next), so the check in (1) is not enough. However, the index changing will help identify
that this is a new song.

* use unique id instead
2024-02-01 04:12:39 +00:00
Kendall Garner
5cc2276781
[bugfix]: web player edge cases
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
2024-01-28 01:50:51 -08:00
Jeff
8430b1ec95
Add localization support (#333)
* Add updated i18n config and en locale
2023-10-30 19:22:45 -07:00
Kendall Garner
2664a80851
Support changing playback rate (#275)
* 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>
2023-10-22 17:47:44 -07:00
Kendall Garner
f6667a39a0
fix toggle replay (#292) 2023-10-17 05:49:29 -07:00
jeffvli
cca6fa21db Adjust scrobble duration to check in ms 2023-10-05 22:11:48 -07:00
Kendall Garner
6bac172bbe
fix scrobble durations (#269)
* fix scrobble durations

* Fix scrobble condition on last song in queue, normalize ms

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2023-10-05 21:45:47 -07:00
jeffvli
e3fc99cf82 Additional adjustments on mpv play 2023-08-07 14:48:02 -07:00
jeffvli
23e791c829 Attempt additional cleanup on mpv start 2023-08-06 11:41:40 -07:00
jeffvli
d0aba6e16e Support genres in context menu 2023-08-04 02:27:04 -07:00
Kendall Garner
c9dbf9b5be
Add remote control (#164)
* draft add remotes

* add favorite, rating

* add basic auth
2023-07-23 05:23:18 -07:00
jeffvli
30e52ebb54 Lint all files 2023-07-01 19:14:12 -07:00
jeffvli
c3c1f4cc5f Refactor mpv initialization/cleanup
- Don't re-initialize the player on re-render
- Fixes the player potentially crashing on hot reload
2023-06-06 10:48:47 -07:00
jeffvli
f380eccc68 Improve responsive styles for playerbar 2023-06-04 16:46:05 -07:00
Kendall Garner
85d2576bdc Improved lyric syncing, fetch
- uses a somewhat more sane way to parse lyrics and teardown timeouts
- adds 'seeked' to setCurrentTime to make detecting seeks in lyric much easier
- adds ability to fetch lyrics from genius/netease (desktop only)
2023-06-04 16:46:05 -07:00
Kendall Garner
d055ae89e0 media session for windows/mac 2023-05-26 18:20:27 -07:00
Kendall Garner
f83639d5f8 round volume, update all clients 2023-05-26 18:20:27 -07:00
Kendall Garner
97ccf3bc6d add media session/mpris 2023-05-26 18:20:27 -07:00
jeffvli
07d4dc37b5 Hide fetch notification if error 2023-05-21 18:19:43 -07:00
jeffvli
6218b27117 Fix no-repeat on mpv (#55) 2023-05-21 16:43:47 -07:00
jeffvli
b71c3c7c53 Handle song detail add 2023-05-21 08:13:48 -07:00