Tap code translator — knock messages as row and column taps

Tap code sends each letter as two groups of knocks, the row then the column of a 5×5 letter grid; type text to get the taps as numbers or dots, or paste taps to read them.

Live demo · real result from this tool
Direction
Show taps as

Result

2,3 1,5 3,1 3,1 3,4

Processed on your device — nothing is uploaded.

How to use the tap code translator

  1. Choose the Direction: Text → taps or Taps → text.
  2. When encoding, pick Show taps as: 2,3 for numbers or .. … for dots.
  3. Type into Your text.
  4. Read the Result. Letters are separated by a space (two spaces in dot style), and words by a slash.

What it does and when to use it

Tap code is a simple way to send text by knocking. It is best known from American prisoners of war in Vietnam, who used it to talk through cell walls. Today it turns up in escape rooms and scouting games. Because each letter needs at most ten taps and only two counts, it is easy to learn by heart.

It is a signalling code, not a cipher that protects anything. For a written number grid with a keyword, use the Polybius square, which shares J with I instead of dropping K. For signalling with long and short sounds instead of counts, see the Morse code translator, and for touch-based reading there is the Braille translator.

How it works

The tool uses this grid. The row is tapped first, then the column:

1 2 3 4 5
1 A B C/K D E
2 F G H I J
3 L M N O P
4 Q R S T U
5 V W X Y Z

Encoding. The text is split into words at spaces. In each word, only letters A to Z are kept and K becomes C. Digits and punctuation are dropped. Number style writes each letter as row,column; dot style writes the row as dots, a space, then the column as dots.

Decoding. Words are split at slashes. If a word contains dots, the tool counts the dots in each space-separated group and reads the groups in pairs. Otherwise it keeps only the digits 1 to 5 and reads them in pairs, so 2,3 and 23 both give H. An odd number of groups or digits gives a message. All of it runs in your browser.

Worked examples

Results from the tool:

Hi there                   →  2,3 2,4 / 4,4 2,3 1,5 4,2 1,5
Kick                       →  1,3 2,4 1,3 1,3
Hi          dot style      →  .. ...  .. ....
4,3 3,4 4,3   decode       →  SOS

In the second line every K and C becomes the same 1,3. The third shows H as two dots and three dots, then I as two dots and four dots. The last line is a distress call: S is row 4, column 3, and O is row 3, column 4.

Limits and tips

  • Decoded text is in capitals, and every C may have been a K.
  • Numbers cannot be sent. Spell them out as words before encoding.
  • Keep every dot group to between one and five dots. Larger groups are not valid tap code, so the decoder shows a ? for any letter that has one.

Frequently asked questions

Why does K come out as C?
The tap code grid has 25 cells, so one letter has to go. Traditional tap code drops K and uses C in its place, because a reader can tell from context. Kick is sent as 1,3 2,4 1,3 1,3, which decodes as CICC.
How do I tap a message out loud or on a wall?
For each letter, tap the row number, pause briefly, then tap the column number, and leave a longer pause before the next letter. H is 2,3, so tap tap, pause, tap tap tap. Switch Show taps as to the dot style to see the groups drawn out.
How do I decode taps I wrote down as dots?
Write one group of dots per tap group and separate groups with spaces, for example .. ... for H. The decoder counts the dots in each group and pairs them, row first. The number of spaces between groups does not matter, but the groups must come in pairs.
Is tap code a secret code?
No. It is a way to send letters through a wall or pipe, not to hide them. Anyone who knows the grid can read it, so treat it as a puzzle and signalling code only.

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close