by NoMoreNicksLeft on 5/8/24, 3:22 PM
What I really need is for the buzzer in the phone to buzz out Morse, so I can get information about who's sending a message without taking it out of my pocket. Maybe even for short messages just play out the whole message. First I guess I need to learn Morse though.
by chadrs on 5/8/24, 4:21 PM
This is a cool toy, I've been wanting to do something similar with my flipper zero to make a BT morse keyboard.
This also reminds me of TapXR, which I would totally buy if did morse, instead of inventing their own encoding. I get it, theirs is probably way faster but fluency is morse is more general purpose.
by finaard on 5/8/24, 6:45 PM
by dheera on 5/8/24, 10:49 PM
Another method -- Why not use one airpod to emit a constant sinewave and then use the other airpod's microphone listen for the amplitude of that sine wave to detect whether or not the microphone hole it is covered by a finger? I think it could make for a much faster and more efficient morse input, since you can detect dots and dashes directly instead of requiring a double-press as a dash.
There's a good chance you could also just do it with the amplitude of ambient noise and forget the sine wave generator.
by als0 on 5/8/24, 5:17 PM
Awesome. This is why I come to Hacker News.
by willwade on 5/9/24, 6:14 AM
by Ecco on 5/8/24, 3:59 PM
Time well wasted :)
by aidenn0 on 5/8/24, 9:51 PM
Because of how it works you can also key using the pause and next multimedia buttons on your keyboard. Now we need to make the snake eat its tail by rigging an Iambic paddle to send pause/next events.
by lenerdenator on 5/8/24, 5:22 PM
In five years, wireless headphones will be the new thing ruining ham radio.
by zer0w1re on 5/8/24, 4:41 PM
Neat! I wonder if both airpods could be used more like paddles for dot/dash, rather than one click for dot and two clicks for dash.
by _justinfunk on 5/8/24, 5:24 PM
This would be sweet using the tap feature in the previous generations of AirPods.
by elwell on 5/8/24, 10:52 PM
I guess the interesting thing here is that it's being simply handled by JS:
navigator.mediaSession.setActionHandler('pause', () => {
press('.')
})
navigator.mediaSession.setActionHandler('nexttrack', () => {
press('-')
})
navigator.mediaSession.setActionHandler('previoustrack', () => {
inputCodes = ''
showInput()
say('backspace')
clearTimeout(timerId)
txtOutput.value = txtOutput.value.slice(0, -1)
})