diff --git a/README.md b/README.md new file mode 100644 index 0000000..d235af7 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +# 24/7 Radio + +Personal-use Android app for 24/7 internet radio streaming. + +## Features + +- **Custom Raw Audio Pipeline** — OkHttp → IcyParser → Mp3FrameSync → MediaCodec → AudioTrack for absolute minimum latency (~26ms per MP3 frame) +- **Stay Connected Mode** — Aggressive reconnection with exponential backoff, never gives up +- **Dual Timers** — Session elapsed time and connection elapsed time +- **Latency Indicator** — Estimated stream-to-speaker latency +- **Icecast/Shoutcast Metadata** — Track title, artist extraction from ICY protocol +- **Album Art** — MusicBrainz/Cover Art Archive lookup with fallback chain +- **Playlist Management** — PLS/M3U import/export with #EXTIMG support +- **Station Organization** — Playlists, starring/favoriting, manual reorder + +## Requirements + +- Android 9.0+ (API 28) +- Internet connection + +## Build + +```bash +./gradlew assembleDebug +``` + +## Import Stations + +1. Open the app +2. Tap the import icon in the top bar +3. Select a .m3u or .pls file +4. Stations are added to your list + +## Architecture + +See [Design Document](docs/plans/2026-03-09-android-247-radio-design.md) and [Implementation Plan](docs/plans/2026-03-09-android-247-radio-implementation.md).