[HN Gopher] Show HN: Ambiphone, no-nonsense ambient music and wh...
       ___________________________________________________________________
        
       Show HN: Ambiphone, no-nonsense ambient music and white noise
        
       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...
       [1] https://matteason.co.uk/scotbeats
        
       Author : matteason
       Score  : 140 points
       Date   : 2024-01-03 17:41 UTC (5 hours ago)
        
 (HTM) web link (ambiph.one)
 (TXT) w3m dump (ambiph.one)
        
       | 99catmaster wrote:
       | Pretty cool, I personally prefer the sound selections on Forest,
       | though.
        
       | mcbishop wrote:
       | Simple and clean, thank you!
        
         | matteason wrote:
         | Thanks!
        
       | tpei wrote:
       | Really nice!
        
         | matteason wrote:
         | Thank you!
        
       | mattgreenrocks wrote:
       | Love it! Need to try it for my next work session.
       | 
       | What'd you make it with?
        
         | matteason wrote:
         | Thanks! It's built in Vue 3, UI is all built from scratch.
         | 
         | 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
        
       | webwanderings wrote:
       | Winner. Anything no-nonsense, now a days in this world, is a
       | winner! Thank you!
        
       | catapart wrote:
       | Fantastic! The design is just great; so simple and no-nonsense.
       | 
       | 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.
        
         | matteason wrote:
         | Thanks for the great feedback!
         | 
         | 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
        
           | hunter2_ wrote:
           | You could store all state in the URL fragment. Maybe each key
           | is a sound and each value is the volume, like
           | /#whale=5&fire=8 or whatever. Call replaceState (better than
           | pushState to avoid polluting the back button history with
           | every little tweak) whenever the user changes something. On
           | page load, read from the URL fragment using
           | window.location.hash and then sharing is just a matter of
           | copying the URL, which could be done entirely in browser
           | chrome, and/or via a "share" button you provide.
           | 
           | These might help:
           | 
           | https://www.jvt.me/posts/2019/08/01/node-parse-url-fragment/
           | 
           | https://stackoverflow.com/a/66416539
        
             | catapart wrote:
             | Great recommendation for such simple state! The portability
             | of that is just perfect!
        
             | matteason wrote:
             | This is exactly what I do on
             | https://www.matteason.co.uk/scotbeats/ actually - any
             | settings change is reflected in the URL and read back on
             | load. When I implement sharing of individual mixes it'll
             | probably look a lot like this
        
           | catapart wrote:
           | I feel your pain. I'm building my own local-first, no-
           | nonsense app and need to solve the same problem. I've got
           | proof of concepts for both a no-account server syncing scheme
           | (app generates key, you manually enter that key in whichever
           | instance you want to share the data with) and a web-rtc based
           | p2p sync.
           | 
           | 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.
        
             | matteason wrote:
             | This is a good point. I like the safety of being able to
             | have my own local copy of my data so json export/import
             | would be a good first step
        
           | jamesbooker83 wrote:
           | You could generate some sort of hash of the selected options,
           | encode it with something that's short and human readable and
           | then share that on the screen?
           | 
           | 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
        
           | 3np wrote:
           | If you happen to be excited about stuff like this:
           | 
           | 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")
        
       | halfdaft wrote:
       | This is the best version of this kind of thing, thanks! I like
       | how a sound fades in over a second or two when you enable it, it
       | might be nice if it also faded out when you disable it.
       | Especially for when you're sound 'DJing' to find the right mix.
        
         | matteason wrote:
         | Thank you! I had wanted to do that but it's marginally trickier
         | than fading in - I agree it would be a much nicer experience
         | than a harsh cut-off though, I'll look into it
        
           | halfdaft wrote:
           | I had guessed it might be something like this, and that of
           | course you'd have wanted this! Will definitely use this lots,
           | thanks again
        
       | busfahrer wrote:
       | Despite the unappealing name, I've found brown noise the best
       | noise to study with.
       | 
       | Also, didn't expect to see number stations pop up in there, nice
       | surprise.
        
       | amar0c wrote:
       | Found similar thing other day [0] but thing is.. If this is not
       | an App it's not usable. People tend to listen this while resting
       | (in bed for example) so makes no sense have this in browser. For
       | example [0] stops playing when screen is off/locked
       | 
       | [0] https://moodist.app
        
         | amar0c wrote:
         | OK to reply to myself, after testing it, this one does work
         | while phone screen is off so this is usable. Thanks
        
           | matteason wrote:
           | Yeah, it's actually surprisingly tricky to get sound to
           | persist with the screen off, especially on iOS, but I managed
           | it in the end.
           | 
           | 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
        
             | amar0c wrote:
             | Yeah, this is even better. Maybe add 'reset' button that
             | will reset all sounds to "not selected".
        
       | cubefox wrote:
       | This is great! (One thing I noticed is that at the default
       | volume, the "heavy rain" is much louder than the "thunder". It
       | would arguably be more realistic if they were similar in volume.)
        
         | matteason wrote:
         | Good point, I'll get this cleaned up
        
       | entropie wrote:
       | This is really cool.
       | 
       | Can we maybe have apollo mission chatter?
        
         | matteason wrote:
         | Yes great idea!
         | 
         | 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
        
       | stevenking86 wrote:
       | The fact that we can put these things over top of each other is
       | awesome.
        
       | DreamGen wrote:
       | Very clean! By the way, I find the volume sliders a bit tricky to
       | use, as it's way too easy to accidentally toggle the sound
       | instead of just moving the slider.
        
         | matteason wrote:
         | Oh this is great feedback, thanks. I'll look at putting a
         | deadzone around the volume slider so it's harder to mix them up
        
       | ahmedfromtunis wrote:
       | I have been using Atmosphere for years now.
       | 
       | 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.
        
         | naitgacem wrote:
         | Can you link to said app?
        
           | ahmedfromtunis wrote:
           | Here it is: https://play.google.com/store/apps/details?id=com
           | .peakpocket...
        
       | rngname22 wrote:
       | See also: https://mynoise.net/
        
         | dgrcode wrote:
         | Was going to mention this site. One nice thing it has that
         | could be useful for this app is to have the ability to save a
         | preset and load it in the future. I found it quite useful in
         | mynoise.net
        
           | matteason wrote:
           | This is in development at the moment and very close to being
           | launched - watch this space
        
       | artagnon wrote:
       | Very slick interface with a nice selection of sounds! I would
       | definitely use this if only it could connect to my Sonos.
        
         | matteason wrote:
         | I'll look into the Sonos API. The problem I've found with other
         | casting/streaming APIs (Google Cast in particular) is that it
         | expects a single URL to stream from, whereas Ambiphone is just
         | loading individual sound files and playing them simultaneously
         | on your device. It should work fine over Bluetooth but I
         | appreciate that's not the best experience with Sonos and other
         | smart speakers
        
           | artagnon wrote:
           | Oh no! I think we're out of luck if my reading of [1] is
           | right. Sonos API only supports streaming from a single URL.
           | 
           | [1]: https://docs.sonos.com/docs/streaming-basics
        
             | matteason wrote:
             | It's not out of the question at all, I just need to figure
             | out how to combine the sounds server-side and stream them
             | out. On the plus side it should then be pretty simple to
             | make work across different smart speakers, I'm just not
             | sure how complex/expensive it would be to get set up
        
       | ck2 wrote:
       | I've been looking for the old "sleep genius baby" app for months,
       | not in any archive.
       | 
       | https://spinoff.nasa.gov/Spinoff2015/hm_2.html
       | 
       | https://www.deseret.com/2013/7/1/20521855/about-utah-this-ap...
        
       | bravura wrote:
       | If you have police scanner audio, then you should definitely
       | include archival NASA radio recordings as another option.
        
         | matteason wrote:
         | On it! The Apollo 11 audio is all on archive.org [0] so I'll
         | get some samples from that added
         | 
         | https://archive.org/details/Apollo11Audio
        
           | tgv wrote:
           | There are also air traffic recordings. Those are very lengthy
           | streams.
           | 
           | Nice work, BTW.
        
             | matteason wrote:
             | Offhand do you know what the copyright status of ATC
             | recordings is? The Apollo recordings are public domain
             | because they're US government works
        
       | charles_f wrote:
       | I love it!
       | 
       | 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!
        
         | matteason wrote:
         | Great suggestion. I'm testing a PWA version at the moment
         | (https://test.ambiph.one) and PWAs do allow offline caching of
         | resources but I'm not sure if I'll bump up against any cache
         | size limits. I seem to remember reading that Safari is
         | particularly stingy unfortunately.
        
       | asplake wrote:
       | Please tell me that 'ambiphone' rhymes with 'antiphone' as my
       | music teacher said it, rhyming also with 'catastrophe' or
       | 'Penelope'
        
         | matteason wrote:
         | Ha! I've always said am-BEE-fone but am-BIH-fon-EE is now the
         | official alternative pronounciation
        
       | abroadwin wrote:
       | The ticking clock being an actual clock is a nice touch.
        
         | matteason wrote:
         | Thanks, you're the first to spot that!
        
       | chopete3 wrote:
       | Beautiful interface.
       | 
       | I played Kirk Osamayo- Realization to test it and it put me into
       | a 5 minutes of refreshing nap.
        
         | matteason wrote:
         | You're welcome or I'm sorry, depending on where you are
        
       | NickC25 wrote:
       | Cool! I put the ScotRail Beats on for a good 30 minutes, no
       | complaints here. Great job.
        
       | Teleoflexuous wrote:
       | I've been working on white noise app for a bit, but with a
       | slightly different focus. While it's maintaining the same core
       | points (limited bullshit, hopefully clear interface, sound
       | staying on with phone screen being off) it addresses problem I
       | constantly found myself having with every app: if I want to
       | switch anything, I have to go back to the webpage/app and there
       | goes some of my focus. Link: https://stimulantnoi.se/
       | 
       | 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.
        
         | matteason wrote:
         | That's really interesting, I'll check yours out.
         | 
         | 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!
        
       | scns wrote:
       | If you want to block out distractions, without damaging your
       | ability to perceive high frequencies, use brown noise.
        
       | WarOnPrivacy wrote:
       | Me:Tinnitus. Site:I like it. Rain does the job.
        
         | matteason wrote:
         | Ha, I'm building up a nice little following of tinnitus-havers.
         | Glad it works for you!
        
       | Modified3019 wrote:
       | Neat.
       | 
       | If you are looking for additional things to add, those with
       | tinnitus are likely to have suggestions.
       | 
       | I had a scare with tinnitus several weeks ago, where it suddenly
       | became very apparent for a few days before subsiding to a point
       | where I don't notice it unless I specifically listen for it. This
       | had me desperately searching for noise generators so I could get
       | to sleep.
       | 
       | "Grey" and "pink" noise, and some kinds of cricket noise seemed
       | to be most suitable for masking my type (which is very similar to
       | the high pitch sound an old analog tv makes when it's on). Heavy
       | rain is also good, but it's hard to find something that is
       | suitable because most have some additional water splashing and
       | gurgling, which triggers my misophonia.
        
         | matteason wrote:
         | I have actually had some lovely feedback from people who have
         | said it's helped with their tinnitus (amongst them,
         | unexpectedly, X-Press 2 of 90s dance music fame, as well as
         | lots of other DJs)
         | 
         | It's definitely going to vary from person to person so if
         | anyone else has any suggestions of the types of noise that
         | might help them I'm all ears. I'm also thinking of adding more
         | controls to individual sounds so you might be able to control,
         | for example, the exact pitch of the 'bass rumble' sound, which
         | may help people zero in on the frequency that helps mask their
         | tinnitus
        
           | Modified3019 wrote:
           | Now that I'm on my desktop, here's a better list of my
           | favorites
           | 
           | Some kind of 9800Hz statis/hiss, reminiscent of crickets.
           | Masks my tinnitus perfectly and doesn't seem to trigger
           | excessive attention. Has a very quick intro bit, but not
           | talking after: https://www.youtube.com/watch?v=2I-20-jKVF0
           | 
           | "Grey" noise, whatever that's supposed to mean. A low
           | hum/rumble similar to ocean waves but more constant. Also has
           | a hiss added. Very non-intrusive:
           | https://www.youtube.com/watch?v=HSQ_gW7iVis
           | 
           | "Shimmer", very reminiscent of crickets but much smoother and
           | without all the little peaks that would normally activate my
           | attention: https://www.youtube.com/watch?v=Ke2BopotSIU
        
       | nonrandomstring wrote:
       | Seems the title is a little modest.
       | 
       | There is a white noise generator, which "cat /dev/urandom |
       | /dev/audio" or a couple of lines of C code will accomplish. With
       | just a few controls you can tailor the spectrum easily.
       | 
       | Then there is an "ambient music generator" which you can knock
       | together in a few hours with Csound, Supercollider, Pd,
       | Chuck/Faust and the like.
       | 
       | Then there's an "ambient music application" which in addition to
       | inbuilt generators works with with online libraries of
       | generators, seeds, patterns, sample loops, and a package/element
       | manager for getting and adding "songs". Last time I built one of
       | those it was a few weeks of effort.
       | 
       | Then there's getting all that to run on smartphone, on multiple
       | platforms, getting around all the quirks, permissions and general
       | madness that is phone dev ecosystem.
       | 
       | Well done on that last point. Seems the last of these is what the
       | author has created and I kinda think it deserves a better name
       | than "white noise generator".
       | 
       | I didn't realise there is still quite a culture of "noise
       | generators" for people wanting to sleep, read or meditate.
        
         | matteason wrote:
         | That's really kind, thank you. It's definitely been a slog
         | getting it working consistently across every browser/device
         | combo so I'm glad that effort's paid off.
         | 
         | On the music point - at the moment it's just using looped
         | versions of some (great) free tracks I've found, but I'm
         | experimenting with generative music at the moment, including
         | using environmental stimuli (mic, light level, accelerometer
         | etc) to trigger changes in the music and bring in live samples
         | from your surroundings. Early days but it's been fun to
         | experiment with.
        
           | nonrandomstring wrote:
           | You're definitely doing the fun stuff, good luck with it.
        
         | gardenhedge wrote:
         | What phone dev ecosystem are you talking about?
        
       | spacec0wb0y wrote:
       | Love this, really well designed. I like how you can combine
       | sounds and customise volumes. You should add a manifest.json and
       | make it a PWA so people can add to their homescreen with a
       | customised app icon. Ideal for an app like this i'd say.
       | 
       | I have it saved and will use it again.
       | 
       | Also... whatever way I've configured it, it sounds like a boards
       | of Canada track :)
        
         | matteason wrote:
         | This is actually in testing at the moment! I'd love to hear any
         | feedback you have if you fancy testing it out, it's installable
         | from https://test.ambiph.one
        
           | spacec0wb0y wrote:
           | Nice, yep it's working well now for me on iOS, i added it via
           | chrome, can see the new icon and it's searchable among my
           | apps.
        
       | matteason wrote:
       | One thing I forgot to mention - I'm going to start sending out
       | email updates soon so if anyone would like to keep up to date on
       | new features and sounds please fill in this form:
       | https://forms.gle/D1BxTx21QUHdpBp17 (put any old nonsense in the
       | feedback field if you don't have any feedback)
        
       | t09i209ba893 wrote:
       | This is quite cool, would you be open to making the source
       | available? I'm afraid of such things disappearing in future
       | years/decades and always prefer to be able to host a private
       | mirror.
        
       | yodon wrote:
       | Nice! Any chance of adding binaural beats? (I'm pretty sure some
       | other "binaural" apps I've tried are actually playing both tones
       | into both ears, which isn't actually what binaural is about)
        
         | matteason wrote:
         | I'm adding some now, just for you. Give me an hour or two.
         | (They'll be properly made, pure tones hard panned left and
         | right)
        
         | matteason wrote:
         | OK, they're there. There's a new 'Binaural beats' section near
         | the bottom.
        
       | poulpy123 wrote:
       | It's very nice. I'm surprised at the inclusion of some of sounds
       | that I consider irritating though. It never occurred to me that
       | some people could find them relaxing or helping to improve
       | concentration
        
       | sidkris wrote:
       | Really good. Love the clean design. Would be nice if you upgrade
       | it to a PWA
        
       ___________________________________________________________________
       (page generated 2024-01-03 23:00 UTC)