We've sent a verification link by email
Didn't receive the email? Check your Spam folder, it may have been caught by a filter. If you still don't see it, you can resend the verification email.
Started June 12th, 2014 · 27 replies · Latest reply by zimbot 9 years, 9 months ago
I just did a search both on Freesound and the internet in general looking for an audio sample that constructs white noise by starting with a single (random?) sine wave/pure tone, then adding another, and another, etc. until it is basically all frequencies and achieves 'white noise' status. The idea is that the whole thing - from one tone to white noise - would be constructed in just a few seconds, maybe 10 to 20 seconds to build the whole thing, so that you're adding a new pure tone every few milliseconds.
Anybody got one of those, or willing to make one? Or know of any software (freeware if possible) that I could use to do create the sample myself? Thanks!!!
jhampson
Audacity is a multi-track sound editor and recorder; it can also generate sine waves at any frequency.
After you've generated a sufficient amount of waves, you can drag them along the time axis by tiny amounts to create the progressive effect you want.
You can find Audacity here: http://audacity.sourceforge.net/
You can generate a sound like this using the image-to-sound software that has been recently discussed.
Check here
http://www.freesound.org/forum/dare-the-community/34719/
and here
http://www.freesound.org/forum/dare-the-community/34720/
Several programs (many freeware) are mentione din the threads. You would need to create a picture first (any basic paint picture would allow you to create one. e.g. windows Paint).
I also had a program that could create a sound as you suggest. But that is on an old computer that I no longer have switched on...
Your best bet is using a image-to-sound program. Draw the image, then convert to sound.
map a midi keyboard to a tone generator and mash all the keys together, quickly adjusting the pitch-bending knock as you press the keys.
Reason I want to do this is to illustrate for students how white noise (including noise-like sounds such as rain, wind, waves, traffic, etc.) can be built up from individual pure tones/sine waves. The concept isn't really intuitive at all, as pure tones - even a large group of say 100 random tones - sound nothing like white noise.
I realize it would be computationally intensive to actually construct this, so I'm thinking that only the first few seconds would be adding individual tones, then at 5 seconds you'd start adding 50 tones at a time (per second), at 10 seconds start adding 200 at a time, then at 15 seconds add 2000 at a time.
jhampson wrote:
Reason I want to do this is to illustrate for students how white noise (including noise-like sounds such as rain, wind, waves, traffic, etc.) can be built up from individual pure tones/sine waves. The concept isn't really intuitive at all, as pure tones - even a large group of say 100 random tones - sound nothing like white noise.
You're confusing several different concepts. What you're asking for won't produce white noise - because that's not what white noise is.
It's true that any sound, at least over short time intervals, can be approximately represented by a series of sine waves.
But unless the sound is genuinely comprised of constant continuous tones then you can't synthesise it that way for long intervals.
In white noise, each frequency is theoretically present at an amplitude demanded by the requirements of a constant power spectral density. But that doesn't mean that each frequency is there as a constant tone. White noise is random - there are no constant components.
If you add together any number of pure tones it won't sound like white noise. I'm guessing it will just sound like something out of an unpleasant sounding synthesiser.
Do a FFT analysis of white noise and look at the variation in the magnitudes between each window. Even the variation in the magnitude of each frequency within the same window is surprisingly large. You won't replicate that (or even get close) with constant tones.
Hope that helps.
Yeah, what he said. But you can get much closer by having gazillions of little impulses of random intensity occurring with random intervals of time between them. The impulses could be little clicks, or the sound of raindrops hitting something, but only true impulses would carry all frequencies equally. You might find it more informative to use random filtering on them as well. But you cannot get away from the need for randomness. If you take a pure white picture and run it through the image-to-sound converters (as was recently discussed on one of these forums, perhaps the Dares), you'll hear something with very definite tonal structure based on the number of rows in the image. So even if you really wanted to do it this way, you would need to be varying the intensity and actual frequency of each of those oscillators -- even if within its own "band" -- somewhat randomly. Noise == random. Now that can be a worthwhile demonstration for students, but for yourself, first.
@jhampson
Well, there is theory and then there is practice...
If you take the purist, mathematical definition of white noise... then there might not be such thing in nature at all.
You certainly never heard it. Even if you were standing next to a pure source of white noise you could not actually hear it. The reason: white noise has ALL frequencies in equal intensities, your ears can only detect sound between 20Hz and 20kHz approximately. And, within this frequency range, our ears are not equally sensitive to all frequencies...
What is my point?
My point is that you CAN generate something that will sound like white noise using the technique you describe. Easiest way to do this is to take a image-to-sound program. I personally use Audiopaint by Nicolas Fournel - look it up on Google and download. It is free.
This program converts an image into sound by assigning colour intensity to sound intensity, vertical axis position to frequency and horizontal axis position to time.
number of horizontal rows = number of individual sine tones possible.
Load a simple all white picture 500 x 500 pixles in size and convert it to sound.
What do you hear?
'White noise' - not exactly, but close.
Now import another picture, all white, this time 3000 pixels tall x 500 pixels wide.
A higher number of oscillators takes longer to render, but sounds closer to white noise.
You can get progressively closer to white noise as you increase the number of lines on the picture = number of individual sine tone oscillators.
Of course, you will never get to white noise, as you cannot have infinite oscillators, one for each frequency.
But if you have >3000 oscillators, assigned to frequencies 20Hz to 20000Hz, you get pretty close.
I have just tried this on my computer here right this second, so I know it works in practice.
The discussions above by zimbot and speedenza (with all due respect to these users), are academic. They are right matematically, but it is an academic point rather than a practical one.
So I think you have enough to make a demonstration to your students which will be convincing and very useful.
You can obviously create a picture with white horizontal lines on a black background, starting at different 'random' positions so that the picture is all black on the left edge and progressively turns all white at the right edge.
This will generate a sound that will move from a few sine tones added at a time to full white noise (or as close as you can get to white noise using your finite number of lines).
You can also create a picture that split diagonally: top left corner is black, bottom right corner is white.
This will create a sound where frequencies are added, low to high to create white noise at the end.
Flip the picture vertically so that top-right is white and you generate a sound where frequencies are added, high to low, ending up in white noise again.
Good luck with your experiments !
Maybe you would like to post the sound files here at Freesound, with explanations, so that others can benefit
all i can say is . . . holy sheet. !
This is very interesting, I only downloaded audiopaint recently (because of dare 26 i believe) and marvelled at it's potential having only scratched the surface of it's uses for sound design, science and all that good stuff . . . !
thanks a lot for sharing all this
I've thought about this some more, and came up with a way to test the perception of randomness and pure tones in relation to white noise.
Basically I wondered what it would sound like if you made a sound consisting of a pure tone but where the frequency changed randomly after each single cycle. So each frequency lasts for exactly a single cycle.
Here's the sound: http://www.freesound.org/people/Speedenza/sounds/241375/
0:00 to 0:02 is a series of single sine waves; at the end of each cycle the frequency changes randomly to a different frequency for the next cycle.
0:02 to 0:07 - similar, but there are 5 tones overlaid; again each is a random single cycle.
0:07 to 0:12 - same but with 10 tones
0:12 to 0:17 - 15 tones
0:17 to 0:22 - 20 tones
The 15 and 20 tones sound quite similar, and seems close to white noise.
There are several issues here. One is perception - the ear (mind) can't resolve a tone based on just a single cycle - at least I don't think it can. Despite this, the first 2 seconds don't sound like pure randomness (and you wouldn't expect it to). However it seems to require only a small number of pure tones to be overlaid to achieve something like white noise, provided you have lots of randomness in the frequencies.
Hi Speedenza
Interesting experiment. Thanks for sharing!
Indeed, the human brain's capability to detect individual events seems to be around > 50/per second for sounds and slightly less for images.
A series of fast clicks will begin to sound like a buzzing tone if the clicks repeat faster than ~50Hz (20ms).
The brain has the same limitation when processing echoes - That is why very short delays don't sound like an echo at all, but instead more like flanging or chorus.
The first part of your sample sounds very harsh, because the transition between each wavecycle is not smooth. - You have probably made the transition at the zero-crossing, however, there is a discontinuity on the transition to the next wavecycle. A kink in the curve, if you will. Zoom in hard onto the waveform on a sound editor and you will see them. - This makes the sound harsh and raspy. Raspier than a true white noise.
At the end of the day, you hit the nail in the head: if you add enough individual random signals, you should end up with white noise (or close).
There actually different types of noise, and what you have produced here I imagined would be closer to brown noise. - brown noise has a contents of frequencies that is higher on lower frequencies and then dcecreases logaritmically has frequency gets higher.
You can confirm this in Audacity:
Select a large portion of the sample in the end section where you have the most waves playing simultaneously.
From the "Analyze" menu choose "Plot Spectrum". You will see a frequency contents that is higher at lower frequencies and then decreases (note that the scale on the graph is logaritmic).
Pure white noise would show up as a flat graph: same intensity on all frequencies.
Here is a sample where I applied EQ to correct the frequency distribution from Speedenza sound.
http://www.freesound.org/people/AlienXXX/sounds/241411/
On a previous attempt I corrected the frequency distribution but also clipped the sample baddly
http://www.freesound.org/people/AlienXXX/sounds/241409/
(don't use this one because of the bad clipping)
AlienXXX:
Thanks for the reply - and the modified sounds. I originally wrote some more complex code to adjust for the dislocations between cycles but then resorted to the quick-and-dirty approach(!), which seemed sufficient to demonstrate the effect. As you rightly point out, using a constant amplitude for the waves doesn't produce pure white noise (it's some other colour) - it just makes it easy to see what's going on, at least at the start of the sound. Essentially it's randomness that's doing the hard work.
And for anyone who wants to know what random is - see the Dilbert cartoon on this page:
http://www.random.org/analysis/
Speedenza,
Here is a little challange for you...
(you obviously have the coding skills)
I believe this is what you have done: an alghorithm that gives all frequencies the same chance of being selected, and builds the sound by adding one cycle at a time, then repeats the process for the next cycle.
I postulate that, since lower frequency wavecycles take longer to complete, the sound will'spend more time' producing lower frequency cycles than higher frequency (resulting in a low freq heavy spectrum on FFT analysis = brown noise).
To correct, maybe you can convert the code, so the distribution is flat for 1/frequency, rather than for frequency.
That should get you closer to white noise.
The other point I mentioned earlier was the kink in the transition point between wavecycles.
You can correct this by making the transition at the highest (or lowest) point of the wavecycle. Since these points have derivative = 0, independent of frequency. This will generate a curve with no kinks.
And is easily achieved simply by changing the sine in you current formula to cosine.
(you may get a pop at the start of the sound, but easily corrected with a small fade in a sound editor)
You can even try to implement both suggestions together
This thought experiment nicely illustrates the shortcomings of digital.
If you're plotting a 10kHz wave with a sample rate of 44.1k then your plot points [in degrees] are 0, 81.6, 163.3, 244.9, 326.5, 48.2 etc so a single cycle doesn't get you back anywhere close to zero. And using cos means you're switching waves (glitching) on the part of the curve with the highest volume which is why I preferred sine, though it still sounds horrible!
You're right about the uniform random sampling of frequencies - there's a clear time bias which distorts the power spectrum. Rather than attempt to weight the frequency distribution directly, I've taken a different approach which is to choose a frequency and add a fixed number of sample points, so each tone lasts for a constant time before switching to a different tone. I've applied a (hopefully, correct!) phase correction at the changeover. You'll see it all if you zoom in.
So...
http://www.freesound.org/people/Speedenza/sounds/241427/
This one adds 800 samples (about 18ms) of each tone - this was to kind of illustrate what you wrote about the length of time needed to resolve individual tones. No overlaying. Sounds quite 'bleepy' so the ear is able to resolve something at this level.
http://www.freesound.org/people/Speedenza/sounds/241426/
Same as my original attempt but using fixed number of samples per tone rather than single cycles. Here I used 80 samples for each tone - chosen as an order of magnitude smaller than the value above, which starts off sounding much noisier and less bleepy. It adds overlaid tones as before at t = 2, 7, 12 etc.
I haven't tested the power spectrum of these, but the second certainly sounds much closer to white noise than the previous one.
Speedenza wrote:
This thought experiment nicely illustrates the shortcomings of digital.If you're plotting a 10kHz wave with a sample rate of 44.1k then your plot points [in degrees] are 0, 81.6, 163.3, 244.9, 326.5, 48.2 etc so a single cycle doesn't get you back anywhere close to zero. And using cos means you're switching waves (glitching) on the part of the curve with the highest volume which is why I preferred sine, though it still sounds horrible!
Speedenza wrote:
You're right about the uniform random sampling of frequencies - there's a clear time bias which distorts the power spectrum. Rather than attempt to weight the frequency distribution directly, I've taken a different approach which is to choose a frequency and add a fixed number of sample points, so each tone lasts for a constant time before switching to a different tone. I've applied a (hopefully, correct!) phase correction at the changeover. You'll see it all if you zoom in.So...
http://www.freesound.org/people/Speedenza/sounds/241427/
This one adds 800 samples (about 18ms) of each tone - this was to kind of illustrate what you wrote about the length of time needed to resolve individual tones. No overlaying. Sounds quite 'bleepy' so the ear is able to resolve something at this level.
Speedenza wrote:
http://www.freesound.org/people/Speedenza/sounds/241426/
Same as my original attempt but using fixed number of samples per tone rather than single cycles. Here I used 80 samples for each tone - chosen as an order of magnitude smaller than the value above, which starts off sounding much noisier and less bleepy. It adds overlaid tones as before at t = 2, 7, 12 etc.I haven't tested the power spectrum of these, but the second certainly sounds much closer to white noise than the previous one.
OK, I've done this one.
- http://www.freesound.org/people/Speedenza/sounds/241457/
Yup, I was surprised by this one too...