Show HN: Ambiphone, no-nonsense ambient music and white noise (ambiph.one)
I built this free, no-nonsense white noise app. I know there are plenty of them out there already, but I wanted to make something beautiful and easy-to-use, without logins or ads or in-app purchases or any of the other stuff a lot of them have.
I appeared on The Economist's The Intelligence podcast [0] this week talking about Ambiphone and another ambient music project, Ambient ScotRail Beats [1] - I'm on at about 17:30
There's a big selection of music and sounds already but I'm always adding more - if there's anything you'd like to see added, let me know!
[0] https://www.economist.com/podcasts/2024/01/01/why-2024-could...
135 comments
[ 3.7 ms ] story [ 233 ms ] threadWhat'd you make it with?
The sounds are FLAC files, which is the only compressed format which loops seamlessly across all browsers. Sound files are hosted in an S3 bucket, which is behind Cloudflare (free) to minimise S3 egress costs, so thankfully it doesn't cost much to run at all.
The sounds are all permissively licensed and mainly sourced from freesound.org and freemusicarchive.org - I'm hugely grateful to everyone who shared such high-quality sounds and music for free. There's a list of credits at https://ambiph.one/acknowledgements
Honestly, I don't really use white-noise generators so I didn't plan on using it, myself, but after realizing it allows layering the sounds, I've built a really nice little soundscape and find myself missing a function that would allow me to transfer that design (selected sounds and volumes) to another instance of the app.
Totally not necessary, of course! Easy enough to re-configure. Just something I thought I might use, in case you were interested.
I'm building the ability to save mixes at the moment actually - good point about being over to move them over to a new device. At the moment I'm just storing saved mixes in localstorage but people will definitely want the ability to sync at some point. I've been trying to avoid having an account system in the interests of keeping things simple but I might have to bite the bullet or come up with another clever way to keep things in sync
These might help:
https://www.jvt.me/posts/2019/08/01/node-parse-url-fragment/
https://stackoverflow.com/a/66416539
But I will say that I have a need to sync data, which is why I'm putting effort into getting that syncing working (as well as compressed and encrypted). I really doubt you would need something robust for this type of thing. I'd, personally, be perfectly happy to get a json "export" of your local storage values that I could just "import" into a new instance of the app. I'll email it to myself. No need to complicate it with automation and all of the baggage that comes along with accounts.
If nothing else, a manual import/export is a fully-featured first implementation that can be iterated into something more robust.
Something easy for a human to transfer like honey-chair-balcony or something. Store the settings in the backend against this identifier and then you can retrieve it later? So you still need a backend but no need for accounts
https://veilid.com/
https://news.ycombinator.com/item?id=37118124
https://www.eff.org/deeplinks/2023/12/meet-spritely-and-veil...
(Otherwise, encode-state-in-url-hash or export-to-json-and-paste aren't too bad, unless you do want "social")
Also, didn't expect to see number stations pop up in there, nice surprise.
[0] https://moodist.app
I'm testing a PWA version at the moment too so it'll be installable to your home screen - the test version at https://test.ambiph.one is PWA-enabled if anyone would like to try it out
Can we maybe have apollo mission chatter?
Coincidentally I'm also building a live ISS tracker which embeds NASA's live camera stream [0]. Sometimes I have Ambiphone and the ISS tracker running at the same time and it's nice when the ISS chatter pops up, so I think the Apollo recordings would work really well.
[0] https://www.youtube.com/watch?v=P9C25Un7xaM
Its main advantage is that it's an app (at least on Android) and that it works perfectly even when offline.
It has a wide variety of sounds to mix and match, as well as an option to save favorite combinations for quick access.
[1]: https://docs.sonos.com/docs/streaming-basics
https://spinoff.nasa.gov/Spinoff2015/hm_2.html
https://www.deseret.com/2013/7/1/20521855/about-utah-this-ap...
https://archive.org/details/Apollo11Audio
Nice work, BTW.
(liveatc.net seems to be the most well-known website for live atc audio)
It sounds like they just don't want you to create an app for livestreaming contents of liveatc.net and that they allegedly own all rights to the content.
Maybe you could contact them, and ask if you could use some recordings.
I hate that most of these apps are subscription based for no good reason. This is so clean and nice...
One thing that would be awesome would be an option to preload and cache the noises. I regularly use white noise machines in offline situations (planes, remote camp ground), offline mode would make it the ultimate machine!
The developer earning a living?
You're here so I'll charitably assume you've managed a web server ever.
There is no such thing as 'static'.
I played Kirk Osamayo- Realization to test it and it put me into a 5 minutes of refreshing nap.
So I made an app focused (hehe.) on ease of switching between noise intensity. There's a long explanation why it's important if you want one (https://incentiveassemblage.substack.com/p/why-is-nobody-ser...), but if you're the kind of nerd who knows about 'flow state' and 'Yerkes-Dodson law', you pretty much got everything covered. The core point is: if intensity of your main activity is changing, your background noise should too, so that you maintain the same total level of arousal. Most likely double so for ADD people.
My current solution is to use media buttons (forward/backward) to control intensity. It took much more work than you'd expect to get media interface to do this without breaking currently playing sounds. In general anything that isn't 'Play this sound' works much worse than one would anticipate with how prevalent media is on the internet - I see ambiphone does the same thing with playing sounds separately, but you saved yourself from managing media interface, so I can't quite tell how much pain exactly you have experienced with this.
Yeah it has been painful. It took a lot of trial and error to get it working consistently across browsers, from absolute basics like getting gapless looping audio working consistently across browsers to maintaining playback while the screen's off to iOS treating background audio differently in PWAs vs Safari. I've managed to get it in a fairly hack-free state now but I am definitely worried about browsers shifting underneath me and breaking things in the future. Best of luck with your app too!