oxygencobalt / auxio Goto Github PK
View Code? Open in Web Editor NEWA simple, rational music player for android
License: GNU General Public License v3.0
A simple, rational music player for android
License: GNU General Public License v3.0
Auxio should be capable of requesting access to a folder via the android files app (the new standard), instead of asking for access to the entire local storage (the old standard), and accessing the files via that interface. This will allow users to play music from any location on or off the device, including but not limited to, local folders other than 'Music' and various cloud services, like nextcloud, onedrive, or google drive which expose their storage to the device file manager.
TEdit and KeePassDX use this method to access files (if i did a terrible job explaining what I mean, checking one of the apps may help)
The problem, auxio assumes the location of the music. Firstly that is is stored on the local device, secondly that it is in a particular directory. As of right now this problem seems to be universal among similar apps.
Many users may wish to store their music on a remote filesystem (cloud) instead of syncing to the music folder of their android device and wasting gigabytes of spage.
I have a library with lots of artirts, so trying to find a specific one is hard, making the scroll like the all songs scroll, it would make easy to find a specific artist.
It's hard to find a single artist easily.
It would make finding artists easier.
Material 3/Material You theming for Android 12 devices. This is not the biggest priority right now, but will benefit my usage when my LineageOS flavor upgrades to Android 12.
Theres two ways I can implement this:
I'll try to work on this after the overhaul I'm planning.
An option for setting the songs tab as default when the app is launched.
Somewhat.
This would help many who don't benefit from the Library tab and instead want to see the songs tab first.
If you don't mind can you add feature to reduce leading intrument? ๐๐
Because you can easily make instrumental version only of music and yes with this FOSS apps ๐๐
(Uh actually this feature used for removing vocal)
Google is releasing a new library called media3 that will also become the home of exoplayer eventually. This means I have to migrate much of my internal systems.
Roadmap:
MediaSessionConnector
to use Media3 instead of Media1.
getCover
call. Why this hasn't become async by default beats me.Library scanning is slow and doesn't always pick up changes after reopening the app. Also if I remove all songs from library the widget doesn't automatically refresh the queue in widget. It shows the last played yet deleted song and I have to push play to refresh the queue in widget. Also if a song is currently playing and I delete the whole library the scanning does not work. I have to stop the playing song (how it continues to play is beyond my tech mind) that's deleted then reopen app to get a scan; if I change to any song that's been deleted before I get a scan the app acts psychotic cycling through every deleted song. I have to force stop to get a scan. Besides all this it's outstanding work!
Remove all songs from library leaving a song playing
Scanning does not work unless I stop playing song
Play any deleted song before getting scan from stopping currently playing song then the app acts psychotic cycling through each deleted song. Player notification keeps cycling. Force stop to app must be done to get scan.
When all songs are deleted from library with scan update the widget doesn't refresh queue automatically as I have to push play on widget to get update
Android 10
This is related to multiple issues:
Currently, the plans to fix these are:
1 and 2: Redesigned library UI with all items shown. A setting would be added that would allow this view to be customized. This is reliant on #36 however.
3 and 4: A sorting update that would add this to the songs view alongside some other options. Sorting by year would likely not be added here, as the current fast scroller could not accommodate it [and I don't want to change out the fast scroller unless there is sufficient demand].
This issue is the basis for a massive UI overhaul that will occur in the future, however details of that are still being worked out.
Facing a possible rework of the playback system because of #52, I would like to have some feedback on Auxio's current queue system.
I designed Auxio's queue to be "transient", like Spotify. You add a song to the queue, and then it disappears once it's done playing. This is the queue system that I preferred the most, but internally it's a technical nightmare and acts as a huge hold-up with features like gapless playback [#35]. Plus, add to queue was inflexible and would only add to the end of the transient queue, which some people requested be changed in #44.
The way I could fix this is by switching to a more traditional single queue system with a "Play Next" option that adds a song to the top of the queue, and then an "Add to queue" option that appends a song to the end of a queue. This would be easier to implement internally and would possibly be beneficial to most people who use this app, but isn't exactly the system I prefer, and I'm not sure how popular it would be with others.
I have to pick one system or the other, as adding a configuration option would simply add too much complexity to be worth it.
I want to pass the question off to other people who use this app. Would you prefer the current two-queue system or a single-queue system? Thanks.
MP3 files which I have tagged myself are not displaying the album art. They display fine in other applications, but not in Auxio.
Picard (linux) clearly showing album image:
Samsung Galaxy S8 SM-G950U
Android 9
Is it possible I have somehow tagged the files wrong? Given that the image shows up fine in other apps, I'm not sure that could be the case, but I am open to suggestions. Thank you very much in advance for your help.
Self-explanatory. Requires #92 so that I can mirror the queue, and internal technical reworks so that I can implement a media browser into the playback engine.
Some songs are not showing the correct artist names.
Songs whose artiste name can not be determined should be marked as "Unknown" instead of displaying an entirely different artiste name, as seen currently in Auxio
On the list of songs, some songs whose artiste name cannot be determined are tagged with the wrong artiste.
As seen in the screenshot, those songs are from 'Alan Walker ' not 'Reekado Banks'
I am also attaching a screenshot of similar songs in a different music player app - Samsung Music Player
Samsung Galaxy S9 plus
The android media APIs are dying a slow, painful death. This is a super-issue to document the myriad of unfixable issues that have been encountered with media files in Auxio.
These are the issues I am aware of.
None of these are fixable because either it's google's job, and they could not care less. What I'm very likely going to do is add SoundPod support and focus most development on that instead of the sinking ship that is the android filesystem.
This issue is about moving ExoPlayer from a dependency downloaded on the fly to a custom-built dependency with specific extensions, notably FLAC. This would improve QoL for users below Android Oreo, which can't decode these formats.
I already have a script ready, the blocker is making wokring with it not a total nightmare and then getting the F-Droid maintainers to update the build recipe.
Many of Auxio's translations are likely incorrect or incomplete. So this issue thread is meant to pool translations for this project.
values-x
]Go to here. Select "Country Codes" and then search for the name of your country. You should see a 2-letter combination under the Alpha-2
column. This is your country code.
values-x
where x is the country code.values-de
values-pl
values-x-rY
, where x is the code for the country that your language originated from and Y is your country code in all uppercase.values-pt-rBR
values-zh-rTW
strings.xml
that corresponds to your country code here and edit that, although you will need to add XML tags for new translations.<string name="XYZ">
and </string>
bits, only edit the contents in between.<plurals>
strings to reflect that, adding/removing categories as needed. You can find more information on modifying plurals to fit your language here.strings.xml
to a reply to this thread for me to add instead, just make sure to add the name of your values
directory so that I know where to put it.git clone
or downloading it directly from Code
-> Download ZIP
.fastlane/metadata/android
directory, and create a new directory with your country code from earlier as the name.en-US
directory to the new directory. These would be full_description.txt
, short_description.txt
, and [Optionally] the changelogs in the changelogs
directory. Do not copy the images.<a>
] and focus on the contents themselves.zip
file of your translated metadata for me to add, or fork Auxio directly and create a Pull Request.I'm here to clarify anything or deal with problems, thanks in advance.
Self-explanatory. Would benefit listening experience for a lot of people [including myself].
The main blocker for this is the queue system. ExoPlayer automatically attempts gapless playback if you have a single queue, but my two-queue system makes it really hard for me to leverage this. The solution is to move Auxio to a single-queue system, but I'm not sure if I want to do that,
Media player controls & info not properly working on lockscreen (instead it shows up in a notification)
Device: Samsung Galaxy J2 2015 (j2lte)
Android version: 7.1.1 (Custom Samsung ROM)
I have been looking for a good FOSS music player and I came across this one. Really liking it :) It's simple but functional. I'll be using it as my daily use audio player and post bugs that I may come across, like this one.
This issue is a megathread for general UI/UX changes that I'm working on regarding Auxio.
Feel free to request things, but keep in mind the following:
In the description, it's said that this player has no internet connectivity whatsoever. However, there IS a network permission.
In English it would probably be titled "Get network connections".
The current plan for playlists is a self-contained database with optional M4A exporting.
Auxio's playlist implementation will have:
Last added/top tracks don't benefit my usage, so they will be omitted.
The biggest hold-up with this feature is the sheer technical difficulty of it. Playlisting is far more complicated than it seems internally, especially when you want a bug-free implementation.
Upon connection to a Bluetooth device, Auxio tried to start the background process but for some reason it was not allowed.
(If this is not an Auxio problem feel free to close this issue.)
FATAL EXCEPTION: main
Process: org.oxycblt.auxio, PID: 27513
android.app.BackgroundServiceStartNotAllowedException: Not allowed to start service Intent { cmp=org.oxycblt.auxio/.playback.system.PlaybackService }: app is in background uid UidRecord{ea82d32 u0a273 TPSL bg:+12m25s117ms idle procs:0 seq(0,0,0)}
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1861)
at android.app.ContextImpl.startService(ContextImpl.java:1817)
at android.content.ContextWrapper.startService(ContextWrapper.java:774)
at android.content.ContextWrapper.startService(ContextWrapper.java:774)
at org.oxycblt.auxio.MainActivity.onStart(MainActivity.kt:2)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1467)
at android.app.Activity.performStart(Activity.java:8079)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3666)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2212)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7798)
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:1003)
Pixel 5a on Android 12L beta (S2B1.211112.006)
It turned out, F-Droid doesn't support adaptive icons (fdroiddata#2426). However, adding a .png
image to fastlane data should work โ at least that's what I understand from the docs.
A better icon than the placeholder.
Oppo Reno
ColorOS 7.1
Android 10
App version is 1.3.0 installed from the IzzyOnDroid F-Droid Repo.
which is a important feature for people with lots of music, or for people who like to have a portable music library
Create playlists, save them to .m3u file and read playlists from .m3u files.
No, but I'd like to listen to specific songs from my playlist.
So that everyone can start making playlists and shuffle/loop those songs only without having to skip songs.
Describe the bug/crash:
App failed to load Songs list
Steps To Reproduce the bug/crash:
Logs/Stack Traces:
2021-02-20-09-23-06.txt
Screenshots:
https://user-images.githubusercontent.com/75420364/108583359-cdc53080-72ed-11eb-9120-286c58949c8f.mp4
Phone Information:
device_info.txt
Auxio is a pretty cool music player. However, theres one thing about it that bothers me, and the lack of lyrics support is it. I want to be able to sing along to eminem because I just cant keep up with what hes saying, thats just an example. Lyrics is a really useful feature for people just wanting to know the words in any given song.
Because people like to know what the words are in their songs. Me and one of my friends would love this feature, but the lack of it is just tough and frustrating. Its really useful when you just like to know the lyrics of a song, and dont want to go look it up online, its integrated into the app.
looks like you forgot to increase versionCode
โ there have been 3 releases meanwhile, but versionCode
is still set to 1. As that's what Android uses to tell versions apart, this makes updates difficult for end users.
Could you please always increase this right before tagging a new release in the future? It doesn't matter how much, as long as the new value is larger. Thanks!
Hi im new to github so im sorry if i cant make a proper way to request a feature.
The title says it all and im frustrated sometimes when i cant find my newly downloaded songs.
It would be much easier for us to find it if we somehow can put "Newly added songs" as an option to "Library Items" in settings.
Thank you
One may have noticed that the pace of Auxio releases has slowed down. This is not because I am abandoning the project. I've been working on another project [Hint: Its also music-related] and in all honestly Auxio has a reached a point I'm somewhat satisfied with. However, there are some notable issues many of you have raised:
There are also issues when it comes to the system Auxio uses to get its music: MediaStore
. MediaStore
is the "recommended" way to get music on android, but is deeply flawed and clunky. Getting the genre of a song is horrifically inefficent [It takes up usually half of the time it takes to load music], getting the year of a song just isn't possible outside of a single type of MP3 file, and further support for features like playlisting would be even harder.
There is no way to salvage this system that isn't just begging google to improve MediaStore
so I am considering implementing a system similar to Vanilla Music where I use the Exoplayer Metadata Retrieval system to read metadata instead and simply store the results in a database. This seems to work okay with Vanilla to an extent, but would require most of the app to be completely refactored.
If this change [or something similar] succeeds, playlisting will likely be implemented as well, which would mean that the UI would likely be redesigned to accommodate the new feature and finally resolve the library conflict. This new library view would show genres/artists/albums/songs all in a single view with tabs between them. You could then customize the visibility and ordering of these tabs. What used to be the songs tab would now be the tab for playlists since I generally consider them separate from the music library. The end result would look something like this:
I would like to receive feedback on this change. I personally see this as an improvement, but I don't want to pull a GNOME and make a sudden change that everyone dislikes.
As of now, the roadmap looks roughly as:
Should be released in likely August as I continue to work on my other project
Auxio is not dead, its just in hibernation. Stay tuned.
Gadgetbridge is a FOSS app for controlling smart watches and bands. It also supports controlling media playback from watches. Most players are supported and play/pause, forward/rewind actions on the gadget are working. However on Auxio I can only see the name of played track and change volume. Auxio is not visible in Gadgetbridge music player list.
Android 12
I searched for a music app for so long and yours is the most stable enough for me. It has everything I need.
I have a question tho. Is the loading splash screen when opening the app necessary? I think it is better without the splash screen to show more speed.
Thank you and more power.
A toggle for enabling replaygain
Yes, replaygain solves the problem of different tracks sometimes being different levels of volume, and it normalizes the volume.
Sometimes tracks in an album can be different levels of volume, or tracks in a playlist.
For users who have their music with replaygain tags, definitely. Many users on Android who store their music locally use Replaygain.
This option (look at the left) probably does, what it should. It jumps to the next song when the current one is finished. The symbol is debatable, but otherwise it works fine:
This symbol ALSO doesn't loop the song. It seems to work just as the first one does:
This symbol loops the song forever (or at least 3 times) instead of just once.
Sometimes people don't want to binge through their music, but instead only listen to one track and then have the playing stop until they want to listen to the next track. It can be annoying to immediately be bombarded with a different song.
I suggest adding an option that lets the user play a song, and then pauses (and rewinds) the song when it's done playing.
Samsung Galaxy S9
Android 10
It is not possible on my device to open links, it says that the link couldn't be opened. Probably, the issue is that Auxio tries to request the packages on the system (here), which is not allowed by Android 11+ unless you add the QUERY_ALL_PACKAGES
permission (https://developer.android.com/training/package-visibility).
none
none
Android version 11
As described in the title, somehow Auxio couldn't read the artist of the songs on my phones.
Android 9 and 7
I would like for Auxio to have an option of displaying both synchronized lyrics (using a .lrc file) and unsynchronized lyrics while playing a song.
My feature request is not related to a particular problem.
A lyrics view in Auxio would greatly benefit those who enjoy singing to their music or would otherwise want to view lyrics embedded into their song's tags or stored in an external file.
i lately looked upon this repo and those songs in the screenshots in the README and checked one of them out, enjoyed it, went on and got them all.
i know there should be more and i'd really like to listen to your favorite tunes.
regards
Adding FLAC support to Auxio would increase its usability and versatility, while exoplayer doesn't support FLAC out of the box, there is an extension that allows playback of FLAC files.
When I open Auxio many of my songs aren't listed because they are in an unsupported format (FLAC).
Adding support for more file types makes Auxio a more capable application without increasing complexity of the UI.
I'm on version 1.3.3, and find the loop playback implementation unorthodox compared to other audio players.
When toggled:
Not to mention, the option to loop the whole playlist is hidden in the settings.
No.
I think it would be better to have [ ] loop the entire playlist and [1] to loop a single song indefinitely when toggled. It doesn't really make sense to have a dedicated toggle ([1]) loop a song one time only. This would also tidy up the settings page.
Toggleable black OLED theme
Feature request is not related to any problems.
Thanks for sticking to a frugal design choice concept. By far one of my favorite privacy respecting applications.
Determine if toggling black backgrounds is available in upstream UX libraries that are already in use by Auxio.
Determining most effective/efficient method of changing and toggleing the UX elements' background color.
Determine if/how the toggle should or should not interact with the system theme.
โ
I have read Accepted Additions and Requests and the Contribution Guidelines.
Hello, thanks for this app !
I think being able to have a denylist of directories (or maybe an allowlist ?) that are indexed in the app would be interesting !
I'm indeed working with audio files sometime, downloading podcasts too, and I don't want them in the music player app :)
I think this shouldn't bloat the app much, if you take the allowlist path you could simply put the default ~/music folder for example, and if you take the denylist path a simple list of excluded folder would be simple enough to understand I guess ๐
[ x ] I have read Accepted Additions and Requests and the Contribution Guidelines.
Ability to sort songs by file path.
It is very demanded type of sorting because it is the easiest (from implementation perspective) way to sort music library in the way you like.
I would like to control Auxio via Tasker by sending Intents like
INTENT_PLAYBACK_COMMAND_PLAY = "auxio.command.PLAY";
This feature allows to control Axio eg from a car-steering wheel, or integrate into other projects.
There are a few audio-players like GoneMad or PowerAmp which offer this feature, but non of them is free.
Thanks!
It'll be cool if we can group by folder in the library.
I think that this will be a nice addition. I organize my music in folders, so it'll be nice to play one folder as a makeshift "playlist" before it is implemented.
Option to play a song directly after current song.
I think most modern music players have this, It'll be nice to have in Auxio.
Attached is a screen shot of notification tray of both Auxio and Samsung Music.
No
From a glance, everyone could know the artiste of the song playing by just looking at the album art.
Please allow Songs to be sorted as Date Modified or Latest added .. and alphabetical order .
Title is self-explanatory
Add different widgets, such as 4x2, 4x1, text only, etc.
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.