Lectures and Narrations
A player for .m4b audiobooks on Android, iPhone, and iPad — with chapter-relative scrubbing, sleep timers, and an EPUB companion reader that highlights the text in sync with the narration.
Seven screens on both platforms, showing the same public-domain demo books: the library, the player, the image viewer, the sleep timer, the audio-synced EPUB reader with whole-book search, and the usage chart.
Tap any screen for the full-size store screenshot — tablet and iPad sets live in the repo. All four demo books were produced by ln-vox from public-domain texts.
Books that are only an EPUB, a chart of where your time goes, and the sleep timer folded into Settings — on both platforms, behind a new shared look.
Import a plain EPUB — no narration required. A page mark keeps your place, so the book reopens exactly where you left it, and the library tile shows the page you're on instead of a running time. The mini-player stays out of the way until something is actually playing.
A chart of how long each book has been open — listening and reading together — by day, week, month or year. One shade per book, stacked, so a bar shows both how long a day ran and what it went on. Details opens the individual sessions, loaded a page at a time as you scroll.
The Timer tab is gone on both platforms. The sleep timer now sits in Settings under the new chart — four tabs instead of five, and the settings that were split across tabs sit together.
iOS The setup controls stay on screen while a timer runs and start from what is armed: pick new values and tap Update timer to replace it, instead of cancelling and starting over — which is how the Android chips have always behaved.
The Athenaeum palette and a new icon, shared across the Android app, the iPhone app and this site. Material You theming from the wallpaper is still there behind a flag, but the shared identity is what ships.
Android the reader could lose sync with the narration when a page turned as it opened, and player controls could be pushed off a short screen. iOS the mini-player no longer covers the Update button, and the iPad library shows four large covers per row instead of six thin ones.
See the Android changelog and the iOS changelog for every change, including earlier release notes.
LN began as an AI experiment in book understanding — using language models to analyze narrative structure, character traits, and scene dynamics — and grew into an end-to-end pipeline for immersive, multi-voice audiobooks.
An offline, self-hosted AI pipeline that ingests raw text or EPUBs. It orchestrates LLMs to cast characters and direct emotional delivery, then uses local TTS to generate a fully acted, multi-voice .m4b complete with text-to-audio sync markers.
The Python pipeline on GitHub →Two fully native apps built specifically to play these enhanced audiobooks — Kotlin + Jetpack Compose on Android, and a ground-up port in Swift + SwiftUI on iPhone / iPad (published as L&N Reader on the App Store). Same features, same files: chapter-relative scrubbing, sleep timers, and the EPUB reader that highlights the text in sync with the audio.
Get it on Google Play →A focused, offline audiobook player — no accounts, no streaming, no tracking.
Each book can carry two optional companions, attached from its detail sheet. What you get depends on what's attached:
| EPUB | Sync | Result |
|---|---|---|
| ✓ | ✓ | Reader auto-follows the audio: highlights the active lnvox-beat span, scrolls to it, and turns pages as playback advances. Scrubber shows tappable image markers. |
| ✓ | ✗ | Plain reader, manual paging only. |
| ✗ | ✓ | Image markers on the scrubber only (no reader). |
| ✗ | ✗ | Plain audiobook. |
In auto-follow mode, manually flipping a page pauses following; a Resume button re-engages it and jumps to the current beat. Scrubber image markers sit at each manifest image's position within the current chapter — tap one to open the matching embedded m4b image.
ln-reader is single-device, offline-first software. Here's exactly what that means.
DocumentsProvider for your .m4b files — Drive, OneDrive, the system Files app, and most third-party managers work.chpl only. QuickTime text-track chapters load but show an empty list.covr) is the cover; other images appear in the viewer but aren't tied to chapters.span.lnvox-beat[data-beat-id]); unmatched beats just don't highlight.Prefer source over the Play Store? Build the debug APK in one command.
Android — JDK 21 required. From the project root:
The debug APK lands in app/build/outputs/apk/debug/.
Install it with adb install.
iPhone / iPad — Xcode 26 and XcodeGen:
Architecture, design decisions, and tooling quirks live in each project's DESIGN.md.
Android source → iOS source →