Git Product home page Git Product logo

feishin's Introduction

logo

Feishin

License Release Downloads

Discord Matrix

Rewrite of Sonixd.

Features

  • MPV player backend
  • Web player backend
  • Modern UI
  • Scrobble playback to your server
  • Smart playlist editor (Navidrome)
  • Synchronized and unsynchronized lyrics support
  • Request a feature or view taskboard

Screenshots

Getting Started

Desktop (recommended)

Download the latest desktop client. The desktop client is the recommended way to use Feishin. It supports both the MPV and web player backends, as well as includes built-in fetching for lyrics.

MacOS Notes

If you're using a device running macOS 12 (Monterey) or higher, check here for instructions on how to remove the app from quarantine.

For media keys to work, you will be prompted to allow Feishin to be a Trusted Accessibility Client. After allowing, you will need to restart Feishin for the privacy settings to take effect.

Web and Docker

Visit https://feishin.vercel.app to use the hosted web version of Feishin. The web client only supports the web player backend.

Feishin is also available as a Docker image. The images are hosted via ghcr.io and are available to view here. You can run the container using the following commands:

# Run the latest version
docker run --name feishin -p 9180:9180 ghcr.io/jeffvli/feishin:latest

# Build the image locally
docker build -t feishin .
docker run --name feishin -p 9180:9180 feishin

Configuration

  1. Upon startup you will be greeted with a prompt to select the path to your MPV binary. If you do not have MPV installed, you can download it here or install it using any package manager supported by your OS. After inputting the path, restart the app.

  2. After restarting the app, you will be prompted to select a server. Click the Open menu button and select Manage servers. Click the Add server button in the popup and fill out all applicable details. You will need to enter the full URL to your server, including the protocol and port if applicable (e.g. https://navidrome.my-server.com or http://192.168.0.1:4533).

  • Navidrome - For the best experience, select "Save password" when creating the server and configure the SessionTimeout setting in your Navidrome config to a larger value (e.g. 72h).
    • Linux users - The default password store uses libsecret. kwallet4/5/6 are also supported, but must be explicitly set in Settings > Window > Passwords/secret score.
  1. Optional - If you want to host Feishin on a subpath (not /), then pass in the following environment variable: PUBLIC_PATH=PATH. For example, to host on /feishin, pass in PUBLIC_PATH=/feishin.

  2. Optional - To hard code the server url, pass the following environment variables: SERVER_NAME, SERVER_TYPE (one of jellyfin or navidrome), SERVER_URL. To prevent users from changing these settings, pass SERVER_LOCK=true. This can only be set if all three of the previous values are set.

FAQ

MPV is either not working or is rapidly switching between pause/play states

First thing to do is check that your MPV binary path is correct. Navigate to the settings page and re-set the path and restart the app. If your issue still isn't resolved, try reinstalling MPV. Known working versions include v0.35.x and v0.36.x. v0.34.x is a known broken version.

What music servers does Feishin support?

Feishin supports any music server that implements a Navidrome or Jellyfin API. Subsonic API is not currently supported. This will likely be added in later when the new Subsonic API is decided on.

I have the issue "The SUID sandbox helper binary was found, but is not configured correctly" on Linux

This happens when you have user (unprivileged) namespaces disabled (sysctl kernel.unprivileged_userns_clone returns 0). You can fix this by either enabling unprivileged namespaces, or by making the chrome-sandbox Setuid.

chmod 4755 chrome-sandbox
sudo chown root:root chrome-sandbox

Development

Built and tested using Node v16.15.0.

This project is built off of electron-react-boilerplate v4.6.0.

Translation

This project uses Weblate for translations. If you would like to contribute, please visit the link and submit a translation.

License

GNU General Public License v3.0 Β©

feishin's People

Contributors

blackdragon-b avatar bubylou avatar darkpixlz avatar dependabot[bot] avatar dylancyclone avatar gelaechter avatar germandarknes avatar iipythonx avatar jeffvli avatar kakoluz avatar kaydax avatar kgarner7 avatar lilyrose2798 avatar lymnyx avatar marksdestiny avatar mcneb10 avatar mihawk90 avatar nathan-contino avatar rappo avatar salguerooo avatar slyfabi avatar ssnarf avatar tacocake avatar trapigtrogen avatar upsetdog avatar vukanovics avatar weblate avatar whykickamoocow avatar zackslash avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

feishin's Issues

Continuous Playback

A re-request of jeffvli/sonixd#194

A MVP of this feature could be as simple as automatically adding into queue the next album of a currently-playing artist, or another song of the same album's genre.

Option to ignore certificate legitimacy

What am I trying to achieve?

I want to access a local navidrome server which is secured by a selfsigned certificate.

image

The same happens when using mismatching certificates (Domain differs from certificate domain).

How could it be solved?

Adding an option to accepts self signed certificates (This is how i use it in a mobile app Ultrasonic)

Whats the impact of not solving this?

The app remains unusable without publicly exposing the server or doing some nasty workarounds with host files.

Support for Track Numbers

Navidrome supports track numbers from the metadata, but both Sonixd and Feishin don't.

I know the project is still in development, but I'd be grateful if you could add support for track numbers if they are supported by the Subsonic API!

(Thank you for this wonderful client!)

How can I add artists bio?

Hi, How can I see the biographies of the artists like in the example photo of Snail House? I have installed the last.fm plugin but I can't even get it, even with famous artists like John Coltrane or ACDC. Thank you.

Letting double click on a track add the remaining tracks to queue

Depending on the context and view, I think there's different ways of handling the double click event, but I think the two most significant ones are both in album view. At the moment a double click on a track only queues said track.

My suggestion is an implementation equivalent to that of Sonixd. Upon double clicking a track in album view with:

  1. Shuffle disabled, the clicked track will play and every track with a higher track number of that same album will be queued.
  2. Shuffle enabled: the clicked track will play and all of the other tracks on the album (higher and lower track number) are queued in random order.

Support Jellyfin users without passwords

Hello,

I just tried using my Jellyfin, my users are set up without passwords for ease of use reasons.

I have to enter a password, as the button gets disabled without one.

Thanks!

Album Artist displayed for all tracks in Album view

Prerequisites

  • Using npm
  • Using an up-to-date main branch
  • Using latest version of devtools. Check the docs for how to update
  • Tried solutions mentioned in #400
  • For issue in production release, add devtools output of DEBUG_PROD=true npm run build && npm start

Expected Behavior

Tracks in Album view table should show track artists.

Current Behavior

Album artist is shown for each track.

Steps to Reproduce

  1. Browse any album where the track artist differs from the album artist (i.e. compilations).

Possible Solution (Not obligatory)

The artists property of ALBUM_CARD_ROWS appears to duplicate the route of albumArtists therefore returning the album artist in all rows.

export const ALBUM_CARD_ROWS: { [key: string]: CardRow<Album> } = {
albumArtists: {
arrayProperty: 'name',
property: 'albumArtists',
route: {
route: AppRoute.LIBRARY_ALBUM_ARTISTS_DETAIL,
slugs: [{ idProperty: 'id', slugProperty: 'albumArtistId' }],
},
},
artists: {
arrayProperty: 'name',
property: 'artists',
route: {
route: AppRoute.LIBRARY_ALBUM_ARTISTS_DETAIL,
slugs: [{ idProperty: 'id', slugProperty: 'albumArtistId' }],
},
},

Context

There's absolutely no expectation that you should jump on this πŸ˜„
I'll look at what I need to do to build the app myself and see if I can create a working PR.

Your Environment

Windows 10. Jellyfin server.

Giving a track a rating causes the UI to crash

Prerequisites

  • Using npm
  • Using an up-to-date main branch
  • Using latest version of devtools. Check the docs for how to update
  • Tried solutions mentioned in #400
  • For issue in production release, add devtools output of DEBUG_PROD=true npm run build && npm start

Expected Behavior

Worst case rating is not updated if not implemented

Current Behavior

UI is stuck with a page showing 'Something went wrong'

Steps to Reproduce

  1. Give a track a rating (using jellyfin server)
  2. Try to load the Tracks page
    image
  3. Reloading does nothing

Option to choose default song action

Symphonium has this feature where you can choose the default song action when clicking (double-clicking in feishin) on an item. Options are:

  • Play
  • Resume
  • Play (no automatic queue)
  • Queue
  • Play next

It would be nice if we also had these options in feishin.

MPV continues playing after Feishin close

Expected Behaviour

Closing feishin should close MPV

Current Behaviour

MPV is running as a separate process and not feishin's slave, after closing feishin music continues to play.

Steps to Reproduce

  1. Open Feishin-0.0.1-alpha4-linux-x86_64.AppImage

  2. Connect to Jellyfin Server

  3. Start a Song

  4. Close Feishin

  5. Listen how the music continues to play

  6. Check processes and see mpv still running

Possible Solution (Not obligatory)

Enforce MPV as Feishin's slave

Context

Using latest AppImage alpha release
conectet with my Jellyfin server.

Your Environment

OS: ArchLinux x64 02.02.2023
Kernel: 6.1.8
DE: KDE Plasma 5.26.90
Session: X11

Window controls (minimize and maximize) are unclickable after "fixed" play queue style is enabled

Prerequisites

  • Using npm
  • Using an up-to-date main branch
  • Using latest version of devtools. Check the docs for how to update
  • Tried solutions mentioned in #400
  • For issue in production release, add devtools output of DEBUG_PROD=true npm run build && npm start

Expected Behavior

The window control buttons at the top right should minimize, maximize or close the window, when the queue is opened.

Current Behavior

Maximize and minimize are not clickable, when the queue is opened.

Steps to Reproduce

  1. Click the menu in the top left

  2. Click on "Settings"

  3. Click on "General"

  4. Choose "Fixed" in the "Side play queue style"

  5. Close the settings at the top right

  6. Open the queue using the menu in the play bar at the bottom

  7. Click minimize or maximize buttons

Context

Not deal breaking, I am just not able to minimize when the fixed style is enabled.

I suspect that the issue is most likely caused by overlapping elements.

Your Environment

  • Operating System and version : Windows 11

Thanks for your great work as always!

Create a Windows release

Sonixd's release page contains Windows builds. I'd love the ability to download the latest release of feishin that was windows-compatible.

If it's possible to use linux releases under WSLg, that's cool too.

Feature requests & feedback

Hey, first off, you've done an absolutely amazing job with Feishin! If I knew Typescript (I'm really looking to learn it at some point) I'd contribute to the project myself! I'm in horrible need for a clean and functional music player capable of my grandiose library, and even thought of making one myself. I loved sonixd, so I gave this a try, and it feels a lot better.

I've opened the project on Windows 10 Pro today, and aside from this bug #8, it looks really smooth.

I found some little design changes I'd suggest to make the app look better. Ignore what you might already be working on.

1:
image
On the playlists tab, there's the two grey buttons and then the up arrow. The up arrow doesn't have a backdrop, but the other 2 do. I believe this would look better if all 3 were consistent without the backdrop and just on top of the black.

2:
image
This might only be a thing on Windows 10, but, on any sort of playlist or album UI, I believe the backdrop behind the X, minimize, etc icons on the top right, should be removed. It's unnecessary if the background of the artwork/icon for the album/playlist is darkened a bit, it'll never reach a true white to make the icons invisible. Alternatively, you could pick the color from the backdrop, and if it's too white, turn it black so it's perfectly visible.

3:
image
You should allow the option to only display the year later on. All my tracks are only dated by year, not extended out to month and day, so by default it's showing January 18th.
I would also suggest allowing it to show in the format of 2000, January, 18th instead of 2000-01-18 ,and omit fields such as the month and day, if they don't exist within the tags. You'd have to allocate January to 01 and 1, but anything out of those bounds, such as 0 , , and 13 default to not showing.

4:
image
image

5:
I also noticed, when clicking on the searchbar, it's in a weird position relative to the close/minimize buttons, and is a bit of a weird size. It would look better if it could be anchored to the right side underneath the X, minimize, ect buttons, probably centered beneath X. Right now it looks a bit freefloaty. And there's plenty of space to do it. Just looks weird to me.
There's also a 2nd searchbar on the left side, so I'm guessing it's being migrated. I would suggest combining the two together and add the option within the search to have search in: everything, search in:this artist and search in: this page dropdowns, etc, defaulting to (as a setting) what the user chooses, that by default being search in: everything

6:
Also, weird thing, but when clicking on settings, my antivirus (AVG) was trying to tell me that Feishen was trying to use my webcam. I'd suggest.. removing that, if that's the case. I'm just letting you know that my antivirus was throwing a fit about it, even if it shouldn't, and that may confuse other people in the future.

7:
I would also suggest packaging MPV with Feishin on windows to both prevent instances where updates of MPV could break Feishin with that specific version. It creates an extra step on Windows users to get another piece of software, and updates can break things both ways if they're not packaged together. Just add a note during the step of selecting it that shows only on Windows that On Windows, by default, MPV is inside the feishin\mpv folder. Saves a lot of time programming just for Windows. Not sure how it'd work for other systems.

I'll add more to this later as I find more little issues/suggestions/design changes.

Add support for Navidrome web radio

I'm not familiar with other implementations of self-hosted music serving so maybe this isn't exclusive to Navidrome. But I wish I could use my web radio through Feishin, not Navidrome's web player.

Possible Album Art Display Changes

One of my favorite UI aspects of Sonixd were the large album art grids.

I see that it has made a return in Feishin, as the 'Poster' display type in the 'Albums' menu. Though, I'd love to see it become an option in the other menus too ('Home' and 'Tracks').

Also, I think it would be nice to have dynamically re-sizable posters and cards; I often find that odd window sizes leave empty space on the right.

Love Sonixd, can't wait to see where Feishin goes!

Add Bitrate column to list view

Hi,
I really like Feishin.
The only thing I am missing right now is the Bitrate column in the list view, like in Sonixd.

Could you maybe add it? Or some kind of option in the menu to enable it?

Artist Play/Song List Adds Entire Library to Queue

Expected Behavior

Hitting the Play button or going to All Songs under an Artist should only add that Artist to the queue

Current Behavior

Both the Play button and going to All songs>add to queue adds the entire library (not just that artist) to the queue

Steps to Reproduce

Go to Album Artists > Some Artist > Press Play button next to artist name or view all songs > add to queue

Context

Top songs only adds the ones in the list to queue

Your Environment

feishin-0.0.1-alpha5 AppImage

Note: bug template seemed to be the stock one from boilerplate which didn't seem to make sense for this so if you need something else let me know

Funkwhale Native API Support

Is there any planned support for the native Funkwhale API? I'm currently using it and wouldn't want to switch just to use this awesome app.

I know there is planned to be Subsonic API (if funkwhale decides to update it to the new one), but I think the native API has more capabilities.

No repeat still repeats the queue

Prerequisites

  • Using npm
  • Using an up-to-date main branch
  • Using latest version of devtools. Check the docs for how to update
  • Tried solutions mentioned in #400
  • For issue in production release, add devtools output of DEBUG_PROD=true npm run build && npm start

Expected Behavior

I expected feishin to stop playing after the queue ended.

Current Behavior

Feishin starts the playing again from the beginning of the queue.

Steps to Reproduce

  1. Make sure you're using the no repeat option.

  2. Add a song or more to the queue .

  3. Play and wait until the last song.

  4. Feishin starts over.

Possible Solution (Not obligatory)

Context

Your Environment

  • Node version :
  • electron-react-boilerplate version or branch :
  • Operating System and version :
  • Link to your project :

Better add to playlist

The current UI is a bit annoying because you need to click the drop down every time, even if you only want to add the songs to one playlist.

The ideal scenario would be to implement something similar to what YouTube has. A list of all the playlists and a checkmark next to them representing if the song is already in a playlist or not.

A good middle ground and a quick fix would be to leave it as is, but to also add a list of all the playlists bellow the current dropdown. That way if you only want to add songs to one playlist, it's one click, and you can still use the dropdown if you want to add them to multiple playlists.

MPRIS

Hi.

That's a feature that was in Sonixd but is somehow missing with the rewrite of the app. It's a useful feature as I want to control the app using a cli tool like playerctl.

Thanks!

Lyrics Support for Jellyfin

Hi!

just wanted to let you know that in the next Jellyfin release lyrics support should be included see:
jellyfin/jellyfin#8381

It would be great if this would also be implemented in feishin sometime in the future

Thanks and keep up the great work!

MP4 Playback

I think MP4 Playback would be great and would set this application as the best, because I am struggling too look for a way to playback Music Videos offline with a stylish design.

Minimize or close to tray/taskbar in windows

One feature I am missing is the option to minimize or close the player to the windows taskbar/tray.

This feature is already available in Sonixd, so I am not sure if it is already on the to do list or planned for the future.

[Request] Replaygain Tag Support

Separating from #9.

I already asked on Discord if this was already within the code, and I was told it was, but please make sure that Feishin supports replaygain tags.

When using Sonixd for desktop with Navidrome, it seemed to not ever have support to reading replaygain tags. These tags make sure all my tracks are the same value without having to re-encode my tracks; which after doing multiple times, will degrade the quality of my tracks.

Musicbee does well implementing these tags and it works in musicbee, but Sonixd doesn't read them even though it is within the Navidrome API.

Library>Tracks view allows you to scroll infinitely past the last track in your library

Expected Behavior

The Tracks list should end after the last track in your library.

Current Behavior

The infinite scroll keeps adding empty rows as you scroll past the last track.

Steps to Reproduce

  1. Go to Library>Tracks view
  2. Scroll all the way down towards the last track in your library
  3. Continue scrolling and note that blank rows get added to the list

Possible Solution (Not obligatory)

Context

Your Environment

Navidrome server, Mac OS, using the code from development branch as of 12/20/22

Create a flatpak version

Would be really usefull if you can create a flatpak version that will be installable from flathub. Almost all of my GUI application are flatpak and I don't want Feishin to be the only appimage application.

Album uses just one cover by default

Expected Behavior

Each track in a certain album has its own cover, and Sonixd shows the track's cover for that as it should.

Current Behavior

Feishin shows the cover for one track for the entire album. (Same Navidrome server)

Steps to Reproduce

  1. Make an album with different tracks having their own covers

  2. Try playback.

Possible Solution

Replicate the behavior Sonixd uses and use track covers.

Context

This is not really a priority issue as it's an Alpha and a WIP, but just thought you should know.

Your Environment

  • Operating System and version : Windows 11 22623.1037; Feishin 0.0.1-alpha2

UI/UX related feedback

Hello. I have been using Sonixd for quite some while and would like to provide some feedback to the changes in Feishin.

Favorite button should be added to the payer control menu

The old Sonixd version has this icon, that can be used to favorite the track.
image

Feishin does not have this anymore:
image

You can still add it to favorites using the context menu though:
image

I think that the button should be added back.

Adding icons for context modal

The new context modal already looks much better than the old one in Sonixd.
I believe that it could be improved even further using icons, that indicate that the action of that button is.
Windows 11 is doing that already quite well:

image

Inconsistent window tool bar

In Sonixd, the toolbar looks quite cohesive with all other windows and applications:
image

The new one is not a mess, but too cluttered in my opinion:
image

I'd suggest that the dark gray background color of the window actions would be expanded to the left:
image

Perhaps this action menu here should also be moved. It feels out of place in this header and also looks significantly different from the other context menus.
image

High contrast in the navigation bar

The contrast of the black color in the navigation bar is quite extreme.
Perhaps it would make sense to use the same color, which is being used here in the red circle?
image

Context modal for having more control over your current playing track

In Feishin, this small display already looks much better.
But I'd suggest that it would be possible, to have the same context menu as in the track list, when right clicking this here:
image

For example, Spotify is already doing that:
image

A filter, that will return no results, may confuse a user

I was pretty confused, that I didn't get any results when opening the album tab.
Then, I found out, that I was still using a filter, that I had created previously.

image

There should be two different things informing the user:

  • An indication that a filter is active
  • An text or icon that informs the user, that there were no results found

Rethinking the structure of the window decorator

Personally, I don't like how the filters and sorting is at the very top of the window.
I'd suggest that they would be moved a bit down:

image

Unrounded corners in the queue popover

The design in the popover has no rounded corners.
The buttons at the bottom also look a bit off, especially with that extreme contrast:

image

Missing stop button and add button in the video controller

Those two buttons are not in Feishin yet:
image


Otherwise, Feishin is looking pretty great so far.
I donated to Sonixd before and can't wait to see how Feishin will look in the future!

Sample rate switcher

Is there a way to change the sample rate?

For example if the source is 24/96khz and ur device is on 24/48khz then it would automatically switch to the matching sample rate as the source, which isn’t the case as of right now.

Perhaps exclusive mode, so it exclusively take over ur device.

I would highly appreciate such feature, other than that keep up doing the good work!

[AppImage] Error: unknown address type:disabled

Prerequisites

  • Using AppImage πŸ‘€
  • Using npm
  • Using an up-to-date main branch
  • Using latest version of devtools. Check the docs for how to update
  • Tried solutions mentioned in #400
  • For issue in production release, add devtools output of DEBUG_PROD=true npm run build && npm start

Expected Behavior

Lauch the linux x86_64 AppImage and use feishin. πŸ˜„

Current Behavior

The AppImage version isn't launching feishin.
If I try to run via cli, I get an Uncaught Exception message.

Steps to Reproduce

  1. Download the latest version of the Feishin AppImage for linux x86_64.

  2. Give exec permission to the AppImage with: chmod +x feishin.AppImage

  3. Try to open the program with: ./feishin.AppImage

  4. The program returns this message:

A JavaScript error occurred in the main process
Uncaught Exception:
Error: unknown address type:disabled
    at createStream (/tmp/.mount_feishiSt03qi/resources/app.asar/node_modules/dbus-next/lib/connection.js:64:17)
    at createConnection (/tmp/.mount_feishiSt03qi/resources/app.asar/node_modules/dbus-next/lib/connection.js:81:33)
    at createClient (/tmp/.mount_feishiSt03qi/resources/app.asar/node_modules/dbus-next/index.js:10:20)
    at Object.sessionBus (/tmp/.mount_feishiSt03qi/resources/app.asar/node_modules/dbus-next/index.js:41:10)
    at Player.init (/tmp/.mount_feishiSt03qi/resources/app.asar/node_modules/mpris-service/src/index.js:183:20)
    at new Player (/tmp/.mount_feishiSt03qi/resources/app.asar/node_modules/mpris-service/src/index.js:175:8)
    at Player (/tmp/.mount_feishiSt03qi/resources/app.asar/node_modules/mpris-service/src/index.js:168:12)
    at Object.91312 (/tmp/.mount_feishiSt03qi/resources/app.asar/dist/main/main.js:14:459811)
    at r (/tmp/.mount_feishiSt03qi/resources/app.asar/dist/main/main.js:14:541282)
    at Object.95909 (/tmp/.mount_feishiSt03qi/resources/app.asar/dist/main/main.js:14:459576)
[2478:0317/210227.892328:ERROR:bus.cc(399)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2478:0317/210227.892407:ERROR:bus.cc(399)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")

Possible Solution (Not obligatory)

Maybe something here can help: electron/electron#31981

Context

Just knew about the project. I'm trying to use the program. It looks awesome! πŸ‘

Your Environment

  • Node version : v16.19.0
  • electron-react-boilerplate version or branch : -
  • Operating System and version : Void Linux x86_64 glibc
  • Link to your project : -
  • I'm using qtile with Xorg.
  • I'm using other electron apps and electron AppImages without issues.

[Bug] "Next song" button in the media bar will not function and the selected song will repeat instead of progressing to the next song.

Using Windows 10 Pro 22H2, on latest 0.0.1 alpha 5.
I am also mentioning this in #9 .

Expected Behavior

When within a playlist or Library (Albums, tracks, ect, but specifically tracks) particularly in views where you can see individual tracks (or anything), and you play a song, and hit the next song, and the next song within the playlist, album, or within your filtered songs in Library, will play.

Even if it's not a bug, it's basic functionality that should be present even if it won't support shuffling, ect, yet.

Current Behavior

Song selected in any circumstance will play on loop without properly going to the next song.

Steps to Reproduce

Simply play a song within a playlist, album, or within the "songs" list filtered to favorite and wait for it to end.

Add Support for getSimilarSongs from Subsonic API

The getSimilarSongs API call would be really nice. To click on a song and create an instant mix is handy. I know this can technically be done with smart playlists, but this call lets you create queues from a single song on the fly.

I use this function in the Symfonium app all the time. It would just be nice to have this on desktop as well.

(Might be harder to implement due to this being Subsonic specific)

Login error

Expected Behavior

Feishin should login after entering server URL, username and password choosing "Login".

Current Behavior

Feishin gives error "Cannot read properties of undefined (reading 'accessToken') when trying to log in to my Subsonic server. This is working normally in Sonixd.

Steps to Reproduce

  1. Subsonic server running behind reverse proxy.

  2. Try to login with Feishin

Environment

  • Feishin version: 0.0.1-alpha1
  • Client operating system and version : Windows 11, 22H2
  • Music server: Subsonic 6.1.6

Add feishin to be installable via homebrew

Since sonixd is installable via homebrew, it would be nice if someone could add feishin as well (especially when there won't be much sonixd updates in the future)

[https://docs.brew.sh/Adding-Software-to-Homebrew](Adding Software To Homebrew)

Persistent Window Size / Fullscreen toggle

Would it be possible to add a fullscreen toggle in settings?

I'd like to use this on my Steam Deck; but when using Feishin (and Sonixd, before) in gaming mode, I have to manually hit a bind for F11 on each launch to make the window match the screen resolution. Most of the other apps I use have persistent resolution and/or a fullscreen toggle, so it's probably the feature which I'd like to see implemented most.

FYI: I have have no grasp of the difficulty of implementing these features, due to lack of experience coding.

Offline playback / Sync

Hi,
I often play my music in places with no or bad internet access.

It would be nice to be able to download playlists and artists.
Maybe even with format/bitrate selection (to save storage space) and a download overview page?

Songs being loaded multiple times and out of order when scrolling through larger playlists

Expected Behavior

When scrolling through a playlist, songs which haven't been loaded in the view should be loaded in order with only one of each song

Current Behavior

When scrolling through a playlist, the songs are being loaded multiple times and the track numbers are out of order. After it loads more tracks for the second time, they begin to form "clumps" of songs, starting in groups of 3.

Steps to Reproduce

  1. Go to playlist large enough to warrant more songs to be loaded

  2. Scroll through playlist

example.mp4

Context

Your Environment

  • Operating System and version Windows 10 19045.2604
  • Feishin version 0.0.1-alpha5

[Bug] Opening a 2nd instance of Feishin while a song is playing causes double playback; shouldn't allow 2 instances of feishin.

Using Windows 10 Pro 22H2, on latest 0.0.1 alpha 5.
I am also mentioning this in #9 .

Expected Behavior

When opening Feishin, and opening it a 2nd time, Feishin should warn about already being open, or open the current instance of Feishin instead of making a 2nd one (and cause double playback issues.)

I imagine this can cause a lot of internal issues if more than one instance can be open at once, and there's no need to be more than one.

Most other music programs open the current instance for you if it's already open.

Current Behavior

When opening a 2nd instance of Feishin on top of another currently running one currently playing a song, the 2nd instance will open and play the currently playing song over the currently playing song; doubling on playback of the same song and (probably) various other issues.

I did this on accident once while testing again and it's probably not a good thing.

Steps to Reproduce

Open feishin, play a song, and while that song is playing, open another instance of Feishin.

A JavaScript error occurred in the main process

Prerequisites

Note: I'm on Windows 10 Pro.

  • Using an up-to-date main branch
  • Tried solutions mentioned in #400 though I can't really do this because of my OS.

Expected Behavior

Load the program without an error on Windows 10 Pro.

Current Behavior

Steps to Reproduce

  1. Load the program for the first time.
    image

Possible Solution (Not obligatory)

Context

Close the socket, errors occuring in resources\app.asr\dist\main\main.js 14:311807, 311556, and 310576.

Not have an error on startup.

Downloaded from the .zip of latest and threw it into a folder on an external drive.

Your Environment

Latest Windows 10 Pro, latest alpha version with the prebuilt .zip's.

  • Node version :
  • Operating System and version :
    image

Volume control for web version

Currently, it seems like the volume can't be changed on the web client (it's fixed at 50%), probably because the volume is implemented using an electron API by default, which doesn't exist on the web.
However, especially on the web, where you can only control the browser's volume as a whole but not the volume of individual tabs, it would be very nice to have control over the volume. This way, you could have Feishin running in the background but still listen to a video in another tab.

Quitting Feishin leaves mpv process running

Prerequisites

  • Using npm
  • Using an up-to-date main branch
  • Using latest version of devtools. Check the docs for how to update
  • Tried solutions mentioned in #400
  • For issue in production release, add devtools output of DEBUG_PROD=true npm run build && npm start

Expected Behavior

Quitting the Feishin app should terminate the associated mpv process.

Current Behavior

Quitting Feishin leaves mpv running (and music continuing to play if the app was playing when exiting).

Steps to Reproduce

  1. Launch Feishin
  2. Quit Feishin
  3. Observe that mpv process is still running

Possible Solution (Not obligatory)

Context

Your Environment

Mac OS, latest code off development branch.

  • Node version :
  • electron-react-boilerplate version or branch :
  • Operating System and version :
  • Link to your project :

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.