Imagine you're encoding morse in a protocol that has only an instant pulse. you can't do a dash, only dots.

But you can encode a dot as two dots with a short gap between them, and a dash by two dots with a long gap between them.

And you can of course merge adjacent dots: V is ···-, but you don't need eight dots to represent that, you need 5:
dot-short-dot-short-dot-short-dot-long-dot

and an extra-long gap between two dots is a space

if my math is correct, you encode "hello world" in 39 dots

this was originally going to be a math problem but I think I figured it out by the end, so I just posted it in case anyone found it interesting or can point out a way I'm fucking up.

I'm a bit sleep-deprived at the moment so I could easily be very wrong

the point of this dots-only idea was to compare it against a different encoding, which tries to minimize the number of dots by measuring the gaps between them.
so "hello world" would be encoded as 12 dots, with long distances between them

encoding algorithm:

emit('.')
for char in string:
sleep(char-32)
emit('.')

this does have the edge case that a space is encoded as no go between dots.

it could be shifted to char-31 or we could design the decoder to consider sub-1s delays as being 0

@foone Say you want to transmit values from a countable set X. Choose an injective map from X to the positive rationals. Then transmit dot numerator dot denominator dot. Minimal number of dots, maximal level of impracticability (is this a word?)
Edit: "numerator" and "denominator" meaning "wait that time" of course.
@foone NOOO THAT'S NOT AN IDEA FOR A NEW KEYBOARD!

@foone with infinite pause precision, you only need two dots for anything.

When you factor in Planck Time (~5e-44 sec), your options get more limited, but I can’t be bothered to do the math right now

@foone if X is a pulse and _ is silence, why not do X _ _ _ for a dit and X _ X _ for a dah? timing would not have to be nearly as precise

@foone
t=0
for char in string:
t = t*256 + char
emit('.')
sleep(t)
emit('.')

throughput could use some improvement, though

@foone Imagine it compressed into its version of a .zip file.

@foone
So, you need a start dot dot so the receiver knows how long a dot gap is, and a quiet period so it knows where the sequence ends, and maybe an extra dot before that, or lack of one that signals whether there are more dots than dashes so it knows it got things right.

Where have I seen this before?

@foone You're not fucking up but I'll just point out that the natural result of your point that 'neighboring dots can be merged' is that it is the spaces/pauses which encode the message not the dots :)
@foone how would you tell the difference between eeee ii and h?
Wouldn't they all look like 5 dots with 4 short spaces between them?
@smallsees ugh, you're right, you'd need a different gap length between letters and between dots in the same letter

@foone I think for this encoding of Morse code you need four lengths of gap: dot, dash, inter-letter, and inter-word.

At this point, you've actually got four symbols -- the lengths of the gaps. The "dot" is synchronisation just to let you distinguish the boundaries.

That compares to five symbols in Morse (dot, dash, and three lengths of gap, between symbols, letters, and words).

@foone the Python of radio modes

@foone Why not flip it around so that the pauses between pulses are data? Long pause is dash and short pause is dot.

Or am I missunderstanding your post?

@foone can't you reverse the data? Like pulse / two clock cycle / pulse for short, 4 clock cycle for long
pulse-encode

encode/decode stdin with just dots. inspired by https://digipres.club/@foone/116284027593568609

Codeberg.org
@foone This is kind of how IrDA works. It’s just UART, but to save on transmit power, a space is transmitted as a short pulse (3/16 of the bit time) and a mark is the absence of a pulse.
@foone
Pulse Position Modulation?
Or that PIE stuff UHF RFID forward link does?
@foone This reminds me of the whole "tapping Morse on walls/pipes" thing in war movies: https://boards.straightdope.com/t/tapping-morse-code-huh/1000667
Tapping Morse code: Huh?

This is a common trope in films: The hero, incarcerated by the villain or otherwise trapped in an enclosed space, uses knocks to communicate with the outside world via Morse code. How is this supposed to work, assuming it was ever used in practice? Morse code consists of short signals (dots), long signals (dashes), and silence (pauses). When I knock a solid surface, it makes one singular tapping sound; I can’t control the length of the sound. Is it that the sender marks not the signal itself but...

Straight Dope Message Board