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

All suggestions/requests here. #17

Open
18 of 42 tasks
thecodrr opened this issue Oct 25, 2016 · 65 comments
Open
18 of 42 tasks

All suggestions/requests here. #17

thecodrr opened this issue Oct 25, 2016 · 65 comments

Comments

@thecodrr
Copy link
Owner

thecodrr commented Oct 25, 2016

As this project is open source and for the people, let's make it by the people too! Any suggestions and requests are welcome. By any I mean any; you can request a berry on top of the bread! Anything.

Unique ideas that don't sound good in your head are especially welcome here. Let us fill this issue with suggestions and requests!

List of suggestions already given by the people:

  • 1. Display Up Next on shuffle. (Basic support added)
  • 2. DLNA Support. (Basically casting).
  • 3. Xbox One & Android Support.
  • 4. FM Radio.
  • 5. Live Tile
  • 6. Equalizer/Effects
  • 7. Folder Navigation
  • 8. Last.fm Scrobbling.
  • 10. Manual adding of Album arts
  • 11. Most Played and Recently Added and Now Playing section
  • 12. Database resetting support Fully supported
  • 13. Favorites List
  • 14. Gapless Playback
  • 15. Prevent screen from locking.
  • 16. Stop playing after this song.
  • 17. Syncing across devices (Pick up where you left off on the PC),
  • 18. Sub-sorting for albums and artists.
  • 19. Replay Gain
  • 20. Silence Skipping in a song.
  • 21. .lrc lyrics (Synchronized lyrics)
  • 22. Custom background (in all regions)
  • 23. Deep ID3 tag reading
  • 24. Ability to hide a specific folder and its songs.
  • 25. Private Playlists
  • 26. Party Mode (Probably with a nice UI)
  • 27. Remote Control support (Using Phone to control Bread on PC)
  • 28. Continuum Support. (Basic support is of course already there but many things need to be changed.)
  • 29. Ability to relocate (change location) of a song.
  • 30. Auto play on connecting headphones.
  • 31. Compact Player Mode (Only PCs).
  • 32. Reencode for target device (Your library is flac, but your player doesn't have that much room)
  • 33. Volume normalization
  • 34. Fade in/out when changing the song.
  • 35. Custom track formatting. (Prefix the file name with the track number like 001, etc) Bulk formatting would be amazing.
  • 36. Transparent Tiles.
  • 37. Customization for columns. (Show/Hide additional columns if so desired.)
  • 38. Spectral Frequency Diagram.
  • 39. Smart Playlists. (Calculate songs ratings and play count and according to that make a playlist based on genre.)
  • 40. Play queue. ( A list of songs to play before the next upcoming song.)
  • 41. OPUS Codec Support.
  • 42. Show artist and album sorting in grids (like in album view)
  • 43. Download Playlists to MP3 Players and other removable devices like USB etc.

Come on people! There are a thousand more to go!

Long live Bread!

@DannyAcosta710
Copy link

What about lyrics (embedded/.lrc/ online database) support? :DDD I remember my symbian had it and Windows never delivered any support ever :(

@thecodrr
Copy link
Owner Author

@DannyTalent the only problem is that there aren't any .lrc databases available and the only ones that are available have websites in Chinese and no API :D Its a very beautiful idea, I myself wanted something like this.

@DannyAcosta710
Copy link

@theweavrs Hmmm what about viewlyrics.com ? There's a github project https://github.com/PedroHLC/ViewLyricsOpenSearcher that could perhaps be of use...

But also maybe it could read independent .lrc files or mrv embedded in the mp3?
MusiXmatch also offers API support afaik...

@thecodrr
Copy link
Owner Author

MusiXmatch has an API, I will have to try it though. The site says they have synced lyrics, so this is a nice discovery.

@thecodrr
Copy link
Owner Author

@DannyTalent Viewlyrics.com doesn't show lyrics at all. Gives a constant error "Failed to read lyrics content, please contact us to report this issue.". You try and tell.

@DannyAcosta710
Copy link

@theweavrs Yeah I just noticed, no luck... And I think musiXmatch charges money for that...
LyricFind also offers API, and I found this article http://www.programmableweb.com/category/lyrics/api
I'd love to help you but I'm just now getting familiarized with C#

@Bond-009
Copy link
Contributor

What about being able to choose the background of the app?

@thecodrr
Copy link
Owner Author

@Bond-009 What do you mean?

@Bond-009
Copy link
Contributor

Now you see the cover under the list of songs but if you would be able to toggle it so it shows a costum image as background (also under the buttons) like this music player:
example

@thecodrr
Copy link
Owner Author

thecodrr commented Oct 26, 2016

@Bond-009 I have added this into the suggestion list, it's certainly a cool feature. More customizability never hurts. If you have any other suggestions, please feel free to share!

@thecodrr
Copy link
Owner Author

opinion

@DannyTalent @Bond-009 Opinions? Is this better or was the previous one better?

@DannyAcosta710
Copy link

I think the previous one was better, I imagine that closing the hamburger would make it smaller though? If it does, then yeah this one might work better

@Bond-009
Copy link
Contributor

I think that a play all button for your whole library would be nice.

@thecodrr
Copy link
Owner Author

@Bond-009 Can you explain a bit?

Side question: Do you have a windows phone?

@Bond-009
Copy link
Contributor

Bond-009 commented Nov 1, 2016

@theweavrs There is a play all button in the playlists but not for the whole music library

Yes I have a windows phone (8.1)

@DannyAcosta710
Copy link

Maybe an option to resume a song when you plug in your headphones (if the song is paused, of course) like foobar's

@thecodrr
Copy link
Owner Author

@DannyTalent Can you explain a bit? I don't quite get what you mean.

@DannyAcosta710
Copy link

@theweavrs Let's say your phone is playing on loudspeaker, but then you pause for a second maybe because you're playing a game and want to hear the sounds of the game app.

And then, you plug in your headphones, and the app will continue the song by itself

@thecodrr
Copy link
Owner Author

@DannyTalent I will research and see if this is possible. If there is an event to know that something connected...then it is certainly possible.

@DannyAcosta710
Copy link

Yeah man I mean it has to be lol, foobar does it as an advanced option

I find this especially helpful for me because my headphone jack has been starting to fail (this phone is a bit old) and sometimes doesn't recognize my headphones or stops detecting them in certain positions... Which makes music stop on most players

@thecodrr
Copy link
Owner Author

@DannyTalent Would it be cool if it happened on PCs too?

@DannyAcosta710
Copy link

Probably, as an option.. I don't really listen to music on pc all that much so I don't really know :/

@thecodrr
Copy link
Owner Author

@DannyTalent It is certainly possible to implement this behaviour. Basically, when the headphones are plugged in the music will automatically start and when they are plugged out, it will stop.

@DannyAcosta710
Copy link

The music stopping is regular behavior I believe, but yeah it's an added plus

@thecodrr
Copy link
Owner Author

Excellent!

@Bond-009
Copy link
Contributor

Will you make it a setting, so you can disable it?

@thecodrr
Copy link
Owner Author

@Bond-009 You mean a setting for "auto play when headphone is connected"?

@charliefoxtwo
Copy link

I've always hated iTunes, but they had a couple of nice features: For every song, you could set a separate start and endpoint for when it is played in shuffle (e.g to get rid of the album intro/outro to next song), or disable shuffling entirely. I plan to fork the branch and get to work on this, but how should we store this data? Any ideas?

@thecodrr
Copy link
Owner Author

@charliefoxtwo Storing this data is really really easy. In BreadPlayer.Core project, there is a Mediafile.cs model. Create the properties to hold data there. They will automatically get saved into the database. Next comes actually setting the values for StartPoint & EndPoint. Any ideas?

@charliefoxtwo
Copy link

@theweavrs I'm not familiar with any of the APIs, but I assume we have the ability to start a song from whatever time stamp we want, right? We can just present a slider on the properties dialog of the song that allows the user to select start and end point. In order to stop at the end, we would probably need a function like Song.Play(int start, int duration);

The ability to fade in and out at the start/end of songs via a checkbox would also be beneficial.

@thecodrr
Copy link
Owner Author

@charliefoxtwo Fade in/out is already there and the Song.Play(int start, int duration) like function is also there.

@charliefoxtwo
Copy link

@theweavrs Running into issues implementing the skip on shuffle. Since you can't create playlists currently, the only way for me to test is to reset my library and import an album as my library. However, for a 12 track library, I noticed severe problems with the track selection and playback - it will play a few songs, before getting stuck on one. Trying to skip forward or backward only pauses the current song. In other cases when on shuffle, it will skip between the same few songs. I also observed this behavior when sorting by artist or genre. I wanted to see if anyone else could confirm before I filed it as a bug though, just in case I somehow really messed something up on my fork.

@thecodrr
Copy link
Owner Author

@charliefoxtwo I am fixing the playlist feature, will push a commit today. The current library backend is really, really buggy and duct-taped. I plan on fixing all these issues, including #155. A much-needed clean-up of the code will also take place very soon. So, hopefully, these issues will be fixed.

@thecodrr
Copy link
Owner Author

@charliefoxtwo Can you please send me your log file? I would like to see all the error details.

@charliefoxtwo
Copy link

@theweavrs I'll see if it has anything when I get home. Great to see so many issues closed today. Do you have an estimate as to when the new build might be out? I'd like to rebase onto it before continuing with the skip on shuffle implementation.

@thecodrr
Copy link
Owner Author

@charliefoxtwo 1-2 days probably but could be more or less. Basically, this release will be focused on bug-fixes so I am not adding anything big, so yeah 1-2 days probably and the new release will be out and about.

@charliefoxtwo
Copy link

@theweavrs here is my log file

Log.txt

@thecodrr
Copy link
Owner Author

@charliefoxtwo I fixed all the exceptions in the Log file already. Thanks anyway 😄

@thecodrr
Copy link
Owner Author

@charliefoxtwo I have released the new version. You can continue with the skip on shuffle.

@charliefoxtwo
Copy link

@theweavrs sweet! Will do.

@thecodrr
Copy link
Owner Author

thecodrr commented Aug 3, 2017

@charliefoxtwo What news? Are you any closer to a basic implementation of the feature?

@charliefoxtwo
Copy link

@theweavrs Haven't been able to work on it much this week. Started on it last weekend. Logic is implemented, just need to handle the UI and property binding. Was working on it last weekend (and I swear I had it working before I rebased...), and I'll get back to work on it this weekend for sure.

@thecodrr
Copy link
Owner Author

thecodrr commented Aug 4, 2017

@charliefoxtwo Okay, no problem. If you are having any problem or if there are any other bugs you find, feel free to report.

Also, you should open a pull request for the feature, it will organize things more and you will find it easier to contribute further.

thanks

@charliefoxtwo
Copy link

@theweavrs got some time to work on the Skip on Shuffle today. The property seems to not be persisting between each run of the application. Am I missing something?

private bool _skipOnShuffle;
public bool SkipOnShuffle { get => _skipOnShuffle; set => Set(ref _skipOnShuffle, value); }

I also reworked the shuffle method to check for the skip on shuffle option, which seems to be working. However, in line with my latest bug report, I think we should consider rebuilding the way the shuffle method works. I can try to tackle it, but I don't know how many little intricacies there are.

I also seem to be having an issue where songs aren't playing unless I manually click the play button in the bottom bar every time. Not sure what's going on there... I pulled a fresh version of the code from Github and it doesn't have that issue, but I'm not sure how I possibly could have messed that up.

@thecodrr
Copy link
Owner Author

thecodrr commented Aug 6, 2017

@charliefoxtwo Sorry for the late response. I was having some internet issues.

About the persistence issue, yes that is expected. Basically, you have to call Database.Update() like function so that it may know that the value has updated. Look at this example:

await BreadDispatcher.InvokeAsync(async () =>
            {
                if (TracksCollection.Elements.Any(t => t.Path == lastPlayingSong.Path))
                {
                    lastPlayingSong.PlayCount++;
                    lastPlayingSong.LastPlayed = DateTime.Now.ToString(CultureInfo.CurrentCulture);
                    TracksCollection.Elements.First(T => T.Path == lastPlayingSong.Path).PlayCount++;
                    TracksCollection.Elements.First(T => T.Path == lastPlayingSong.Path).LastPlayed = DateTime.Now.ToString();
                    await _service.UpdateMediafile(lastPlayingSong); //this needs to be called
                }
                await ScrobblePlayingSong(lastPlayingSong);                
            });

This example code is used in saving the PlayCount and LastPlayed properties of the song that is ending. Which are further used in Recently Played and MostPlayed Lists. You will need to do something similar so that the Database knows that which file has updated and update that file.

I will talk about the shuffle on the new issue.

That issue #163 has been resolved. 😄 It wasn't your fault but a mistake on my end.

@ErwinSuwito
Copy link

Hi, I don't really know what you use to show the user's library, but I think you use ListView to show all the user's music and ListView and SemanticZoom when grouping them based on artists. Can you please add the option so that the user's library when grouping them based on artists or albums would be displayed as grids instead of lists.

@thecodrr
Copy link
Owner Author

@ErwinSuwito I will add your suggestion to the suggestion list. What you are asking is possible but will take quite a rework so there will be sometime before you actually see it in production. Thanks for the suggestion.

@thewan056
Copy link

Hi, how about streaming music from Media Servers. It seems a lot of touch screen friendly music player apps lack built in functionality to do so.

@thecodrr
Copy link
Owner Author

thecodrr commented Sep 25, 2017

@thewan056 I think DLNA (# 2 suggestion) covers that or is Media Server Streaming different?

@thewan056
Copy link

thewan056 commented Sep 25, 2017

@theweavrs not necessarily. Some media players have DLNA servers, but lack the ability to stream from them. Having both would be a huge plus, but as there are many capable DLNA servers, I suggest prioritizing DLNA streaming over serving. That's just me though, as I want a touch-friendly music player with streaming from DLNA but I can't seem to find a nice player to do so.

@thecodrr
Copy link
Owner Author

@thewan056 DLNA and other devices is my first priority after I release v2.7.0. I already have done a basic device implementation but its not anything big. What I really want is Bread Player to detect Mobile and Media devices and then Sync and stream music from them. It will be a challenging task but I am looking forward to it.

@MilkmanDan
Copy link

What about an ability to download playlists to an MP3 player or USB thumbdrive?

@MilkmanDan
Copy link

Ability to use this player on Chrome via Chromebook would be nice.

@thecodrr
Copy link
Owner Author

@MilkmanDan Chrome Apps are JavaScript based and I don't think they can handle C# or any other such language officially.

As for your first request, Internet Capabilities are being implemented gradually. You will see a lot of improvements in the next versions. In the meantime, I will add your suggestion to the list.

@JunielKatarn
Copy link

Does this support AIFF-C (.aifc) files?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests