Coder Social home page Coder Social logo

oxygencobalt / auxio Goto Github PK

View Code? Open in Web Editor NEW
1.7K 24.0 112.0 52.57 MB

A simple, rational music player for android

License: GNU General Public License v3.0

Kotlin 92.90% Java 7.10%
android music-player exoplayer playback music androidx media-player multimedia audio foss

auxio's Introduction

Auxio

A simple, rational music player for android.

Latest Version Releases Minimum SDK Version

Translation status

About

Auxio is a local music player with a fast, reliable UI/UX without the many useless features present in other music players. Built off of modern media playback libraries, Auxio has superior library support and listening quality compared to other apps that use outdated android functionality. In short, It plays music.

The default branch is the development version of the repository. For a stable version, see the master branch.

Screenshots

Features

  • Playback based on Media3 ExoPlayer
  • Snappy UI derived from the latest Material Design guidelines
  • Opinionated UX that prioritizes ease of use over edge cases
  • Customizable behavior
  • Support for disc numbers, multiple artists, release types, precise/original dates, sort tags, and more
  • Advanced artist system that unifies artists and album artists
  • SD Card-aware folder management
  • Reliable playlisting functionality
  • Playback state persistence
  • Automatic gapless playback
  • Full ReplayGain support (On MP3, FLAC, OGG, OPUS, and MP4 files)
  • External equalizer support (ex. Wavelet)
  • Edge-to-edge
  • Embedded covers support
  • Search functionality
  • Headset autoplay
  • Stylish widgets that automatically adapt to their size
  • Completely private and offline
  • No rounded album covers (by default)

Permissions

  • Storage (READ_MEDIA_AUDIO, READ_EXTERNAL_STORAGE) to read and play your music files
  • Services (FOREGROUND_SERVICE, WAKE_LOCK) to keep the music playing in the background
  • Notifcations (POST_NOTIFICATION) to indicate ongoing playback and music loading

Donate

You can support Auxio's development through my Github Sponsors page. Get the ability to prioritize features and have your profile added to the README, Release Changelogs, and even the app itself!

$16/month supporters:

yrliet

$8/month supporters:

Building

Auxio relies on a custom version of Media3 that enables some extra features. This adds some caveats to the build process:

  1. cmake and ninja-build must be installed before building the project.
  2. The project uses submodules, so when cloning initially, use git clone --recurse-submodules to properly download the external code.
  3. You are unable to build this project on windows, as the custom Media3 build runs shell scripts that will only work on unix-based systems.

Contributing

Auxio accepts most contributions as long as they follow the Contribution Guidelines.

However, feature additions and major UI changes are less likely to be accepted. See Why Are These Features Missing? for more information.

License

GNU GPLv3 Image

Auxio is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

More information can be found here.

auxio's People

Contributors

cccclyde avatar chrispalmeri avatar connyduck avatar e-zk avatar enricocid avatar hasanpasha avatar ibrajix avatar koitharu avatar n-berenice avatar offa avatar oxygencobalt avatar poussinou avatar qwerty287 avatar seijikun avatar tesphil avatar unrenowned avatar vishnusanal avatar weblate avatar yurical 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  avatar  avatar  avatar  avatar

auxio's Issues

Media controls on lockscreen not properly showing

Describe the bug/crash:

Media player controls & info not properly working on lockscreen (instead it shows up in a notification)

Steps To Reproduce the bug/crash:

  1. Open Auxio and play some music
  2. Lock then open the screen
  3. Lockscreen says that it doesn't detect a music player.

Screenshots:

Screenshot_20210531-025515

Phone Information:

Device: Samsung Galaxy J2 2015 (j2lte)
Android version: 7.1.1 (Custom Samsung ROM)

Due Diligence:

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.

Translations

Many of Auxio's translations are likely incorrect or incomplete. So this issue thread is meant to pool translations for this project.

Finding your country code [A.K.A your 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.

  • Usually country codes are all that is needed to determine a language directory, with the general format being values-x where x is the country code.
    i. German would have a translation directory named values-de
    ii. Polish would have a translation directory named of values-pl
  • Sometimes, languages can differ heavily across regions. If this is the case, format your directory as 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.
    i. Brazilian Portuguese would have a translation directory named values-pt-rBR
    ii. Taiwanese Chinese would have a translation directory named values-zh-rTW

Translating Strings

  1. After determining what country code you should use, download the main strings.xml file and open it in your preferred text editor. You could also search for an existing strings.xml that corresponds to your country code here and edit that, although you will need to add XML tags for new translations.
  2. Begin translating. You can ignore the <string name="XYZ"> and </string> bits, only edit the contents in between.
  3. [Optional]. If your language has more/less than two ways of describing the quantities of something, make sure to modify the <plurals> strings to reflect that, adding/removing categories as needed. You can find more information on modifying plurals to fit your language here.
  4. When you are done with your translations, you can fork Auxio and create a Pull Request with your added translations, or you can add your translated 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.

Translating F-Droid Descriptions

  1. Download the Auxio codebase to your system. This can be done by either cloning the repository using git clone or downloading it directly from Code -> Download ZIP.
  2. Enter the fastlane/metadata/android directory, and create a new directory with your country code from earlier as the name.
  3. Copy over the text files from the main 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.
  4. Begin translating, this should be relatively straightfoward, just ignore all the HTML tags [Such as <a>] and focus on the contents themselves.
  5. When you are done, you can upload a 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.

Fix (& improve) repetition options

Describe the bug:

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:
Screenshot_20210717-070933_Auxio.jpg


This symbol ALSO doesn't loop the song. It seems to work just as the first one does:
Screenshot_20210717-071013_Auxio.jpg


This symbol loops the song forever (or at least 3 times) instead of just once.
Screenshot_20210717-071024_Auxio.jpg


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.

Screenshots:

Screenshot_20210717-072414_Auxio.jpg

Phone Information:

Samsung Galaxy S9
Android 10

Due Diligence:

Exlude directories from indexing

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.

Material 3

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:

  • Make Material You an optional setting [More customization, but the icon would have to always be themed/unthemed]
  • Force Material You for all Android 12 devices [Theming is more complete, but comes at the cost of less customization]

I'll try to work on this after the overhaul I'm planning.

Gadgetbridge media control is not working

Describe the bug/crash:

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.

Steps To Reproduce the bug/crash:

  1. Play a track on Auxio
  2. Go to music section on smart watch/band
  3. Try to pause track

Logs/Stack Traces:

Screenshots:

Screenshot_20220104-085912_Gadgetbridge_1

Phone Information:

Android 12

Due Diligence:

Re-add black theme in Android 12

Describe the feature you want to implement:

Toggleable black OLED theme

Is your feature request related to a problem? Please describe:

Feature request is not related to any problems.

Why do you think this will improve everyone's usage of Auxio?

  • Consistant theming for users that have an OLED display.
  • Better battery usage. More pleasing to the eye (IMO).
  • Seriously my last grudge against this simple yet absolutely refreshing application.

Thanks for sticking to a frugal design choice concept. By far one of my favorite privacy respecting applications.

Due Diligence:

  • 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.

Tag and Artist Editor

Describe the feature you want to implement:

I would like to see a tag and artist editor for songs like Oto music has.

Is your feature request related to a problem? Please describe:

I'm frustrated by the fact that I can't edit the metadata of songs and make changes to artists or albums

Why do you think this will improve everyone's usage of Auxio?

This way, we'd be able to edit artists, lyrics, albums etc.

Due Diligence:

Open a music file through a file provider

Describe the feature you want to implement:

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)

Is your feature request related to a problem? Please describe:

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.

Why do you think this will improve everyone's usage of Auxio?

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.

Due Diligence:

[Feature Request] Playlist support

Describe the feature you want to implement:

Create playlists, save them to .m3u file and read playlists from .m3u files.

Is your feature request related to a problem? Please describe:

No, but I'd like to listen to specific songs from my playlist.

Why do you think this will improve everyone's usage of Auxio?

So that everyone can start making playlists and shuffle/loop those songs only without having to skip songs.

Due Diligence:

Link opening not possible (Android 11)

Describe the bug/crash:

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).

Steps To Reproduce the bug/crash:

  1. Go to the settings and the About section on Android 11
  2. Click on the GitHub, FAQ or Licenses link
  3. A toast will appear and says that the link couldn't be opened

Logs/Stack Traces:

none

Screenshots:

none

Phone Information:

Android version 11

Due Diligence:

Media3

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:

  • [2.X.X] Move over all my exoplayer uses to Media3.
  • [2.X.X] Revamp MediaSessionConnector to use Media3 instead of Media1.
    • Cover loading would become a mess again, as I will likely have to force my async cover loading function to play along with a synchronous getCover call. Why this hasn't become async by default beats me.
  • [2.X.X] Add android auto support using media3. I could do this right now, but I'd rather not have to migrate old media code to the new library.

Play Next

Option to play a song directly after current song.

Lyrics support

Describe the feature you want to implement:

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.

Why do you think this will improve everyone's usage of Auxio?

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.

Due Diligence:

Control via Intents ?

Describe the feature you want to implement:

I would like to control Auxio via Tasker by sending Intents like
INTENT_PLAYBACK_COMMAND_PLAY = "auxio.command.PLAY";

Is your feature request related to a problem? Please describe:

Why do you think this will improve everyone's usage of Auxio?

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.

Due Diligence:

Thanks!

Album cover not displaying

Describe the bug/crash:

MP3 files which I have tagged myself are not displaying the album art. They display fine in other applications, but not in Auxio.

Steps To Reproduce the bug/crash:

  1. Download this file as an example.
  2. Open up on your computer in your media player of choice and see the album cover.
  3. Put it onto your phone and open it up in Auxio.
  4. See that the album cover is not displayed.

Logs/Stack Traces:

Screenshots:

Auxio app:
new

Picard (linux) clearly showing album image:
2021-10-08-223632_570x425_scrot

Phone Information:

Samsung Galaxy S8 SM-G950U
Android 9

Due Diligence:

Things I have tried:

  • Using different image
  • Using smaller image & larger image
  • Different image types (jpg and png)
  • Different aspect ratios

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.

may i have a list of your songs?

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

Group by folder

Describe the feature you want to implement:

It'll be cool if we can group by folder in the library.

Why do you think this will improve everyone's usage of Auxio?

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.

Due Diligence:

Auxio background service crashes upon speaker change

Description

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.)

Steps To Reproduce Crash

  • Turn on Headset focus
  • Connect to a Bluetooth device, specifically a (Honda) car
  • See Auxio throw error (usually is silent)

Stack Trace

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)

Phone Information

Pixel 5a on Android 12L beta (S2B1.211112.006)

Due Diligence

Gapless playback

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,

Album art not displaying in notification tray

Describe the feature you want to implement:

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.

Screenshot_20210819-050504_One UI Home

Is your feature request related to a problem? Please describe:

No

Why do you think this will improve everyone's usage of Auxio?

From a glance, everyone could know the artiste of the song playing by just looking at the album art.

Due Diligence:

Queue Feedback

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.

Bug With Library Scanning

Describe the bug/crash:

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!

Steps To Reproduce the bug/crash

  1. Remove all songs from library leaving a song playing

  2. Scanning does not work unless I stop playing song

  3. 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.

  4. 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

Logs/Stack Traces:

Screenshots:

Phone Information:

Android 10

Due Diligence:

Music loading issues

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.

  1. Genre indexing is slow and inefficient
  2. Poor ID3v2.4 support [No dates, weird artists]
  3. Poor FLAC support [No dates]
  4. Literally any UTF-8 tag with non-ASCII characters will look corrupted
  5. An uncountable amount of OEM-specific insanity that I can't even include

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.

Library improvements

This is related to multiple issues:

  1. Disjointed Library UI: Songs on one tab but artists on another, can't set defaults [Related: #12]
  2. Can only see one item type at a time in the library view
  3. No sorting on the songs view [Related: #16]
  4. Sorting options are basic [No artist/album sorting]

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.

FLAC files not being indexed

Describe the feature you want to implement:

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.

Is your feature request related to a problem? Please describe:

When I open Auxio many of my songs aren't listed because they are in an unsupported format (FLAC).

Why do you think this will improve everyone's usage of Auxio?

Adding support for more file types makes Auxio a more capable application without increasing complexity of the UI.

Sort by file path

Describe the feature you want to implement:

Ability to sort songs by file path.

Is your feature request related to a problem? Please describe:

Why do you think this will improve everyone's usage of Auxio?

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.

Due Diligence:

Add "recently added songs" as one of Library items in settings.

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

Add support for Replaygain

Describe the feature you want to implement:

A toggle for enabling replaygain

Is your feature request related to a problem? Please describe:

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.

Why do you think this will improve everyone's usage of Auxio?

For users who have their music with replaygain tags, definitely. Many users on Android who store their music locally use Replaygain.

Due Diligence:

SD Card music will not load

Describe the feature you want to implement:

i would like the ability to play, load and see music from SD cards

Why do you think this will improve everyone's usage of Auxio?

we will be able to use SD cards

which is a important feature for people with lots of music, or for people who like to have a portable music library

Due Diligence:

versionCode is not incremented

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!

Incorrect artist name displayed in some songs

Describe the bug/crash:

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

Steps To Reproduce the bug/crash:

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

Screenshots:

Screenshot_20210819-044252_Auxio Debug

Screenshot_20210819-045534_Samsung Music

Phone Information:

Samsung Galaxy S9 plus

Due Diligence:

Icon for F-Droid

Describe the feature you want to implement:

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.

Is your feature request related to a problem? Please describe:

Why do you think this will improve everyone's usage of Auxio?

A better icon than the placeholder.

Due Diligence:

Remove the loading Splashscreen when opening the app.

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.

Music loading failed

Describe the bug/crash:

  • Upon installing the app and granting the storage permission, it says "Music loading failed". Pressing retry yields the same error. I have ensured the storage permission was granted. According to MediaStore I have approximately 1200 songs but I not sure if that is related.

Steps To Reproduce the bug/crash:

  1. Install app
  2. Press "Allow" for the storage permission prompt
  3. App says "Music Loading failed"
  4. Retry does nothing, nor does force closing and trying.

Phone Information:

Oppo Reno
ColorOS 7.1
Android 10

App version is 1.3.0 installed from the IzzyOnDroid F-Droid Repo.

Due Diligence:

Change loop playback functionality?

Describe the feature you want to implement:

I'm on version 1.3.3, and find the loop playback implementation unorthodox compared to other audio players.
When toggled:

  • [ ] loops a single song indefinitely.
  • [ 1 ] loops the song once then continues playing the next song.

Not to mention, the option to loop the whole playlist is hidden in the settings.

Is your feature request related to a problem? Please describe:

No.

Why do you think this will improve everyone's usage of Auxio?

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.

Due Diligence:

Playlists

The current plan for playlists is a self-contained database with optional M4A exporting.

Auxio's playlist implementation will have:

  • A built-in liked songs playlist
  • Custom user-defined playlists

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.

Make the artist view scroll the same as the all songs scroll

Describe the feature you want to implement:

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.

Is your feature request related to a problem? Please describe:

It's hard to find a single artist easily.

Why do you think this will improve everyone's usage of Auxio?

It would make finding artists easier.

Due Diligence:

Add support for lyrics

Describe the feature you want to implement:

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.

Is your feature request related to a problem? Please describe:

My feature request is not related to a particular problem.

Why do you think this will improve everyone's usage of Auxio?

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.

Due Diligence:

Future of Auxio

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:

  • Disjointed library system: There are two library tabs, one for genres/artists/albums and one for songs. Theres no way to see genres/artists/albums at the same time, and theres no way to make the songs tab default [#12].
  • The library view does not have a fast scroller, which can be an issue for long album lists
  • The songs view cannot be sorted [#16]
  • No widget support [#8]

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:

Mockup

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:

1.4.1

  • Black Theme [Finished in 5dc7b52]
  • Fast-scrolling in the library view [Finished in 5131db5]

1.4.2

  • Android 12 support
  • Widgets
  • Possible "Material You" customization if I can figure out how that works
  • Song sorting

Should be released in likely August as I continue to work on my other project

Some nebulous future 1.5.0 release

  • Liked Songs and Playlists
  • Library redesign

Auxio is not dead, its just in hibernation. Stay tuned.

Allow songs tab to be opened by default

Describe the feature you want to implement:

An option for setting the songs tab as default when the app is launched.

Is your feature request related to a problem? Please describe:

Somewhat.

Why do you think this will improve everyone's usage of Auxio?

This would help many who don't benefit from the Library tab and instead want to see the songs tab first.

Due Diligence:

Add widget support

Title is self-explanatory

Add different widgets, such as 4x2, 4x1, text only, etc.

Remove network permission

Describe the bug/crash:

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".

Steps To Reproduce the bug:

  1. Go to this app's f-droid page
  2. Look at it.

Screenshots:

Screenshot_20210716-081517_F-Droid.jpg

Screenshot_20210716-081629_F-Droid.jpg

Due Diligence:

Reduce leading instrument

Describe the feature you want to implement:

If you don't mind can you add feature to reduce leading intrument? 🙏😊

Is your feature request related to a problem? Please describe:

  1. Backtrackit are closed source app that have this feature I don't want pay I don't want use closed source app due to privacy concern
    And yes this feature inspired by this closed source apps

Why do you think this will improve everyone's usage of Auxio?

Because you can easily make instrumental version only of music and yes with this FOSS apps 🙏😊
(Uh actually this feature used for removing vocal)

Due Diligence:

Implement ExoPlayer extensions

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.

UI/UX changes

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:

  • All rules from the Addition Guidelines apply here.
  • Some things might not be feasible due to limitations with the android framework, such as:
    • Swipe gestures not from the playback menu [Navigation restrictions]
    • Swipe-to-queue [Too many conflicting touch events]

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.