Hacker News new | comments | ask | show | jobs | submit login
Frequency-shaped background noise generators (mynoise.net)
344 points by ivank on Oct 8, 2013 | hide | past | web | favorite | 109 comments

Hi Guys! I am the developer of the myNoise website and just want to say that all your comments are a great source of inspiration today: many suggestions for further improvements will be taken into account! Although I did entirely code the website by my own using a simple text editor, I am not a programmer, in the sense that I never learned how to program efficiently and beautifully. Multiplatform issues, and mobile browsers in particular, are driving me crazy ;-) And yes... I feel a bit "naked" now as some of you are digging into my website code with much expertise. Please be indulgent! ;-) Cheers, Stephane

This is truly one of the best noise websites I've come across, especially for cabin noise with that deep rumble that helps me focus. Seriously, thank you for creating this! This has had way more thought put in to it than anything I've come across to date.

Great job, I've been listening to the soundscapes for a while. Just wanted to point out that the title tag at http://mynoise.net/NoiseMachines/tripOfMindNoiseGenerator.ph... is misspelled - 'od' for 'of'.

Thanks for making this!

Great site, but the generators are pretty CPU intensive. Is it the nature of Web audio API, or just heavy computation in your particular case? kmix is really overloaded in KDE when the generator is running (using PulseAudio).

Amazing work! I'll definitely visit more often, these are great.

Minor quibble: the "Binaural Beat Machine" does not produce binaural beats. It plays two notes at the same time, to both ears, which produces an actual beat in each ear (pull off one headphone - you can still hear it). A nice example of how it should sound: http://en.wikipedia.org/wiki/Binaural_beats

It does combine both, as to work without headphones, but if you wear the headphones, you will have the binaural thing on top of the modulation. Two for the price of one ;-)

Thanks for doing this, I'm going to use this page a lot, I think. But have you thought about open sourcing some, if not all of the code? With the source code out on for instance github, a lot of people could help you out wherever you feel your own skills come to short.

If it were me, I'd not open source this. Common tools that are used to build other things generally are, such as a compiler or VCS, but an actual finished product, not so much. Open sourcing this would be like Github open sourcing github.com, rather than just a handful of common tools they built to create github that might be useful to others.

Open source has a time and a place, but some things, like finished websites, are best left proprietary. There's a lot of thinking that's gone into this site. I think the #1 thing that would happen as a result of open sourcing it is that other people would just take the her work and creating clones, eroding her ability to make money from it (if she so chooses).

Choosing to open source something should be done only with a compelling rationale, and the downsides should always be carefully considered.

As a big proponent of open source, I would agree your statements completely. There is little a community could do with this that can't be done with existing tools already. Furthermore, this succeeds primarily because of the author's specific execution of the idea and the way it is presented. Open source just risks a "too many cooks in the kitchen" scenario.

Furthermore, because of the high quality, someone is extremely likely to turn this into a paid mobile app and make money off of it (irrespective of the license it is released under-- unscrupulous people don't care about pieces of virtual paper).

I used a white noise generator app for a long time with my first child and this is far superior to what I had. I would have gladly paid several dollars for a solid mobile execution of this.

You made many valid points! Thanks for sharing these.

Sorry, I misread your name as Stephanie instead of Stephane---I didn't mean to call you a she instead of a he!

Only if the goal of the site is to make money. If there's no profit involved there is no downside to open sourcing it.

Not true. You might not want to make money yourself but you also might not want other people to rip your work off and profit from it.

People that open source things do so as a gift to the community at large, and sometimes people just don't want to give away their property (intellectual in this case), even if they don't intent to turn a profit. Plus, leading an open source project can be quite stressful and there's also the time cost of actually supporting a community of people, if they gather around a project.

There are tons of downsides to open sourcing something but occasionally there's a significant benefit (or other motive) that drives the decision to open source and outweighs the negatives.

Very insightful and totally right. Thanks for sharing your opinion.

Well, he could opensource the audio components, especially the multiplatform/browser bits.

Let me think about it... Not sure about all the implications of releasing this as open source, in particular the investment in... time. I wish I had 48 hours in a day.

Truly impressive and wonderful, thank you. I have one request - please add more thunder! Or the ability to create more rumbling low rolling thunder noises.

The site is fantastic - and the aesthetics of the background pics you chose are very well done.

Quick suggestion:

A "mute all" button. I like having multiple layers of sounds open at once. Sometimes I need to mute them to watch a video or something, and it's a hassle to go through muting each one.

Also fun: loads of real field recordings on http://freesound.org

Use the geotag browser and listen to the wilderness of your choice! http://freesound.org/browse/geotags/

Just realised: these are all under various CC licenses, so OP you could easily integrate them into mynoise.net

Great find! You can make a good sleep mix from those :)

Fantastic. I tend to not like rain sound simulators, but the sliders let me pick one that seemed believable and familiar. I loved how the darker end of the spectrum let me simulate a visit to the Oregon coast.

(After which, I wished there was actually a storm right now, until I walked out onto my balcony and realized it was raining.)

"Too much internet for me" as they say.

I wrote an Android app based on a similar concept, although it uses a PRNG and Fourier transform, with no recorded samples:


Someone posted ambient warp-core sound from Star Trek on Reddit earlier today, maybe you could add this.


An old Linux command line trick to generate the engine sound:

> play -n -c1 synth whitenoise band -n 100 20 band -n 50 20 gain +25 fade h 1 864000 1

I used this as a background noise muting sound when I was a kid.

Here is a softer variant:

    play -c2 -n synth whitenoise band -n 100 24 band -n 300 100 gain +20

This is the warp core idling.

I'm trying to add a slow warp to it, and after some experiment I got something. That's the first time I've used sox to generate audio, didn't even know it could. I'll play with it some more.

play -c2 -n synth whitenoise band -n 100 24 band -n 300 100 gain +20 phaser 0.5 0.3 2 0.8 0.5 -t

Sox can be pretty handy. For example it's easy to use it for musical instruments tuning (instead of buying some expensive electrical device).

For example for mandolin layout:

4 (G):

    while true; do play -n synth pluck G3 fade 0 3 vol 0.4; sleep 1; done
3 (D):

    while true; do play -n synth pluck D4 fade 0 3 vol 0.4; sleep 1; done
2 (A):

    while true; do play -n synth pluck A4 fade 0 3 vol 0.4; sleep 1; done
1 (E):

    while true; do play -n synth pluck E5 fade 0 3 vol 0.4; sleep 1; done

This is great, thanks!

Choose white noise and play with the sliders. Not exact, but close.

Interesting idea and cool presentation, I like the sliders and that I can play around with it.

I will probably use this at work.

edit: This is really good, I just accidentally left it on and had completely forgotten I was listening to the same thing. Very much works as advertised.

Agreed - not only is this cool, but the audio samples are pretty high quality. Great example of HTML5, too. A few years ago, this would have required Flash ;-)

I think you could have hacked it together with bgsound before HTML5, but it would be less reliable.

I really like this.

I use simplynoise's noise generators to drown out noise at work (oscillating brown noise usually)

But I like having an equalizer.

I've opened up multiple tabs and superimposed the noises, it downs everything out. Hope you can spare the traffic.

Does it actually generate the sound server-side and send it over the network, or does it generate it client-side? (i.e. does it actually use much bandwidth?)

It loads 20 or so ogg audio files like this: http://mynoise.net/Data/OSMOSIS/7a.ogg

Then I'm guessing the EQ controls the volume. So no it doesn't generate / stream anything to you server-side.

Right, the EQ controls the volume of each of the 10 (each one corresponds to a slider) sounds. (Every sound has been previously decomposed into its frequency components.) The Web Audio API is used for browsers that have it present, else HTML5 audio elements are used. The slider just adjusts the volume of the sound (exponentially of course!), leading to an equalizer effect with no filtering required. (Garnered from looking at the code.)

Interestingly, this could be done using one file (rather than ten) using a Web Audio API filter node. This would limit the site to only Web Audio API compatible browsers. Unfortunately, at this time, that's only newer versions of Chrome, Safari, and I believe FF nightly (slight API variations). However there is some mobile support through recent Chrome and Safari implementations.

Almost exact... but one audio file + EQ won't be able to achieve the same result ... Have a listen to the Wind noise and you'll understand why.

You could filter it yourself with a bit of DSP knowledge. I've seen this approach working effectively in Firefox without Web Audio API.

Impulse filters are easy to implement, e.g. an averaging low pass filter (or at least I think so, I'm no DSP expert):

  out(t) = 1/sum(a) * (a_1 * in(t) + a_2 * in(t-1) + ... + a_n * in(t-n+1))
Where "a" is a vector of constant coefficents.

You could even use FFT to modulate the bands separately, e.g.:

  Sample -> FFT -> Filtering -> FFTi -> Output

Sure, you could pre-calculate your filter coefficients and use a bandpass for each frequency band then do the math in Javascript however it's slower, and more involved. Also, unless you're going to be using WAVs, there's going to be some overhead for the decoding of the sound. Also, the filter won't be very high order since you're going to be doing at least n*44100 operations per second (at the standard sampling rate). (Web Audio API filter nodes are only 2nd order but you can cascade them.) Do you have examples of the above working in Firefox? I'd be curious to see the implementation.

> it's slower

It's slower, but... does it matter if it's not just "slow"? Slower than "so fast" is still "fast".

> and more involved

That's right.

> Also, unless you're going to be using WAVs, there's going to be some overhead for the decoding of the sound.

If I recall correctly, Firefox's Audio Data API does the decoding for you and provides the final PCM samples even when loading non-WAV formats.

> Also, the filter won't be very high order since you're going to be doing at least n 44100 operations per second

If the effect computation is a problem, you can pre-render it in a buffer.

Anyways, n*44100 operations per second is not that much. You actually operate on buffers, which makes caching useful for the slow part (memory access). Summing, multiplying, etc. is a piece of cake for your CPU in JIT-compiled code.

Check this JSFiddle I threw in a couple minutes: http://jsfiddle.net/9LpKd/2/ (please mind the awful effect and the fact that it's not audio... I'm not very experienced with Audio Data API and that would take me a bit more to fiddle with!)

44000 pixel updates, up to 60 times a second, with pretty expensive operations (sines, cosines and even square roots!), updating DOM values... JavaScript is fast enough for this.

I can see the problem in mobile devices though, but I'm not even sure Firefox provides Audio Data API in mobile devices.

>Do you have examples of the above working in Firefox? I'd be curious to see the implementation.

The only web implementing it that I can remember is http://websdr.ewi.utwente.nl:8901/ (you have to check the HTML5 audio radio button).

Unfortunately the code is minified and it takes a bit to make sense of it after Beautifying.

>I've opened up multiple tabs and superimposed the noises, it downs everything out. Hope you can spare the traffic.

I built a noise generator around the concept of superimposing noises over each other [1]. I've consistently struggled with performance - at the moment it takes far too long to load properly. I'm planning to implement just-in-time loading when I get some free time

[1] http://asoftmurmur.com

I use http://simplynoise.com to put my daughter to sleep. It's much easier when the noise is playing. I also use http://rainymood.com to isolate myself from the environment when I'm working.

The sounds are great by themselves, but I had the most fun layering different generators by opening several tabs. I played around with the EQ and made something sounding very close to Biosphere with 4 parallel tabs. It really felt like the tracks were synchronized to fit into each other. Great work!

Having a single page where you can add in any filter you wanted would be awesome.

How does this work mathematically? Do you take, e.g., a waterfall track and manipulate its frequency spectrum? Or is it completely synthetically generated? If it's the latter, then I'm quite impressed that I can't tell the difference.

Both. Let's call it re-synthesis ;-)

First of all -- awesome concept and execution, and great sound samples. Well-done.

> Mobile Safari iOS 6 on iPad 2+, iPhone 4GS+

But... not working on my 4S/iOS6. :(

Anyone got it working to play in the background, even when your phone's screen is off? I also wonder about battery life as HTML5 audio, vs if it were an app.

The creators clearly want to support HTML-only, according to the FAQ, but this calls for an app if anything ever did -- you want it to run, providing sound in the background, while you do other stuff (whether on or off your phone).

I don't really understand how it runs on iOS devices at all - to the best of my knowledge, it simply isn't possible to control device audio volume from javascript on iOS [1]. Or at least, that seemed to be the consensus last time I attempted to.

[1] https://developer.apple.com/library/safari/documentation/Aud... - "On iOS devices, the audio level is always under the user’s physical control. The volume property is not settable in JavaScript."

You can always reduce the volume in software before sending it to whatever API plays your sounds. This is especially easy if you're synthesizing the sound with the desired output volume known.

It should be noted that this operation (digital gain staging) reduces headroom/resolution, although in practice this doesn't really matter. Especially not with ambient rain sounds.

Very interesting Web Audio API experiment,

To reply to you, forgetting that the interface is not really touch friendly, I was totally able to make it run in the background on a Nexus 4 with Chrome (the Web Audio API works in the background with Chrome), however I got some clicks (interruptions) in the sound probably due to the bad performance the Web Audio API gets in Android Chrome today.

I wish there was a way to contribute (Github?) to improve this app.

I have been using an iPhone app called Ambiance for a long time, it even allows you to record your own sounds, works in the background, has a sleep and alarm modes etc.

The only down side is it tries to do too much, they have like a sound store and stuff, which is a cool feature but affects the simplicity.


Agreed. And I would pay quite a bit of money (in the context of what apps cost ... i.e., $10 or so) for an app that did this with this level of quality.

Definitely! Unfortunate that the Web Audio API doesn't work with PhoneGap on Android due Android's built-in browser not supporting it.

Nice!! A request: Can you add Pink Noise?: http://en.wikipedia.org/wiki/Pink_noise One (of various youtube examples) here: http://www.youtube.com/watch?v=ZXtimhT-ff4

Pink noise can be found under White Noise (because all myNoise noise generators are spectrally-tunable, there is no reason to have different color noise generators: the white noise generator can be shaped to any imaginable color, and a pink noise preset is already provided for you).

This is really great. I listen to sounds like this alot as I find they help me focus. I've used environmental recordings of rain, storms, and ocean waves for years (decades, actually) and I usually loop them in Banshee while I work. I've seen a few of these noise generators in the past but never really came back to them because they weren't superior to my recordings.

Your generator, however, is exceptional.

One request: when we make a selection, say a preset, would it be possible to have an indicator that shows what we had set? I find myself selecting something, then working a while, then coming back and being a bit forgetful!

Your request has been implemented...

Go to White Noise and pick Pink Noise as a preset.

One strange thing I noticed about this is with the cabin sound, listening to it for a prolonged period tends to cause ringing in my ears like I've been listening to loud music, except I'm listening to this at low volumes. This isn't something I've experienced for low-volume stuff before.

First time this is reported to me. Please check the last slider. It produces sonic content above 16 kHz. You may have pushed that slider to the max because of a possible hearing loss. Although the sound you hear is quiet, the acoustic pressure may be higher. This is the only reason I can think of...

Actually I did -- well, to about 80% max. My calibrated profile looked a little like an inverted bell curve.

Great, now I have to keep another dozen Chrome tabs open... ;) Seriously, this is pretty nice. I currently have rain, fan, ocean, Indian Drone, Tibetan meditation, and Bamboo running concurrently.

A way to combine sounds without opening a new tab would be be an obvious improvement. Adding a feature that randomly (very slowly) raises and lowers volume of a sound from set of subcomponents could be interesting -- it'd give the sense that the sounds are changing slowly over time and relieve some of the stasis.

Edit: just noticed the babble generator. This is genius, and exactly what I need to mask background conversations.

This is great. I especially like the cabin noise. I work on ships and for the first week or so after I get home I need some background noise to help me sleep. This one sounds quite close to what one might hear on a ship.

Yeah, very cool. Saves people money as well (up to $200): http://www.sharperimage.com/si/view/product/Sound-Soother-Wh...

You could stream example outputs 24/7 as net radio channels so they are also available on other devices / STBs (Roku) / Consoles / Smart TVs etc..

Oh this is beautiful. Those textures are better than music at times. Loved playing around with the ocean waves [1], I was able to get close to the sound that used to make me fall asleep as a kid.

[1] http://mynoise.net/NoiseMachines/oceanNoiseGenerator.php

Great resource thanks! I love the Tibetan chanting. Would love something that subtley changes the sliders over time.

Hey, this is what the "Motion" buttons does, although the slider do not move in a visible way.

That's an amazin feature!

I didn't notice it at first either. May be its explanation could be more visible, or it could be made more obvious...

IMHO the slider should move, both to provide visual feedback and to make the effect less subtle.

Thanks - did not notice that! awesome!

This site is awesome! A feature request, if I may: on the calibration page, it would be helpful to have the ability to mute all the sliders except the one you are calibrating. Or perhaps, like slider in a color tool, have a text box with a number representing that volume that slider is set to.

It does! As soon as you move one slider, it mutes all others ;-)

This reminds me of Aporee Maps:


You can just listen to high quality sounds recorded by sound artists around the world.

It feels like you are in that place. I don't know if it's only me but I recall hours of me listening to this site.

Interesting, on Linux, PulseAudio shows many channels in the mixer (for ALSA plugin in Firefox), when the noise page is opened.

By the way the site mentions using OGG (I guess Vorbis) playback. How does it work in crippled browsers like mobile Safari, which don't support Vorbis?

Don't know why but I find the babble noise really creepy. http://mynoise.net/NoiseMachines/babbleNoiseGenerator.php

It is rather spooky at first, but once I got over that its excellent for blocking background office noise.

Now what would amuse me NO END would be if once, (and just once) after a few hours, it was coded to fade out and play a distinct voice along the lines of "You're going to die today". I'd love to do that to someone!

Wow, I agree.

At least for me, the fact that I can't pick out any real words/phrases makes what could be believable background/nice sound feel like it could be from a horror movie.

This is fantastic! Love the throat singing and the ability to play with different presets. I was using the TNG engine noise on youtube before the 24-hour version was taken down, but this is my new jam.

These types of sounds are absolutely wonderful for soothing angry babies!

Needs Birdsong: http://www.bbc.co.uk/news/magazine-22298779

Everything feels better when listening to the Dawn Chorus.

There is something like this currently under development. There is a problem though: my noise generators are supposedly active across the whole hearing range, from 20Hz to 20kHz. And birds are only producing frequencies above 1000Hz. So, I need to fill up the bottom sliders with other sounds, or find... really big birds! ;-)

perhaps a combination of birds and ocean waves, or frogs, or yes, big birds :) ... It'll be a little puzzle, but +1 for more nature sounds! .. and perhaps one of my favourites: tibetan gongs!

Bird sounds played at slow speed sounds incredible. Couldn't you just layer the natural bird sounds with some down-shifted ones?

I tried this before... but it doesn't sound anything like a known animal. But who cares actually, if the noise title is right? ('Imaginary Birds') So, let's try it again ;-)

Birds + running water + rustling trees? That should cover a wide band.

Pterodactyl song? :)

(And yes, I know Pterodactyls aren't actually birds.)

Birds are reptiles though.

Oh, this is wonderful! I love Simplynoise but this is even more fun. I hope they can decrease load times and make this a webapp rather than taking 2 steps to load the various noises.

Any chance you can make this a sonos-accessible station ?

This is a very useful, well designed app. I think I'll use it to help myself go to sleep and stop procrastinating with HN. :)

Wow, really cool app. It really reminded me of how much I miss the sound of rain and wind.

Great idea and implementation.

Heh, thought it was CSS-based website background noise texture generator…

Nice job! Being able to share custom presets would be cool.

It's possible. Just follow the link "Save Your Current Slider Settings" then the URL. I should make it more obvious though, you are right.

Oh, nice! I'd put it closer to the sliders and make it clear you can share the saved settings.

I'd also let the user edit it without clicking anywhere. Right now clicking edit resets the sliders too :(

This is really nice. Using it at work now. Thanks!

Tonal Drones are great, iPad application needed.

A (humble) request: Vacuum cleaner sound.

wow, thank you! I think I'll be visiting this site often when in need for precise brain tuning support

Thank you (I have tinnitus).

It is working for a highly Hackernews Distracted person, except I have to write this comment!

Attention Deficiet Hackernews Disorder


Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact