Coder Social home page Coder Social logo

sirjson / cyp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ondras/cyp

0.0 0.0 0.0 891 KB

Control Your Player: a Web-based MPD client

License: MIT License

HTML 2.41% JavaScript 88.61% Makefile 0.72% Shell 0.59% Dockerfile 0.24% Less 7.43%

cyp's People

Contributors

jfox-sk avatar ondras avatar sirjson avatar supersandro2000 avatar tincho avatar

Watchers

 avatar

cyp's Issues

High-res displays stretch the important controls too far out

Something I noticed, especially on my ultra-wide display is that now that the width limit was lifted, important player controls are harder to reach and spread out too much.

Maybe I will revert commit adeb0dd and introduce a different version that will still raise the min-width but also deals with the background in a more elegant way.

Improve the feedback on app launch

Right now if MPD and CYP are not running on the same system it takes a while until CYP is connecting. Until that happened it's not obvious in what state the Client is since there is no feedback. It doesn't tell me it's connecting nor prevents me from clicking everything. Also, if I don't open the developer console I would have no idea that in fact something broke somewhere.

In other setups this might not be visible still I think a nice startup animation with a bit of what is going on info would go a long way especially for those who power almost everything with SBCs.

Considering the feature descripted in upstream issue #9

The ability to have more than one output is a pretty cool MPD feature that can sadly not be controlled right now with CYP. Even in a normal use case with only one physical output because of how ALSA works you might need more outputs / different outputs. An example would be the EQ Plugin for ALSA which creates a new virtual device.

Playing from your main audio system but also be able to stream into other rooms is also a use case where it might be not been always a good idea to have the stream running all the time depending on how many resources the MPD Server can spare.

The link to the original issue is here: ondras#9

Refactor the youtube-dl feature

In theory this is a neat feature but because of my audio setup it can never work in this implementation even if I would mount and symlink that special folder. It also doesn't support YouTube Streams because it tries to download the complete file first which on a 24/7 live stream is an issue.

Through testing, I think I've found a way to solve these issues. Since technically cyp is a client but also a provider I think the better solution would be to use the youtube-dl API for metadata and query functions and let cyp set up a stream via VLC for the MPD Service that requested a remote song / stream.

Doing this manually worked great so, I think this would be a great extension that potentially allows more than just YouTube content to be listened to. The downside to this is that it increases the complexity of the client because it now needs to manage creating local streams on the fly, but I'm not too worried about that.

Audio files without album art leave a gap

If cyp can't find album art for whatever you are playing right now on your MPD server it will just leave a gap which ruined the otherwise good-looking design.

This is easily fixed by adding a dummy album art picture that gets shown in case there is no album art, kind of like every player is doing it these days

Play, Stop, Pause.. etc should display some user feedback to improve the preceived responsiveness

MPD can be a bit slow until it warmed up in my experience. For example, I have a track in my playlist that needs some time to load for some reason, as I'm writing this it took 10 seconds to start but in the Client I didn't even know if a request to play said track was sent. Speaking from experience, what usually happens in these situations is a user who spams the same button over and over which will make the situation worse.

Improved navigation on PC

You can feel the upstream mobile focus trough out the whole app which can make it cumbersome to use on PC. For example, if I have a folder and I want to navigate to it, on PC I want to double-click it or at least single click it.

The current flow in cyp with almost everything is clicking an item, looking down on my action bar deciding what to do with it and click the action. Especially when exploring the library this gets tired quick. I know for a good mobile experience this needs to stay as is so an implementation / extension must differentiate between a User with Mouse and Keyboard and a User with a Touchscreen.

Improve the YouTube search interface

It's weird and maybe a PC only bug but it feels like the YT search interface is kind of unfinished in terms of design and user-friendliness.

A picture shows what I mean

grafik

What needs fixing

  • Show the User where he is or what he is about to do right now
  • The search bar needs some serious improvements. It almost defaults to the standard HTML input box which looks odd so any kind of styling would go a long way. It should also not almost hiding itself from the user on the left side but be one of the central elements.
  • A nicer indicator if cyp is doing something right now, if not, why not but in a user-friendly way. Having the standard output of whatever will drive that page is fine but feels even to me in an otherwise professional looking app a bit alien.

Expose 'rescan' in the Client

Right now if I add a few songs to my central library and I don't want to wait on MPD picking up that something changed I would need to issue the rescan command. Right now I'm doing this with my tools but if I want a seamless experience I think this command should be useable from within CYP.

The challenge here is how to make sure that not everyone could spam rescan how they see fit in a multi-user scenario and technically DDoS the MPD service.

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.