dorkhub

dmt

a tui-inspired local music player for android. dear music, thanks.

imjyotiraditya
Kotlin894 forksGPL-3.0updated 2 days ago
visit the demogit clone https://github.com/imjyotiraditya/dmt.gitimjyotiraditya/dmt

dmt

telegram release

dear music, thanks.

a tui-inspired music player for android. music helped me through a lot, this is the thank you note.

screenshots

library, landscape player, portrait
player, landscape

what it does

  • plays the music on your phone, and can stream from a self-hosted jellyfin server instead: sources get their own screen, tap to switch, log in once and it remembers the server and token (never the password). covers, lyrics and format info come from the server too
  • library and albums tabs, both searchable; tap an album to play it, [↗] to open it, long-press for play/queue actions
  • a folder blocklist in cfg keeps voice notes and other junk out of the library
  • cover art rendered as colored ascii with a light sweep while playing. tracks without art get a generated ascii pattern of their own. there is a raw artwork toggle if ascii is not your thing
  • full screen player with a proper landscape layout, mini player everywhere else, swipe down to dismiss
  • queue and track info live in bottom sheets, queue items can be removed one by one
  • sleep timer (15/30/60), playback speed (0.75x to 2x), shuffle and repeat
  • listening stats: time listened, play counts, most played with accent bars
  • android auto: browse by tracks and albums (grid), voice search, shuffle and repeat buttons on the car screen
  • picks up where you left off: last queue, track and position restore on launch, deleted files silently drop out
  • format nerd info when you want it: codec, bitrate, sample rate, bit depth, size, down to spotting he-aac and vbr encodes
  • bundled ffmpeg decoders, so formats the platform won't touch still play
  • four accents (orange, moss, steel, mono) and the launcher icon follows
  • hooks into the system equalizer, media notification with album art
  • handles big libraries without falling over
  • lyrics read straight from the file tags (mp3, flac, m4a), supporting synced apple ttml (line and word timing, background vocals, duet sides, multiple singers) and lrc, with a karaoke view in the player, plus translation, transliteration and a script toggle (original or romanized) where the file has them
  • when a file has no lyrics, the lyr? key fetches them from lrclib on demand - never automatically
  • shows up in external media widgets (kustom and the like) so they can read what's playing

building

open in android studio and hit run. minSdk 30. release builds are minified and land around 12mb, most of it the bundled ffmpeg decoders. ci builds a signed release apk on every push.

stack

kotlin, compose, media3, datastore. single state + actions, no magic.

no ads, no analytics. the network is only ever used to talk to your own jellyfin server, and to lrclib when you ask for missing lyrics. it just plays music.

more like this

DroidKlipp

Install and monitor KlipperScreen on Android via DroidKlipp APK, USB ADB forwarding, and WiFi fallback

Shell51

search

search projects, people, and tags