Listen & Download
🏞 Stream Sound
Original volume: — adjust the slider to change playback volume
Ad Space
What Is This Sound?
This is a synthesized babbling brook sound created entirely using the Web Audio API — no audio samples or recordings involved. The gentle, continuous water flow you hear is generated in real-time by your browser using noise generators, filters, and modulation.
Babbling brook and stream sounds are among the most popular ambient sounds for relaxation, focus, and sleep. This version produces a natural-sounding water flow with subtle high-frequency “sparkle” that mimics water tumbling over rocks.
How Is Stream Sound Created with Code?
A stream sound combines low-frequency rumble (the body of the water) with high-frequency detail (splashes and bubbles). Here’s how we build it:
Step 1: Create the Water Body with Brown Noise
Brown noise has more energy in lower frequencies — it sounds like a deep rumble. This forms the foundation of the water flow:
const brownNoise = new Tone.Noise("brown").start();
const bodyFilter = new Tone.Filter({
frequency: 600,
type: "lowpass",
rolloff: -24,
});
brownNoise.connect(bodyFilter);
Step 2: Add High-Frequency Sparkle
Real streams have a bright, shimmering quality from tiny splashes and bubbles. We create this with white noise passed through a highpass filter:
const whiteNoise = new Tone.Noise("white").start();
const sparkleFilter = new Tone.Filter({
frequency: 3000,
type: "highpass",
});
const sparkleGain = new Tone.Gain(0.08);
whiteNoise.connect(sparkleFilter);
sparkleFilter.connect(sparkleGain);
Step 3: Modulate the Flow with LFOs
Water flow isn’t constant — it surges and recedes. We use two LFOs at different rates to create organic variation:
// Slow, broad variation (water volume changes)
const lfoSlow = new Tone.LFO(0.15, 0.2, 0.4).start();
// Faster, subtle variation (ripples and eddies)
const lfoFast = new Tone.LFO(0.7, 0.05, 0.15).start();
Step 4: Connect the Signal Chain
The final signal chain layers both noise sources with independent modulation:
Brown Noise → Lowpass Filter → Gain (slow LFO) → Output White Noise → Highpass Filter → Gain (fast LFO) → Output
Ad Space
The Science Behind Stream Sound
Why Does Layered Noise Sound Like Water?
Running water produces sound through turbulence — chaotic motion of fluid creates random pressure variations. This is physically very similar to noise. The low-frequency component comes from the bulk movement of water, while high frequencies come from small-scale turbulence, splashes, and air bubbles breaking at the surface.
By splitting noise into two frequency bands and modulating them independently, we recreate the two distinct acoustic layers present in real streams: the deep, steady flow and the bright, variable surface activity.
Frequency Spectrum
| Parameter | Value |
|---|---|
| Low Layer | Brown noise, lowpass at 600Hz |
| High Layer | White noise, highpass at 3000Hz |
| Slow LFO | 0.15Hz (broad flow variation) |
| Fast LFO | 0.7Hz (ripple detail) |
| Output Level | -10dB (comfortable listening) |
Common Uses
- Focus & Productivity — Stream sounds provide gentle, non-repetitive masking noise ideal for deep work
- Sleep Aid — The soft, continuous flow helps ease the mind into sleep
- Meditation & Relaxation — Water sounds are used across cultures for calming and grounding practices
- Game Development — Use as ambient audio for forest, river, or outdoor environments
- Video Production — Layer under footage of nature scenes or outdoor settings
- ASMR Content — Water flow is a popular trigger in ASMR audio production
Technical Details
| Property | Value |
|---|---|
| Format | WAV (PCM 16-bit / 24-bit / 32-bit float) |
| Sample Rate | 44,100 Hz / 48,000 Hz |
| Channels | Mono / Stereo |
| Duration | 3 seconds (loopable) |
| Generation | Web Audio API |
| License | Free for personal and commercial use |
Ad Space
Frequently Asked Questions
Can I use this sound in my project?
Yes. The sound is generated by code in your browser. The output WAV file is yours to use freely in any personal or commercial project.
Why does the downloaded file sound slightly different each time?
Because the sound is generated using random noise, each render produces a unique waveform. The overall character remains the same, but the exact sample values differ — just like a real stream is always slightly different moment to moment.
How do I make it loop seamlessly?
The downloaded 3-second WAV file can be looped in most audio software or game engines. For seamless looping, import it into a DAW and apply a short crossfade at the loop point.
Can I modify the sound?
Absolutely. Try adjusting the lowpass filter frequency (lower for a deeper river, higher for a shallower stream), change the sparkle gain for more or less brightness, or modify the LFO rates for different flow patterns.