A simple, rational music player for android
Find a file
Alexander Capehart 48ad45e4c3
music: rework id system
Completely rework the ID system to pave the way to MusicBrainz ID
support and greatly increase ID integrity in general.

This changeset removes the old ID field, an emulation of a polynomial
hash that was used in all items, and replaces it with a new type called
UID that is specific to Music. Other types just use plain equals now,
and most instances of "id" to check for equality in the app have either
been inlined into an equals override or removed outright.

The new UID format is as follows:
datatype/format:uuid

Datatype is a tag that is just the lowercase tag name. For example,
"song". Format is the program that created the UID. auxio will be an
md5 hash, and musicbrainz will the a musicbrainz ID extracted from a
file. UUID is the uuid itself.

This is much more reliable and extendable than the old ID format. This
will also be the last time I break compat with old ID formats. From now
on, a legacy UID field will not be included to enable backwards compat,
when the time comes for a breaking change.
2022-09-06 22:21:41 -06:00
.github playback: make sanitization runtime 2022-07-07 11:58:25 -06:00
app music: rework id system 2022-09-06 22:21:41 -06:00
fastlane/metadata/android Version 2.6.3 2022-09-03 12:48:14 -06:00
gradle/wrapper deps: upgrade to android 13 [#129] 2022-08-15 19:54:37 -06:00
info home: indicate playback on items [#218] 2022-09-01 19:27:36 -06:00
.gitignore queue: reimplement with bottom sheet 2022-07-29 14:40:58 -06:00
build.gradle playback: rework controller into InternalPlayer 2022-08-29 09:13:37 -06:00
CHANGELOG.md music: rework id system 2022-09-06 22:21:41 -06:00
gradle.properties all: cleanup 2022-03-13 16:42:03 -06:00
gradlew deps: upgrade deps 2022-05-26 10:29:41 -06:00
gradlew.bat ui: brighten dark theme 2021-09-01 18:48:02 -06:00
LICENSE Initial commit 2020-08-17 15:35:12 +00:00
prebuild.py playback: expose queue in mediasession 2022-07-25 10:39:50 -06:00
README.md Version 2.6.3 2022-09-03 12:48:14 -06:00
settings.gradle deps: use aar 2022-01-27 15:05:45 -07:00

Auxio

A simple, rational music player for android.

Latest Version Releases Minimum SDK Version

Changelog | FAQ | Licenses | Contributing | Architecture

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 Exoplayer, Auxio has a much better listening experience compared to other apps that use the native MediaPlayer API. In short, It plays music.

I primarily built Auxio for myself, but you can use it too, I guess.

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

Screenshots

Features

  • ExoPlayer based playback
  • Snappy UI derived from the latest Material Design guidelines
  • Opinionated UX that prioritizes ease of use over edge cases
  • Customizable behavior
  • Advanced media indexer that prioritizes correct metadata
  • Precise/Original Dates, Sort Tags, and Release Type support (Experimental)
  • SD Card-aware folder management
  • Reliable playback state persistence
  • Full ReplayGain support (On MP3, MP4, FLAC, OGG, and OPUS)
  • 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 (Unless you want them. Then you can.)

To come in the future:

  • Playlists
  • Liked songs
  • Artist Images
  • More customization options
  • Other things, probably

Permissions

  • Storage (READ_EXTERNAL_STORAGE): to read and play your media files
  • Services (FOREGROUND_SERVICE, WAKE_LOCK): to keep the music playing even if the app itself is in background

Building

Auxio relies on a custom version of ExoPlayer that enables some extra features. So, the build process is as follows:

  1. cd into the project directory.
  2. Run python3 prebuild.py, which installs ExoPlayer and it's extensions.
    • The pre-build process only works with *nix systems. On windows, this process must be done manually.
  3. Build the project normally in Android Studio.

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 Accepted Additions 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.