$ aetherfin --play█
Your music.
Your server.
No compromises.
Native Android player for Jellyfin, Navidrome, and local files. Decoded on-device with libmpv. No transcoding, no telemetry, no cloud.
android 7.0+ · jellyfin 10.8+ · navidrome 0.49+ · local mode
$ fft --bands 64 --fps 60
$ dsp --effects 86
$ gapless --enable
// features
$ ls features/
Everything you need. Nothing you don't.
visualizer.sh
$ fft --bands 64 --fps 60
64-band spectrum from actual audio output. No microphone permission needed.
gapless.sh
$ mpv --prefetch next-track
libmpv pre-fetches the next track. Seamless album-side transitions.
dsp.sh
$ dsp --effects 86 --eq-bands 18
18-band EQ, compressor, echo, phaser, flanger, chorus, pitch shift, and more.
lyrics.sh
$ lrc --parse --auto-scroll
LRC parsed on-device with auto-scrolling highlight. Lock-screen too.
servers.sh
$ connect --jellyfin --navidrome --local
Both servers out of the box, or play files from your device.
output.sh
$ dac --bit-perfect --exclusive
Force sample rate, bit depth, exclusive mode. Lossless — no quality loss.
timer.sh
$ sleep --end-of-track
5 to 60 minutes, plus end-of-track mode. Pauses when the song finishes.
privacy.sh
$ audit --telemetry=none
No analytics. No ads. No trackers. Talks only to your server.
// technical
$ cat pipeline.txt
Built on libmpv with a custom Dart-side audio pipeline.
# Aetherfin audio pipeline
# Direct stream → libmpv decode → DSP → output
source: raw_bytes://your-server/audio.flac
↓
decode: libmpv (hardware-accelerated)
↓
dsp_chain:
├── equalizer 18-band graphic EQ
├── compressor dynamic range
├── echo delay/reverb
├── phaser sweep effect
├── flanger modulation
├── chorus multi-voice
├── pitch rubberband engine
└── loudness EBU R128
↓
output: device DAC (bit-perfect)
# Supported formats
codecs: FLAC, ALAC, OPUS, WAV, MP3, AAC, Vorbis
rates: 44.1k, 48k, 88.2k, 96k, 176.4k, 192k
depth: 16-bit, 24-bit, 32-bit float
86
DSP Effects
64
FFT Bands
60fps
Visualizer
192kHz
Max Sample
32-bit
Max Depth
0
Telemetry
// comparison
$ diff aetherfin competitors
How it stacks up.
┌─────────────────────┬──────────────────────────┬──────────────────┬──────────────┐ │ Feature │ Aetherfin │ Finamp │ Generic │ ├─────────────────────┼──────────────────────────┼──────────────────┼──────────────┤ │ Format support │ ✓ FLAC,ALAC,OPUS,WAV │ ✓ Most formats │ ✓ MP3,AAC │ │ DSP / EQ │ ✓ 86 effects, 18-band │ ✗ None │ ✗ Basic EQ │ │ FFT Visualizer │ ✓ 64-band, 60fps │ ✗ None │ ✗ None │ │ Synced Lyrics │ ✓ LRC + auto-scroll │ ✓ LRC │ ✗ None │ │ Gapless Playback │ ✓ libmpv pre-fetch │ ✓ Yes │ ✗ Gaps │ │ Local Files │ ✓ SAF folder picker │ ✗ Server only │ ✓ Some │ │ Navidrome │ ✓ Native REST API │ ✓ Subsonic │ ✗ No │ │ Telemetry │ ✓ Zero │ ✓ Zero │ ✗ Often yes │ │ Open Source │ ✓ MIT │ ✓ MPL-2.0 │ ✗ Usually no│ └─────────────────────┴──────────────────────────┴──────────────────┴──────────────┘
// community
$ git log --oneline
★ 2.4k stars on github 47 contributors MIT license @azrim_ci telegramstar on github
// install
$ aetherfin --setup
Three commands to music.
$ curl -L https://github.com/.../aetherfin.apk
✓ Downloaded aetherfin-v1.0.apk (24MB)
Grab the latest release. Universal APK works everywhere.
$ aetherfin --mode server|local
✓ Mode selected. Ready to configure.
Connect to a Jellyfin/Navidrome server, or pick a local music folder.
$ aetherfin --play
✓ Now playing: Track 01 — Album Name
Stream from your server or play from device storage.
$ aetherfin --download█
Your music deserves better.
No cloud. No subscription. No analytics. Just a polished player.
$ download --latest