Thanks for making this!
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
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.
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.
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.
The site is fantastic - and the aesthetics of the background pics you chose are very well done.
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.
Use the geotag browser and listen to the wilderness of your choice! http://freesound.org/browse/geotags/
(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.
> 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.
play -c2 -n synth whitenoise band -n 100 24 band -n 300 100 gain +20
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
For example for mandolin layout:
while true; do play -n synth pluck G3 fade 0 3 vol 0.4; sleep 1; done
while true; do play -n synth pluck D4 fade 0 3 vol 0.4; sleep 1; done
while true; do play -n synth pluck A4 fade 0 3 vol 0.4; sleep 1; done
while true; do play -n synth pluck E5 fade 0 3 vol 0.4; sleep 1; done
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.
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.
Then I'm guessing the EQ controls the volume. So no it doesn't generate / stream anything to you server-side.
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.
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))
You could even use FFT to modulate the bands separately, e.g.:
Sample -> FFT -> Filtering -> FFTi -> Output
It's slower, but... does it matter if it's not just "slow"? Slower than "so fast" is still "fast".
> 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.
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!)
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 built a noise generator around the concept of superimposing noises over each other . 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
> 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).
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.
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.
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!
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.
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..
I didn't notice it at first either. May be its explanation could be more visible, or it could be made more obvious...
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.
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?
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!
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.
Everything feels better when listening to the Dawn Chorus.
(And yes, I know Pterodactyls aren't actually birds.)
I'd also let the user edit it without clicking anywhere. Right now clicking edit resets the sliders too :(