2Reply
A rehearsal app for theatrical plays, on Android and iPhone / iPad. Import a fully-voiced .m4b recording and its timed script — pick your characters, and their lines go silent for you to speak while the rest of the cast answers, right on cue.
The same four moments of a rehearsal on each platform — the library, the script running in sync, your line going silent, and the memorization drill.
Tap any shot for the full-resolution image. Tablet and iPad sets are in the repo.
Plays travel now: import a whole zip of them, share one in a tap — and Android 10 phones join in.
Pick a .zip — a Drive download of a plays folder, say — and every recording comes in with the script beside it, in one go. On iPhone it works from AirDrop and "Open in…" too. A recording without its script is reported, never guessed.
Send a play with Quick Share, AirDrop, Messages or Mail. It travels as one file with its recording and script, and 2Reply on the other device — Android or iPhone — imports it whole.
The Android app now runs on Android 10, 11 and 12 too — it used to need Android 13.
A darkened-theatre design, and a script you can play line by line.
A darkened-theatre design: velvet-red dialogue cards, gold stage directions, a spotlight on the line being spoken — and a new icon, with a themed version on Android 13+.
Each line shows a waveform that fills as it plays, next to its spoken duration. Tap its play button to play from that line — even when paused.
When the playhead reaches one of your lines, its play button becomes a glowing mic and the "speak now" prompt pulses.
A new button on the player lists every scene with its start time — jump straight to any scene, from any screen.
The "jump to current line" button no longer hides behind the player, and the last lines of a play now scroll clear of it.
What the first release brought — still the heart of every rehearsal.
The play renders like a chat: other characters on the left, your lines as "me" bubbles on the right, stage directions as system notes, scene titles as headers. The active line highlights and scrolls along with the audio.
Playback volume drops to zero exactly during your characters' lines and comes back after — the play stays on schedule while you deliver the line. Works from the lock screen with the app in the background.
Pick any number of characters from the cast list (sorted by line count). All of their lines mute and flip to your side of the chat — rehearse two parts, or practice as a duo on one device.
Two toggles: hide your lines to test memorization, or hide everyone else's to train reacting to the spoken cue. Hidden lines keep the name and a waveform sized to the line's length.
Every line shows its spoken duration and fills as it plays — full for what's played, live on the current line. During your muted lines it doubles as a pacing guide.
Previous / next scene buttons in the app and on the lock screen or media notification — the meaningful jump unit when rehearsing, not an arbitrary ±30 seconds. Tap any line to jump straight to it.
See the full changelog for every detail.
Two independent toggles on the training screen change what you're practicing. Hidden lines keep the speaker's name and their waveform — you always know who speaks and for how long.
| Your lines | Others' lines | You're practicing |
|---|---|---|
| text shown | text shown | Reading along — the default. Follow the script, speak on cue over your muted lines. |
| text shown | hidden | Ear training — no reading ahead; catch your cue from the spoken audio alone. |
| hidden | text shown | Memorization — can you recall the line with only its name tag and waveform? |
| hidden | hidden | Off-book run — a pure audio-and-timing pass, the closest thing to being on stage. |
The mute engine ticks against the script's timing windows with deadline-aware precision — mute edges land inside the recording's natural inter-line pauses. Your device volume is never touched; only the player's own gain.
A focused, offline rehearsal player — no accounts, no network, no tracking.
2Reply plays a pair of files produced by the LN toolchain (or anything that writes the same shape):
A fully-voiced recording of the play — every character spoken, one chapter per scene. Title and cover art are read from the file's metadata; the embedded cover becomes the library artwork.
The script with timestamps: scenes, and per entry a start/end in seconds, a
type (dialogue, staging, cue), the
speaker, the text, an acting direction, and an emotion tag. The script's
timings are the source of truth for muting, highlighting, and scene skips —
they must match the recording (import rejects pairs that differ by more
than 30 seconds of total duration).
2Reply is single-device, offline software. Here's exactly what that means.
DocumentsProvider for your files.2Reply is on Google Play, but it is free software — building it yourself takes one command:
JDK 21 required. From the project root:
The debug APK lands in app/build/outputs/apk/debug/.
Install it with adb install.
2Reply shares its architecture and house style with
ln-reader — same stack, same patterns,
documented in the repo's NEW_APP_SPEC.md.