Commit Graph

1880 Commits

Author SHA1 Message Date
Kevin d99fe8b8c6 feat: added playlist from queue creation (#2210)
* feat: added playlist from queue creation

- added functionality to create a playlist from queue
- prefilling is done as an extra function to be api agnostic since navidrome native api for example does not offer a parameter for filling a playlist with songs on creation

#2204

* fix: fixed wrong declaration
2026-07-16 22:54:42 -07:00
jeffvli ddc7f936a8 send timestamp update after Jellyfin scrobble submission 2026-07-16 13:41:22 -07:00
jeffvli e951fa696b fix: exclude Jellyfin stop event on song change (#2243) 2026-07-16 13:30:16 -07:00
jeffvli 2eacdd485a fix incorrect lyric scroll position on resume 2026-07-15 23:06:50 -07:00
Simon Slamka ddd45ad5ba feat(player): set right ctrl vol max to mpv's vol max if player==local (#2198) 2026-07-15 22:43:43 -07:00
Damien Erambert 5e79e385d9 Support using alt+click on prev/next to jump to previous/next album in queue (#2220) 2026-07-15 22:27:40 -07:00
York 62c1ac04e4 feat: support furigana and romaji generation on web (#2232)
* feat: support furigana and romaji generation on web
2026-07-15 22:26:05 -07:00
York 763e7d5638 fix: use compilation release type label on album details (#2236) 2026-07-15 22:16:32 -07:00
York 4de9b21ff7 fix: sleep timer countdown (#2233) (#2235) 2026-07-15 21:45:10 -07:00
Anbar Saleem 96b71ad0be show system default audio device in device select when unset (#2216)
An unset audio device id means "follow the system default" (setSinkId is
skipped and mpv uses audio-device=auto), but the Audio device select in
the player settings popover and the playback settings page rendered
blank in that state. Make both selects controlled and fall back to the
enumerated default entry (browser 'default' / mpv 'auto') so the device
actually in use is always displayed. The stored setting stays unset, so
playback keeps following the OS default until a device is explicitly
chosen; clearing the select returns to the default entry instead of
going blank.
2026-07-14 19:27:03 -07:00
jeffvli 76b7ac8cec add vertical album group layout 2026-07-14 16:59:13 -07:00
York 552a6104e0 fix furigana and romaji issues (#2219)
* fix furigana romaji not displaying

* fix lyrics export crash when generation is enabled
2026-07-14 12:08:26 -07:00
Rayan Salhab f462ebafdb fix: persist lyrics overlay visibility (#2226)
Co-authored-by: cyphercodes <cyphercodes@users.noreply.github.com>
2026-07-14 12:05:08 -07:00
jeffvli c9e86bb201 fix missing X padding on synchronized lyric lines 2026-07-12 13:11:57 -07:00
Kendall Garner 17dba85baf fix(pitch): % -> x 2026-07-12 08:38:52 -07:00
jeffvli 0270e9e9e5 prevent initially rendering non-sync romaji generated lyrics on karaoke lyrics 2026-07-11 18:51:42 -07:00
jeffvli bafc14b55a fix mpv playback resume on queue end / stop 2026-07-11 18:51:42 -07:00
jeffvli 66338e2c85 use album order for album view playlist playback 2026-07-11 14:54:28 -07:00
jeffvli 7e5d626ed8 fix playlist search ranking (#1935) 2026-07-11 14:35:07 -07:00
jeffvli 1c659cc693 format playlist header title without folder names 2026-07-11 13:50:08 -07:00
jeffvli bb2bae163c fix animation not triggering on delayed romaji generation 2026-07-11 12:04:03 -07:00
jeffvli 53c8841fd6 revert to custom cubic-bezier transition for lyric lines 2026-07-11 11:56:08 -07:00
jeffvli 3f9fa0b208 additional type fix for album group 2026-07-10 22:25:59 -07:00
jeffvli d40530b7f6 add additional album group metadata rows 2026-07-10 19:49:07 -07:00
jeffvli 857c8187b5 fix subtle inconsistent highlight color on animating lyric 2026-07-10 19:49:07 -07:00
jeffvli 9b3a47a27f fix scroll follow pause on manual scroll 2026-07-10 18:24:17 -07:00
jeffvli aea5a880ea reduce opacity of fullscreen player header when not hovered 2026-07-10 15:16:14 -07:00
jeffvli b4e530ea07 support additional lyric layers (#2211) 2026-07-10 15:12:17 -07:00
jeffvli 00506d06f1 fix inactive lyric color and slow down transitions 2026-07-10 11:48:19 -07:00
jeffvli 964e6f491a remove remote requirement for lyrics match display 2026-07-10 11:32:46 -07:00
jeffvli 7c1893f7f5 remove lyrics blur animation 2026-07-10 10:16:14 -07:00
jeffvli 5804eb3215 fix queue scroll follow with album group 2026-07-10 02:13:52 -07:00
Jeff 355b19c1cb Add support for OpenSubsonic enhanced lyrics (#2208) 2026-07-09 21:32:05 -07:00
mannansainidev 0c89fea1ea feat: add jukebox player engine for server-side playback (#2109)
* feat: add jukebox player engine for server-side playback

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2026-07-09 21:29:22 -07:00
Logan Rupe dd136f91e6 feat(player): right-click volume icon to switch audio output device (#2189)
* feat(player): add right-click audio output device menu to volume icon

Right-clicking the volume/speaker icon in the player bar now opens a
context menu listing available audio output devices, with the active
device checkmarked and a System default reset option.

Selecting a device writes to the existing audioDeviceId (web) or
mpvAudioDeviceId (mpv) playback settings, so the choice is applied live
and persisted across restarts via the settings store. Unlike the
settings-page selector, the menu is not disabled during playback.

* refactor(player): drop redundant audio menu label, document wrapper div

Address review feedback: remove the self-explanatory ContextMenu.Label
from the audio output menu, and add a comment explaining why the volume
icon is wrapped in a div (Mantine Tooltip does not forward Radix's
asChild onContextMenu/ref to the button).
2026-07-09 21:11:10 -07:00
vimae c64807cf94 feat: musical speed controls (#2191)
* feat: musical speed controls
2026-07-09 21:06:46 -07:00
jeffvli e3c2605e1d trigger stop event on queue end 2026-07-09 20:51:19 -07:00
Kendall Garner 554e49cb85 note that sso is not supported for ND auth 2026-07-05 21:50:22 -07:00
jeffvli 7b5df97fa0 fix list select all hotkey (#2195) 2026-07-05 21:25:18 -07:00
Maurits 2ad4c58dcd fix: startup resume-seek cancelled when shuffle is enabled (#2203)
applyStartupSeek() compared the armed target song against
getQueue().items[player.index], but player.index is a position in the
shuffled order while getQueue().items is always the default order. With
shuffle enabled the lookup resolves to the wrong song, the uniqueId
check fails, and the startup resume-seek is silently cancelled — the
track then plays from 0:00 and the progress poller overwrites the
persisted timestamp.

Use getCurrentSong() instead, which maps the index through
queue.shuffled, matching how the seek target is armed.

Fixes #2202

Co-authored-by: Maurits <WhoCarrot@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 01:10:36 +00:00
Kendall Garner 42bd8d34d9 fix(sidebar): only re-expand sidebar when enabled 2026-06-29 21:06:32 -07:00
jeffvli b397790402 additional fix for furigana/romaji lyric handlers (#2188)
- Romaji conversion joined all synced lyric lines into one string. Because the block contained kana somewhere, hasKana passed for the entire array of lyrics.
2026-06-29 20:50:13 -07:00
jeffvli 37ada07ee2 add "stopped" playback state and event handlers 2026-06-29 20:23:46 -07:00
York a221a84792 fix: romaji duplicate lines for non-Japanese lyrics (#2188) 2026-06-29 19:11:46 -07:00
Norman aa3c9251f5 feat: album group has a config and can set the image size (#2153)
* Created a new album group configuration which includes (for now) an option to set the image size of the album group artwork.
2026-06-29 19:00:20 -07:00
Benjamin 751ec7f835 fix lyric desync due to scroll issues (#2110) 2026-06-29 18:50:58 -07:00
BlackHoleFox 94aa34f6b2 Improve Jellyfin playlist loading and modification performance times (#2184)
* Remove unneeded Fields from getPlaylistSongList

* Add optimized controller function for playlist addition duplication checks

* Remove Jellyfin People data handling

* move artist map inline

---------

Co-authored-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
2026-06-29 05:21:04 +00:00
Kendall Garner da445b815d feat(genre): support sorting by track/album count 2026-06-28 19:39:32 -07:00
Tarulia c875146779 feat: add setting for static window title (#2183) 2026-06-29 01:35:42 +00:00
Kendall Garner 9806d2f553 fix: require all sorts to have default value 2026-06-28 17:36:14 -07:00