Beep Communication Specification v1.0

This document specifies a means of communicating information through the use of "beeps", a series of "b", "e", "i", and "p" characters similar to the onomatopoeic words for electronic noises.

Definitions

A "beep" is a single value of information, either a 0, 1, or 2. These are represented by one or two printed characters.

A "blip" are the individual characters that make up a beep. All of them are single printed characters, except for one.

A "beepstring" is a series of one or more beeps, followed by stop blips.


		Beepstring := Beep+ StopBlips
	

Blips

Start blip

This blip is used as an indicator that you are reading a beepstring, and to separate beeps from each other.


		StartBlip := "b"
	

Beeps

Beeps are the blips that represent data. All beeps are preceeded by a start blip as a separator.

There are three beeps:
A 0 value is represented by only a start blip.
A 1 value is represented by a start blip and an e blip.
A 2 value is represented by a start blip and an i blip.


		Beep: StartBlip (ZeroBlip | OneBlip | TwoBlip)
		ZeroBlip := ""
		OneBlip := "e"
		TwoBlip := "i"
	

Stop blips

All beepstrings must signal their end by repeating the previous blip and adding a final p blip.


		StopBlips := (ZeroBlip | OneBlip | TwoBlip) FinalBlip
		FinalBlip := "p"
	

Examples

An example of a beepstring that sends a single "1" value:


		beep
	

		b         e                 e       p
		StartBlip OneBlip StopBlips(OneBlip FinalBlip)
	

An example of a beepstring that sends "0101":


		bbebbebbeep
	

		b         _        b         e       b         _        b         e                 e       p
		StartBlip ZeroBlip StartBlip OneBlip StartBlip ZeroBlip StartBlip OneBlip StopBlips(OneBlip FinalBlip)
	

An example of a beepstring that sends "012012":


		bbebibbebiip
	

		b         _        b         e       b         i       b         _        b         e       b         i                 i       p
		StartBlip ZeroBlip StartBlip OneBlip StartBlip TwoBlip StartBlip ZeroBlip StartBlip OneBlip StartBlip TwoBlip StopBlips(TwoBlip FinalBlip)