zyrouge / symphony Goto Github PK
View Code? Open in Web Editor NEW๐ต Lightweight, elegant music player for Android 9+.
Home Page: https://zyrouge.github.io/symphony/
License: GNU Affero General Public License v3.0
๐ต Lightweight, elegant music player for Android 9+.
Home Page: https://zyrouge.github.io/symphony/
License: GNU Affero General Public License v3.0
While files in the folders view have a 3 dots menu on their right side, folders are missing them. Thus, whole folders can't be easily added to a queue or playlist. Would be really handy, if folders would also have 3 dots menus, as f.i. albums in the albums view are having it.
I'd love to see an Android Auto UI with support for playing, pausing and skipping, as well as resuming where I left off.
Thanks for making this!
I'm using embedded lyrics, which doesn't seem to be supported.
With my Galaxy buds pro 2, I can normally skip songs by double tapping the touch panel but it is not working on symphony (pausing songs is possible tho). I also tried another music player aswell as YouTube and there it is working just fine.
Love your awesome player, many thanks for creating it!
Was wondering, if it's possible to add that the search function will also search for the name of folders?
Would be awesome, if we could have a button in the "now playing" view, that after activation would pause the current song after it has ended, in other words, not continuing to play the next song in the queue. YouTube has such a feature or even another audio player called Music Player Go.
New crashing issue with logs here: https://paste.evolution-x.org/cPzrLO
Originally posted by @slipsby in #8 (comment)
When showing tags of audio-files with multiple artist-entries, only one gets shown. I noticed this across several file-formats.
Can you add Turkish language
Would it be possible to add speed and pitch control? This functionality is not available in many players, and I think it would be a valuable addition. I would greatly appreciate it if you could consider implementing this feature.
Hi, fistt of all, thanks for the work.
I'd like to like the app, but I can't use any that doesn't show a tree view. Is it possible to implement a view like in SicMu Player?
In case you don't know it, it basically shows a list of every song, sorted by tree.
Domething like
Folder A - 1
Folder A - 2
Folder A - 3
Folder A - 4
Folder B - 1
Folder B - 2
...
And so on.
Maybe there is already, and I missed it?
Thanks! ๐
Sometimes songs and/or albums bug out and don't display their associated image. Its rare, but it happens.
Either a hold down for a few seconds or added into the three dot menu, the ability to change art would allow users to fix this bug (happens in other apps) manually without needing to modify song meta data on a PC.
Expanding this to playlist art would add to user customizability.
Please add .m3u file format playlist support, as it eases the migration process from other music players across different platforms easier.
Quite often you want to change the order of the songs in the queue, which is not possible at the moment. One way to elegantly solve this would be by having a way to tap and drag a song to the desired position. But the dragging should only be activated if you tap on the left side of a song, like f.i. shown on this screenshot of the awesome AntennaPod app:
If you switch to the queue section there, you'll see that this kind of navigation is very intuitive and also allows you to scroll through a list of songs without accidentally rearranging them.
You could also add some gestures, like if you swipe a song to the left, then it will be removed from the queue, and if you swipe to the right, then it will be marked as favourite. See AntennaPod for as an example.
If the same mechanics could be applied to playlists, this would be even more awesome!
Is it an easy task to support audio formats like aac, flac and ogg? These are common these days and a lot of other players can open them. Would be awesome, if your player could play them too.
Add the option to favorite a song into a dedicated favorites playlist with out having to create a manual playlist.
The Favorites should also be able to appear on the bottom taskbar and have a quick add on the song, have like a heart icon to quick add
Using 2022.12.56,
When playing an album, the default track order is alphabetical name.
A sane default would be according to 'disc number', 'track number' tags of files that have the same 'album artist' field. (In case there is 2 different releases that have the same 'album' name, 'album artist' would set them apart)
Right now I use filename because I have my files named with track numbers in the beginning but it would be a PITA for someone that doesn't have track number in the filename of their audio library.
dream on this feature because last fm do not recognise tracks with ~
Currently you can only skip songs by opening the App but it would be good if we could do it from the notification bar.
I think an awesome qol feature would be to add an entire album to a playlist.
Hello!
I use my phone with animations off (makes it faster to navigate imo) and smooth scrolling does not work while they are off.
If you tap on the 3 dots menu of an album in the albums view, then you'll see that "add to playlist" is missing there, although you could add the album to the queue.
I tried to add to favorite with the heart button on the playback screen but it doesn't work, it doesn't show that I added it
Buttons to rewind and fast-forward in the "now playing" view, where play and previous/next buttons are located, would make scrolling within a song much easier. Ideally, the time period for rewinding and fast-forwarding should be adjustable in the settings.
The most common position for such buttons would be as follows: (previous) (rewind) (play) (fast-forward) (next)
Would also be helpful, if those two buttons could be added to the notification area of Android.
Blink screen when I play any song and my device not working
currently, if a song in my library has the artist
metadata tag in the format of "X (ft. Y)", the app creates a new artist in the Artists tab named "X (ft. Y)" for that single song, instead of including the song in the tabs for both X and Y. this causes the Artists tab to be bloated with these additional, fake artists, and causes certain songs to be omitted from the Artist page it would normally be in.
this could be probably solved by implementing a regex pattern match for all artist
metadata tags to look for instances of "ft." or similar and parsing the artist names accordingly
i would create a fork that fixes this but unfortunately i do not know anything about android app development so i am making this issue to bring this problem to your attention.
minimized player displays the whole title of the song even if it would even cover the entire screen if the title is big enough and it completely breaks the player in full screen
screenshots:
minimized player
Originally posted by k3rnelPan1c228 November 23, 2022
can you give an option to turn off the notification alert, it keeps on vibrating everytime I change songs or if it plays next song
Hi,
I think adding gestures support will be awesome.
For example -
For reference see Black Player
Thanks! โค๏ธ
There are some android audio players that have this feature.
While not important, it's a nice to have for those who like to see their song details.
Crash when trying to open any songs
Android 13
Process: io.github.zyrouge.symphony, PID: 6581
java.lang.IllegalArgumentException: Cannot round NaN value.
at a0.a.d0(Unknown Source:15)
at q.u.e(Unknown Source:24)
at j1.c.e(Unknown Source:14)
at j1.t.e(Unknown Source:10)
at j1.b0.y(Unknown Source:8)
at n0.h$a.a(Unknown Source:63)
at n0.z.y(Unknown Source:6)
at androidx.activity.m.P0(Unknown Source:43)
at j1.y0.a(Unknown Source:74)
at j1.z$b.c1(Unknown Source:171)
at j1.z$b.e(Unknown Source:168)
at q.i.b(Unknown Source:217)
at j1.n.e(Unknown Source:43)
at q.u.e(Unknown Source:99)
at j1.c.e(Unknown Source:14)
at j1.t.e(Unknown Source:10)
at q.s1.e(Unknown Source:121)
at j1.c.e(Unknown Source:14)
at j1.t.e(Unknown Source:10)
at j1.b0.y(Unknown Source:8)
at n0.h$a.a(Unknown Source:63)
at n0.z.y(Unknown Source:6)
at androidx.activity.m.P0(Unknown Source:43)
at j1.y0.a(Unknown Source:74)
at j1.z$b.c1(Unknown Source:171)
at j1.z$b.e(Unknown Source:168)
at q.i1.b(Unknown Source:177)
at j1.n.e(Unknown Source:43)
at j1.b0.y(Unknown Source:8)
at n0.h$a.a(Unknown Source:63)
at n0.z.y(Unknown Source:6)
at androidx.activity.m.P0(Unknown Source:43)
at j1.y0.a(Unknown Source:74)
at j1.z$b.c1(Unknown Source:171)
at j1.z$b.e(Unknown Source:168)
at l.l.b(Unknown Source:37)
at j1.n.e(Unknown Source:43)
at u0.k.e(Unknown Source:5)
at j1.c.e(Unknown Source:14)
at j1.t.e(Unknown Source:10)
at l.v0.e(Unknown Source:5)
at j1.c.e(Unknown Source:14)
at j1.t.e(Unknown Source:10)
at j1.b0.y(Unknown Source:8)
at n0.h$a.a(Unknown Source:63)
at n0.z.y(Unknown Source:6)
at androidx.activity.m.P0(Unknown Source:43)
at j1.y0.a(Unknown Source:74)
at j1.z$b.c1(Unknown Source:171)
at j1.z$b.e(Unknown Source:168)
at q.i1.b(Unknown Source:177)
at j1.n.e(Unknown Source:43)
at j1.b0.y(Unknown Source:8)
at n0.h$a.a(Unknown Source:63)
at n0.z.y(Unknown Source:6)
at androidx.activity.m.P0(Unknown Source:43)
at j1.y0.a(Unknown Source:74)
at j1.z$b.c1(Unknown Source:171)
at j1.v.O(Unknown Source:16)
at j1.e0.d(Unknown Source:24)
at j1.e0.k(Unknown Source:130)
at j1.e0.g(Unknown Source:68)
at androidx.compose.ui.platform.AndroidComposeView.a(Unknown Source:13)
at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(Unknown Source:20)
at android.view.View.draw(View.java:23198)
at android.view.View.updateDisplayListIfDirty(View.java:22062)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486)
at android.view.View.updateDisplayListIfDirty(View.java:22018)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486)
at android.view.View.updateDisplayListIfDirty(View.java:22018)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486)
at android.view.View.updateDisplayListIfDirty(View.java:22018)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486)
at android.view.View.updateDisplayListIfDirty(View.java:22018)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:682)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:688)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:786)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:4579)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4290)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3517)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2286)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8959)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1231)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239)
at android.view.Choreographer.doCallbacks(Choreographer.java:899)
at android.view.Choreographer.doFrame(Choreographer.java:832)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7900)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
I think it would be a cool option to have the option to sort tracks in an album by their track number instead of alphabetical.
Loving your music player!
I just miss a white/black list to stop playing whatsapp audios and other audio files I have on my internal/external memory.
Cheers.
Nowadays, swiping is getting more and more popular for navigation within Android. One way to make navigation within your great app more intuitive is by adding a swiping up gesture in the area where the bottom panel and the mini-player are. A quick swipe up there would open the "now playing" view. And a quick swipe up in the "now playing" view would open the queue, while a swipe down in the "now playing" view would bring you back to your initial view, like folders, albums etc. Swiping down on the area at the top, where "queue" is written, would bring you back to the "now playing" view.
Media is deprecated. Using media2 would make the notification which shows what music is playing a bit nicer
Your music player looks awesome! May I ask why it's still not released on F-Droid or Google Play?
i opened a song n boom ma phone started showing sone weird shit n couldn't touch anything just rebooted and uninstalled the app and now its fine
For the sake of consistency with android material language, the magnifier lens icon should be on the right side of the screen.
It would move to the left when the input search box is activated.
See for reference: newpipe, odyssey, auxio, bitwarden, harmonic.
time: 1669869857014
msg: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
stacktrace: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
at android.media.MediaMetadataRetriever._setDataSource(Native Method)
at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:310)
at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:334)
at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:383)
at e4.p$b.a(Unknown Source:466)
at e4.r.k(Unknown Source:124)
at u4.a.q(Unknown Source:7)
at j5.g0.run(Unknown Source:100)
at p5.a$a.run(Unknown Source:81)
Suppressed: p3.e: [m1{Cancelling}@67b7500, Dispatchers.Default]
Seemingly random songs are rendered without their cover image despite their file having one included in their metadata.
(I checked this on my PC)
Strangely the amount of missing covers is higher in the first half of the list than in the second one, where nearly every cover is present. A cache clear does not fix this. The songs missing their cover are always the same.
Version: v2023.3.73
when I play a song system UI crush and it goes in a sort of bootloop
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.