A bare-bones music player. Intended to utilize a filesystem to browse your music instead of automatically grouping by artist, album or genre. Focused on gesture controls. Supports CUE sheets, M3U playlists and Internet radio.
Minimum supported Android version: 5.0 (Lollipop, API 21)
Here's what you can do in SonusPresto:
-
play music
-
browse your music in the way you have structured it, using the filesystem
-
play all files in a selected folder and sub-folders recursively
-
open CUE sheets and M3U playlists as folders
-
gapless playback
-
play Internet radio from M3U playlists
-
change a visual theme and language (English/Russian)
-
control a playback using touch and swipe gestures on a single button
-
listen to the audio from the video files
-
delete files and folders
Here's what SonusPresto can't do:
-
view audio tags or cover art
-
quickly set a precise playback position
-
view the current playback position in seconds
-
use a separate buttons to control a playback (i.e. there's no separate prev/stop/next/... buttons)
-
create custom playlists or manage a playback queue
-
basically, anything else that is not listed in the "Features" section :)
Disclaimer: new features will most likely never be added.
Here are some quirks:
-
the swiping of the bottom button may not work on some devices with specific Android gesture settings
-
since SonusPresto doesn't read tags, it can't determine actual artist and album name of a music track and instead it just uses folder names for that (except for playlist items)
-
SonusPresto may not be compatible with LastFM scrobblers, i.e. it will most likely send incorrect info because it does not use tags
-
SonusPresto doesn't know what formats your device supports, so it will just show every file that has any of the supported extensions (i.e. not all displayed files can actually be played)
Google Play and the Google Play logo are trademarks of Google LLC.
SonusPresto is made with Flutter.
To build this application do the following:
-
Download this repository.
-
Install Flutter and Android SDK. It's easier to do it from Android Studio.
-
At this point you can already debug the application from Android Studio. To build the release version follow the next steps.
-
Go inside the repository root and create the file
android/key.properties
based on android/key.template.properties. Fill in all fields. For more information see the official "Signing the app" tutorial. -
To build the release APK run
./build-apk.sh
inside the repository root. To build the release Android App Bundle run./build-bundle.sh
. These scripts will remove the entirebuild
directory before building, so e.g../build-bundle.sh
will remove the APK file that was built by./build-apk.sh
.
For uploading production releases this project uses fastlane.
-
Create
fastlane/Appfile
file using fastlane/Appfile.template as a template. -
Use the following instructions to obtain
api-secret.json
file: https://docs.fastlane.tools/actions/supply/#setup. -
Install Bundler, e.g. on Ubuntu:
sudo apt install ruby-bundler
. -
Run
bundle install
. It will install fastlane. -
Make appropriate changes in
fastlane/metadata/android
. -
Build and deploy a new release:
./build-bundle.sh --upload
.
Repeat 5
and 6
for each new release.
These steps are not exhaustive. Consult fastlane docs for more information.
GPLv3