Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[enhancement]: Audio player enhancements #501

Merged
merged 12 commits into from
Feb 14, 2024

Conversation

kgarner7
Copy link
Collaborator

Supports running Feishin solely using web audio (useful for clients with problems with MPV). Also moves save/restore queue to utils, as MPV object is now optional.

Resolves #177

Supports running Feishin solely using web audio (useful for clients with problems with MPV).
Also moves save/restore queue to utils, as MPV object is now optional
@kgarner7 kgarner7 requested a review from jeffvli February 11, 2024 22:09
Copy link

vercel bot commented Feb 11, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
feishin ✅ Ready (Inspect) Visit Preview 💬 Add feedback Feb 13, 2024 1:53pm

@jeffvli
Copy link
Owner

jeffvli commented Feb 12, 2024

I was actually testing this recently too.

I removed the MPV required blocker screen instead and added error notifications if mpv failed to initialize.

I also changed the binary path on the player initialization to fall back to undefined instead of '' which lets node-mpv to access mpv based off the executable on the system env path. The node-mpv documentation states that the binary path is required for Windows which is why I originally wanted to require all users to enter the path, but it works properly on my machine so it may resolve a lot of issues people were running into especially when trying to use mpv installed via package managers.

I'll push some of my commits over and refactor based on this approach since I'm not a fan of adding a setting explicitly to disable mpv when we already have the audio player setting.

@kgarner7 kgarner7 closed this Feb 12, 2024
@kgarner7 kgarner7 reopened this Feb 12, 2024
@jeffvli jeffvli changed the title [enhancement]: Support disabling MPV entirely [enhancement]: Audio player enhancements Feb 14, 2024
@jeffvli jeffvli merged commit eab1165 into jeffvli:development Feb 14, 2024
3 checks passed
spiceratops referenced this pull request in spiceratops/k8s-gitops Mar 16, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/jeffvli/feishin](https://github.com/jeffvli/feishin) |
minor | `0.5.3` -> `0.6.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>jeffvli/feishin (ghcr.io/jeffvli/feishin)</summary>

###
[`v0.6.1`](https://github.com/jeffvli/feishin/releases/tag/v0.6.1):
0.6.1

[Compare
Source](https://github.com/jeffvli/feishin/compare/v0.6.0...v0.6.1)

##### Fixed

- (Navidrome) Fixed application becoming stuck when Navidrome credential
session times
out ([#&#8203;538](https://github.com/jeffvli/feishin/issues/538))

##### Other

- Downgraded from Electron v27 to v26 to restore compatibility with
macOS 10.13 and 10.14
([#&#8203;534](https://github.com/jeffvli/feishin/issues/534))

###
[`v0.6.0`](https://github.com/jeffvli/feishin/releases/tag/v0.6.0):
0.6.0

[Compare
Source](https://github.com/jeffvli/feishin/compare/v0.5.3...v0.6.0)

0.6.0 is here!

Due to the large number of updates in this version, there may be
undocumented changes that are not listed here.

##### Docker

Added a way for a static server to be configured for the dockerized
version of Feishin. Check the [docker
compose](https://github.com/jeffvli/feishin/blob/development/docker-compose.yaml)
for new environment variables configuration.

#### Added

-   URLs in the `Note` column are now formatted as links
- External resource (last.fm, musicbrainz) links are now optionally
displayed on the album and artist pages
-   Album pages now show description if available
- Added dynamic image background option in fullscreen player
([#&#8203;526](https://github.com/jeffvli/feishin/issues/526)) (Thanks
[@&#8203;iiPythonx](https://github.com/iiPythonx))
-   Added additional `mpris` metadata fields
    -   audioBpm
    -   comment
    -   contentCreated
    -   lastUsed
    -   userRating
- Added options to clear the Feishin HTTP and Query cache to clear
stored lyrics
-   Added related songs to the `Related` tab on the fullscreen player
-   Added `codec` column for song lists
-   Added option to start app as minimized

#### Changed

- Playback speed control is now a slider instead of a selection
([#&#8203;437](https://github.com/jeffvli/feishin/issues/437)) (Thanks
[@&#8203;marksdestiny](https://github.com/marksdestiny))
-   Web player is now the default instead of MPV
- (Jellyfin) Adding a jellyfin server now allows for an empty password
field
-   Default hotkey for play/pause toggle set to SPACEBAR
-   Changed icon for `Play Random` on the player bar

#### Fixed

- (Jellyfin) Fixed getPlaylistSongList endpoint only returning the first
300 songs
([#&#8203;449](https://github.com/jeffvli/feishin/issues/449)) (Thanks
[@&#8203;SlyFabi](https://github.com/SlyFabi))
- Properly set native titlebar on macOS
([#&#8203;209](https://github.com/jeffvli/feishin/issues/209)) (Thanks
[@&#8203;kgarner7](https://github.com/kgarner7))
-   Fixed long artist page descriptions not being truncated
- Fixed playback when SHUFFLE and REPEAT ONE is enabled and there is
only one track in the queue
- (MPV) Fixed audio sample rate value on startup
([#&#8203;470](https://github.com/jeffvli/feishin/issues/470)) (Thanks
[@&#8203;kgarner7](https://github.com/kgarner7))
-   Player buttons are now disabled when the queue is empty
- Fixed play queue scroll position changing when app window focus
changes
-   Fixed scrobbling condition when a song is repeated
-   Fixed volume when set by MPRIS
-   Fixed player index being offset by 1 when restoring queue on startup
-   Various translation fixes

#### What's Changed

- AppImage: Set proper categories on desktop entry by
[@&#8203;mihawk90](https://github.com/mihawk90) in
[https://github.com/jeffvli/feishin/pull/430](https://github.com/jeffvli/feishin/pull/430)
- Update scrobble-settings.tsx by
[@&#8203;salguerooo](https://github.com/salguerooo) in
[https://github.com/jeffvli/feishin/pull/440](https://github.com/jeffvli/feishin/pull/440)
- Use startIndex in Jellyfin getPlaylistSongList by
[@&#8203;SlyFabi](https://github.com/SlyFabi) in
[https://github.com/jeffvli/feishin/pull/449](https://github.com/jeffvli/feishin/pull/449)
- Improve the playback speed control by
[@&#8203;marksdestiny](https://github.com/marksdestiny) in
[https://github.com/jeffvli/feishin/pull/437](https://github.com/jeffvli/feishin/pull/437)
- Bump axios from 1.5.1 to 1.6.0 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/459](https://github.com/jeffvli/feishin/pull/459)
- Bump zod from 3.21.4 to 3.22.3 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/460](https://github.com/jeffvli/feishin/pull/460)
- Bump [@&#8203;babel/traverse](https://github.com/babel/traverse)
from 7.22.19 to 7.23.7 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/462](https://github.com/jeffvli/feishin/pull/462)
- Bump postcss from 8.4.27 to 8.4.33 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/463](https://github.com/jeffvli/feishin/pull/463)
- Bump electron from 25.3.0 to 25.8.4 in /release/app by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/464](https://github.com/jeffvli/feishin/pull/464)
- Bump follow-redirects from 1.15.2 to 1.15.5 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/461](https://github.com/jeffvli/feishin/pull/461)
- Fixed incorrect label for album sort by release date by
[@&#8203;rappo](https://github.com/rappo) in
[https://github.com/jeffvli/feishin/pull/458](https://github.com/jeffvli/feishin/pull/458)
- Add frame to macOS native window bar by
[@&#8203;jeffvli](https://github.com/jeffvli) in
[https://github.com/jeffvli/feishin/pull/209](https://github.com/jeffvli/feishin/pull/209)
- \[bugfix]: defer restore queue until mpv exists by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/435](https://github.com/jeffvli/feishin/pull/435)
- \[bugfix]: Validate audio sample range, catch AudioContext error by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/470](https://github.com/jeffvli/feishin/pull/470)
- \[bugfix]: Fix add to playlist success message by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/473](https://github.com/jeffvli/feishin/pull/473)
- \[bugfix]: Fix safari audio context by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/471](https://github.com/jeffvli/feishin/pull/471)
- \[enhancement]: support clearing query and http cache by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/475](https://github.com/jeffvli/feishin/pull/475)
- \[bugfix]: Fix repeated track scrobbling by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/480](https://github.com/jeffvli/feishin/pull/480)
- \[feature]: Show album comment, Last.fm/MusicBrainz links by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/450](https://github.com/jeffvli/feishin/pull/450)
- \[bugfix/enhancement] Order artist's Top Songs by play count by
[@&#8203;lymnyx](https://github.com/lymnyx) in
[https://github.com/jeffvli/feishin/pull/487](https://github.com/jeffvli/feishin/pull/487)
- \[enhancement] Add a button size setting by
[@&#8203;iiPythonx](https://github.com/iiPythonx) in
[https://github.com/jeffvli/feishin/pull/486](https://github.com/jeffvli/feishin/pull/486)
- \[bugfix] Fix global hotkeys not working on startup by
[@&#8203;iiPythonx](https://github.com/iiPythonx) in
[https://github.com/jeffvli/feishin/pull/488](https://github.com/jeffvli/feishin/pull/488)
- \[bugfix] Fixes route of most played songs on home page by
[@&#8203;lymnyx](https://github.com/lymnyx) in
[https://github.com/jeffvli/feishin/pull/489](https://github.com/jeffvli/feishin/pull/489)
- \[bugfix/enhancement] Fixes german translations being sentence-case by
[@&#8203;lymnyx](https://github.com/lymnyx) in
[https://github.com/jeffvli/feishin/pull/491](https://github.com/jeffvli/feishin/pull/491)
- \[bugfix]: default go libsecret, support changing secret store by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/493](https://github.com/jeffvli/feishin/pull/493)
- Bump the npm_and_yarn group across 2 directories with 2 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/500](https://github.com/jeffvli/feishin/pull/500)
- \[enhancement]: Audio player enhancements by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/501](https://github.com/jeffvli/feishin/pull/501)
- \[bugfix/enhancement]: Support Navidrome structured lyrics by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/484](https://github.com/jeffvli/feishin/pull/484)
- \[enhancement]: support reordering homepage by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/494](https://github.com/jeffvli/feishin/pull/494)
- Image Resolution Setting by
[@&#8203;darkpixlz](https://github.com/darkpixlz) in
[https://github.com/jeffvli/feishin/pull/492](https://github.com/jeffvli/feishin/pull/492)
- \[bugfix]: Macos trusted accessibility by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/512](https://github.com/jeffvli/feishin/pull/512)
- Bump the npm_and_yarn group across 2 directories with 1 update by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jeffvli/feishin/pull/521](https://github.com/jeffvli/feishin/pull/521)
- \[enhancement]: Start minimized by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/522](https://github.com/jeffvli/feishin/pull/522)
- Add a pre-defined server for the docker version by
[@&#8203;Kakoluz](https://github.com/Kakoluz) in
[https://github.com/jeffvli/feishin/pull/413](https://github.com/jeffvli/feishin/pull/413)
- \[enhancement]: Better version checks by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/514](https://github.com/jeffvli/feishin/pull/514)
- \[bugfix]: Check for Navidrome authentication on startup by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/510](https://github.com/jeffvli/feishin/pull/510)
- \[enhancement]: Differentiate shared and owner playlists for Navidrome
by [@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/517](https://github.com/jeffvli/feishin/pull/517)
- \[enhancement]: Make related tab on full screen player useful by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/519](https://github.com/jeffvli/feishin/pull/519)
- \[enhancements]: fix carousel, full screen metadata improvements by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/524](https://github.com/jeffvli/feishin/pull/524)
- \[feat] Add a dynamic image option to the fullscreen player by
[@&#8203;iiPythonx](https://github.com/iiPythonx) in
[https://github.com/jeffvli/feishin/pull/526](https://github.com/jeffvli/feishin/pull/526)
- \[enhancement]: better version checks for lyrics, Navidrome by
[@&#8203;kgarner7](https://github.com/kgarner7) in
[https://github.com/jeffvli/feishin/pull/529](https://github.com/jeffvli/feishin/pull/529)

#### New Contributors

- [@&#8203;mihawk90](https://github.com/mihawk90) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/430](https://github.com/jeffvli/feishin/pull/430)
- [@&#8203;salguerooo](https://github.com/salguerooo) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/440](https://github.com/jeffvli/feishin/pull/440)
- [@&#8203;SlyFabi](https://github.com/SlyFabi) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/449](https://github.com/jeffvli/feishin/pull/449)
- [@&#8203;marksdestiny](https://github.com/marksdestiny) made their
first contribution in
[https://github.com/jeffvli/feishin/pull/437](https://github.com/jeffvli/feishin/pull/437)
- [@&#8203;dependabot](https://github.com/dependabot) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/459](https://github.com/jeffvli/feishin/pull/459)
- [@&#8203;rappo](https://github.com/rappo) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/458](https://github.com/jeffvli/feishin/pull/458)
- [@&#8203;lymnyx](https://github.com/lymnyx) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/487](https://github.com/jeffvli/feishin/pull/487)
- [@&#8203;darkpixlz](https://github.com/darkpixlz) made their first
contribution in
[https://github.com/jeffvli/feishin/pull/492](https://github.com/jeffvli/feishin/pull/492)

**Full Changelog**:
jeffvli/feishin@v0.5.3...v0.6.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI0MS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants