The idea is simple: you put a spare/old iPhone outside (porch, windowsill, backyard) and keep the other one by your bed. The outside phone captures whatever's happening out there — crickets, rain, wind, the occasional owl — and streams it to the inside phone over your local Wi-Fi. You flip the inside phone face-down and fall asleep to it.
I built this because my partner and I used to leave a window cracked at night to hear the outside, but the outside temperature isn't always compatible with that. I wanted the sounds sleeping with the window open without the weather.
Some technical details:
The phones find each other via Bonjour (NWListener/NWBrowser), then stream PCM audio over a plain TCP connection with length-prefixed framing. 48kHz mono Float32. No server, no internet. Everything stays on the local network.
There's a speech suppression feature that uses Apple's SoundAnalysis framework to detect human voices on-device and gate them out. It runs a hysteresis gate with ~55% confidence threshold to close and ~30% to reopen, with a 3-second hold time so it doesn't flutter. The gain ramping is exponential per-buffer to avoid clicks. It works surprisingly well. Conversations on the sidewalk get suppressed but you still hear the crickets behind them.
The inside phone uses the accelerometer to detect when it's face-down and still (gravity.z > 0.85 + a 1.75s stillness buffer), then fades audio in. Pick it up and it fades out. The whole interaction model is basically "put it down and forget about it."
No accounts, no cloud, no analytics, no recording. Zero external dependencies. All Apple frameworks. Free, no ads, no IAP etc. I built it for myself and figured others might want it too.
Happy to answer questions (inevitably some folks who would say "why would I want to listen to outside in X city?" :)