Android · practical shooting

Two runs of the same stage, locked to the same beep.

A shot timer gives you the numbers. Split Shot puts them back on the video. Hand it two clips of the same course of fire — yours and your partner's, or last month's and today's — and it finds the start signal, finds every shot, follows the shooter, and bakes one synchronized comparison you can actually learn from.

Runs entirely on the phone No account, no upload Android 7.0+
Split Shot on a phone: two runs of the same stage side by side, each labelled with its shot times, above a scrub bar marked with every shot in both runs.
One nine-shot run, both ways
Shot A beep+ Split B beep+ Split
#11.020 s0.955 s
#21.405 s0.385 s1.550 s0.595 s
#31.795 s0.390 s2.045 s0.495 s
#97.860 s0.350 s8.935 s0.280 s

B broke the first shot 0.065 s sooner — and finished 1.075 s later. The draw was never the problem; the splits were. That is the kind of thing a stage time hides and a synchronized video makes obvious. Every number here was measured on the phone, from the clips' own audio.

How it works

Two clips in, one comparison out.

Nothing to wear, nothing to wire up, no clapperboard. If the timer's beep is on the audio track, Split Shot can work with the footage you already shot.

Pick two clips

Import both runs from the gallery. Split Shot reads each clip's real recording date and time from the file itself, so A and B never get mixed up. Swap the assignment any time — it reuses the analysis instead of starting over.

It listens, then it watches

An audio classifier finds the start signal and every shot in each clip. A person detector then finds the shooter and tracks them frame to frame, so the framing can follow the run instead of sitting still.

Review, correct, export

Both runs are aligned on the beep and baked into a single synchronized video. Fix a start marker, nudge sync in 10 ms steps, drop a misheard shot — then export an MP4 straight to your gallery.

In the app

Built around the things you actually argue about after a stage.

Every split, next to the frame that made it

Open either run into a per-shot table: time from the beep, and the split from the shot before it. Tap any row and the preview jumps to just before that shot, so you can watch the 1.895 s transition instead of guessing at it.

  • Beep-relative times and splits, to the millisecond
  • Mark a false positive and it leaves the counts, the overlay, the sync and the export
  • The six most recent splits stay burned onto the video as it plays
The per-shot table in Split Shot, listing nine shots with their time from the beep and the split from the previous shot.

Lock onto the part of the stage you care about

On a long course of fire, small differences pile up and the two runs drift apart by the end. Lock the comparison onto a shot range and both runs re-anchor on the same shot numbers — so shots 4 through 6, deep into the stage, play back genuinely side by side.

  • Both clips keep their own recording date, so A and B never get mixed up
  • Swap which run is A and which is B without re-analyzing anything
  • Nudge B against A in 10 ms steps when the beep isn't quite the truth
A Split Shot project screen showing clip A and clip B with their recording dates, each run's detected start time and shot count, and the shot-range lock.

The frame follows the shooter

Two runs filmed from slightly different spots don't line up, and a static crop wastes half the frame on the berm. Split Shot detects the shooter, tracks them through the run, and generates a smoothed crop that keeps them centred and at a consistent size in both halves.

  • Set the smallest and largest the shooter is allowed to appear
  • Fill viewport mode trades perfect centring for no empty edges
  • Ghost overlay blends B over A like a racing shadow lap
  • Turn on tracking boxes when you want to see what the detector saw
Split Shot's review and export panel: aspect ratio 16:9, 1:1 or 9:16, playback speed, tracking debug boxes, fill viewport, ghost overlay, lead-in and tail padding, subject size limits, and Export MP4 and Share buttons.

The export

One file, sized for wherever it's going.

Export writes a normal MP4 to Movies/Split Shot using the phone's own hardware encoder, so it shows up in your gallery like anything else you shot. Share sends it straight into the usual app chooser.

A real export, straight off a phone: one 9.4 s square comparison of the run tabulated above. Turn the sound on — the beep and every shot are in that audio track, and it is all the app gets to work from.

Play it back at 1×, 0.75× or 0.5×. Slowing it down doesn't lie about the numbers — the burned-in splits still show the real times from the original run.

The overlay stays out of the way: no opaque annotation panel across the footage, just the last six splits outlined over each run, and the shooter kept centred in their half of the frame.

16:9

Side by side. The one to send a coach, or put on a laptop.

1:1

Side by side, square. Fits a feed post without being cropped.

9:16

A stacked above B, full height, for stories and shorts.

On-device

Your range footage never leaves your phone.

This isn't a privacy promise bolted onto a cloud service. There is no server to upload to. The audio classifier, the person detector, the tracker and the video compositor all run locally — the app works fine in airplane mode, in a bay with no signal.

No account

Nothing to sign up for, nothing to sign in to. Open the app and import two clips.

No upload

Clips, analysis and exports stay in the app's own storage until you explicitly share them.

Detection on-device

The person detector runs through the phone's neural accelerator where one is available, and falls back to the CPU where it isn't.

Your own encoder

Rendering uses the hardware video codecs already in the phone. No render queue, no credits.