Locating the source of a mysterious beep

274 points138 comments16 hours ago
chimpontherun

Around '05 or so, the house we were staying in started beeping. Smoke alarm sounds, as usual. For almost a day we couldn't find the source. Contacted the owners -- they didn't know it either. They bought the house few years prior, so not much of a help.

Standing in the hallways listening at different angles, as the article says, didn't help. No Fable in '05 either.

So I had to improvise. Got a ~1 meter stick and two headphones (every headphone is a microphone, even if it sucks as a microphone). Plugged them into the stereo mic port, and started recording in Audacity. The phase shift between L and R pointed directly to the source. Took about 4 or 5 beeps to get the sucker.

Turns out, it was hiding above the ceiling tiles in the garage. My wife still tells this story to all her friends as one of my biggest life achievements. Everything I shipped, the companies I founded -- pales in comparison to finding a dead smoke alarm

show comments
simonw

I didn't mention this in the article, but this isn't the first time my family has been driven almost spare by a mysterious, hard-to-track beep.

Our dog goes outside and hides in the lavender bush if a smoke alarm starts making a "I need a battery" noise.

So I went into this project with the attitude that I would like to solve this class of problem forever.

show comments
tristanj

You can also solve this in O(logn) using a physical binary search:

1) Move half the boxes to another room.

2) Listen for a beep and determine which room the beep comes from.

3) Take the boxes in that room and split them in half again.

4) Repeat until one box is left.

show comments
BubbleRings

I’ve been trying to think of other uses for the system. I’m wondering about this:

What use could a teacher make of a locator system, if students could identify their location and desire to be singled out for a moment, by simply clapping once?

In a big auditorium, a spotlight could track over to the student, who could then ask a question.

And/or, directional microphones could zero in on the student so the question could be played on the PA system.

show comments
foo12bar

Why didn't you time the interval between the beeps? Then when the next beep was coming up, just listen to a particular part of the room or set of boxes until you found it.

show comments
Confiks

> I think the most interesting part of this project is that I demonstrated it’s possible to give Claude Code ears

Of course it can analyze audio. I made it detect Marijn Frank saying a high pitched "Hallo" in a much better way that I could have done myself (subtitle matching), namely by frequency analysis, in the process learning how that works with librosa: https://marijnfrankzegthallo.nl

show comments
NitpickLawyer

Ha! This reminded me of that old famous entry from bash org: "I can't find a server in my house. It responds to ping, but I can't physically locate it."

show comments
gorgoiler

There was a post on HN recently about a suspended string robot, and how it could manage different loads (picking up dirty laundry) depending on on where it was in the room.

https://neufangled.com/payload

Simon’s microphone configuration is very similar except instead of payload kg it would be affecting detection accuracy.

I wonder why the accuracy was an OOM outside the expected result (40cm vs 7mm)? Also using claps for calibration of unknown devices feels like a different approach to measuring distances between devices with a tape and solving the polygon. How many devices would be needed to self calibrate — 1x beep and Nx listening — instead of relying on smudgy claps? Or maybe every sound is smudged in a room filled with boxes?

FerretFred

I like that tale! However, I've found that my Wire Fox Terrier has somehow trained himself to distinguish a smoke alarm beep from the plethora of beeps in the house and came upstairs today at 3am waking me up to tell me batteries were running out. He followed me around until I located the culprit and then went back to bed. Next time he'll have upped his game to tell me which device it is. He's a good boi!

bermlee

I've been ruminating on the inverse of this idea, where lavalier and directional mics would soon give way to any amateur being able to isolate a clean sample of any voice of your choosing, with AI processing recordings from two or three or four ordinary phone mics strewn about in an indoor environment.

In the meanwhile, every day around 10AM (sometime after, or later if I happen to not log in in the morning), my Mac makes a super loud DING! DING! sound, like a boxing match just started or a cable car trolley is about to pass through. I've tried using the Console and combed through the launchd.log to no avail. :)

osener

I need this but for macos and browser tabs. Sometimes tabs or apps start randomly making sounds and play/pause button only deals with the latest playback. I want to be able to bring the tab or window making the sound directly to the front.

show comments
ddmf

I randomly hear a succession of beeps in my house, random times, random days.

Was starting to drive me absolutely bonkers.

Then I saw a neighbour up a couple of houses reversing their SUV into their drive - it was the proximity sensor beeping - they had reversed with their car so many times that they'd become masters at performing the manoeuvre so the noise was always the same: "beep beep beepity beep beep beeeeeeeeeeeeeeep"

How loud does that noise need to be though?!

onaclov2000

Ok I wondered years and years ago about doing something similar to the triangulation Simon mentions but for a car, like setup a handful of mics, and let it record as you drive around, later process the data and it points at each thing making noise as you do the triangulation, in 3d so you can figure out oh that weird noise is coming from my tires, or the engine, or the muffler. Anywho, neat idea!

raldi

WHAT WAS MAKING THE BEEP!!?!?!

show comments
Melatonic

Not related to the beep but if you still have natural gas (guessing based on the old carbon monoxide detector) you likely also want to get a simple plugin alarm that also detects natural gas in its natural un burned state.

Carbon monoxide is only produced when it's burned and builds up. And is obviously very dangerous. But a small gas leak building up over time or an oven pilot out and left on is not great for you either.

Make sure you place it relatively near the ceiling as it pools up there apparently. Saved my life during Covid lockdowns

ozyschmozy

Several years ago, I had a bed that occasionally creaked, but I couldn't reproduce it, and by virtue of only happening when we were already in bed, it was not possible to just listen for where the creaking may be coming from. I had an idea to put a few esp32s with mics under the bed to do this exact thing, but figured it was not worth the effort. I guess I can just throw some tokens at it if it happens again

thrawn0r

Does this work with low rumbling sounds as well? We have this annoying noise we hear from our bedroom, sounds like a dishwasher, but layouts of apartments around dont have their kitchens closeby.

show comments
looperhacks

There's some beeping in my apartment, and we also cannot figure out where it's coming from. The problem is that it's really quiet - sometimes only my wife can hear it, but I can't. It also seems to occur randomly, we can only hear it every few days. I tried recording it with my phone, but it doesn't pick anything up. It drives me crazy

show comments
frumiousirc

I'd like to understand why the auto location mode did not work well leading to the need to introduce "rough mode".

Maybe the directionality of typical speaker and mic spoils an attempt to apply a 1/r^2 fit?

show comments
uptrails

I'm only here with a friendly tip for the designers of beeping devices: make sure to gradually ramp high-pitched beeps up and down, so that there's no sharp edge that an adversary could time.

show comments
solyin

MKBHD demos the the FOTRIC TD2e Acoustic Imaging Camera.

https://www.youtube.com/shorts/ai1gIWacf0I

It costs ~$1,000 so you'd probably rent it if you're only going to use it once, but it's a neat gadget.

show comments
bdavbdav

I tried building something to find the path and phase difference between multiple speakers recently.

It was nearly impossible to get decent repeatable results.

gouggoug

This article is about a weekend project and not a serious product, so what I'm saying below is not criticizing the author's approach — I'm making a point about something tangential.

The post touches on my biggest pet peeves about how many software engineers currently use AI at work: they ask it to "write out a problems.md file describing the problem we want to solve" then lob the output over the fence for the rest of the engineering org to review, often times without even disclosing they used AI to generate it (it's, of course, obvious).

AI can not do the reasoning for us; thinking that because it is great at writing code that works, the same applies to documents whose primary purpose is to demonstrate critical thinking, explore trade-offs, and reason through a problem is absurd.

In fact (or IMO?), this "problems.md" document is entirely unnecessary. In many cases, simply describing the issue and providing the relevant context is enough for AI to come up with a working solution.

AI can not do critical thinking (yet), so don't ask it to (and stop sending your fellow software engineers AI-slop RFCs).

show comments
delichon

Could you build this into a HUD for a cat, tuned to mouse squeeks? Asking for a friend.

noja

Can you extend it to find out which of my neighbors has a low battery in their smoke alarm?

taegee

In the time you spent burning tokens, you could probably have searched through all the boxes manually.

show comments
hinkley

I had a beep that drove me crazy and the very long search turned up a surplus CO monitor that I didn’t recall buying and had gotten tucked into the laundry room for some reason.

Same brand as my smoke detectors.

Make sounds that can be detected directionally, assholes.

gwbas1c

You know what might have been easier... Going through the boxes!

show comments
gregsadetsky

Simon's LLM's beeping finder app vs https://annoyingpcb.com/

Who would win?? :-)

I lack the courage to plant such a PCB prank device... it really feels like you could drive people completely crazy haha

adm4

wonderful! Thanks for sharing. I thought about doing this to track the sounds moving around in my stomach... it is interesting how well the mic on your smartphone works at picking up stomach sounds

pavo-etc

Woah this is cool. Another interesting simonw project based around sound through browsers. Lots of simple real world problems that can be tackled with this.

hk1337

I wonder if it would work to find an annoyatron?

caseyf7

Great post. Many levels of interesting information. Any sense of how much this cost?

show comments
matsemann

> How I built it

You didn't.

This was utterly pointless to read. I expected some nice learnings here.

The time you spent on this could've probably unpacked a few boxes and actually been at a better place.

show comments
singularity2001

his last project will be giving Claude access to a knife.

voidUpdate

> "I demonstrated it’s possible to give Claude Code ears"

You found out you can connect a microphone to a computer and have it record and process the audio? Well I'm glad you can be one of todays 10,000 https://xkcd.com/1053

show comments
globular-toast

What I'd like to know is: did it make you feel good? Did you get a sense of satisfaction at having solved a problem? Do you feel more stronger and more capable than you were before?

What I've been finding is just setting AI loose like this doesn't give me any of that. I've decided not to think, so I don't feel any struggle. No struggle means no relief, no feeling of accomplishment. I also don't learn anything because AI read the paper for me. Learning is what I live for.

show comments
bronlund

This is the way.

jonathanstrange

How did you "connect as many devices as you can spare to act as listeners"? I assume you didn't create iOS and Android versions of this and put them in app stores. Do you run Python on all of them, is there a direct way to connect devices as listeners I'm not aware of, or is this a PWA/web app? My guess is the last option but I'd be interested in this technical aspect.

show comments
pizzafeelsright

Smoke alarm.