Arduino Noise Mantel – ElectroSchematics.com

I am still learning what can be done with Arduinos! Recently while looking around what other clever people have done with the Uno/Nano things, I found a fun goal– an Arduino White Noise Generator/Machine!

White Noise Machine – Wiki Talk

According to Wikipedia, a white noise machine is a device that produces a noise that calms the listener, which in many cases sounds like a rushing waterfall or wind blowing through trees, and other serene or nature-like sounds. Often such devices do not produce actual white noise, which has a harsh sound, but pink noise, whose power rolls off at higher frequencies, or other colors of noise (https://en.wikipedia.org/wiki/White_noise_machine).

White Noise Generator – Lazy Walk

In principle, white noise comprises all frequencies at all amplitudes. Despite this sounding complex, you can generate white noise as it occurs naturally in certain semiconductor components like zener diodes and transistors and all you must do is to learn how to handle it. Note, you can make a simple white noise generator circuit using a couple of cheap discrete components.

I will not describe here how this circuitry works, but it’s enough for a hard-headed white noise source – nothing special, just what I had handy. As you can see, the white noise maker is compact and runs from a single dc power supply. Moreover, the component values ​​are not set in stone, and it is worth trying out. Interval, each BJT has a different breakdown voltage that makes the noise; hence you should try various common BJTs (with 47K to 470K emitter resistors) you have at hand. Note, do not use a breadboard for your experiments – do try a tiny perfboard and keep all interconnections as short as possible. Okay, get ready for that homework!

The following image shows a random oscilloscope grab. As you can clearly see, my breadboard mock-up gave a sensible noise output (circa 150mVp-p) while measured at the final test point (TP2). What you see is the noise signal probed after the 100nF coupling (dc-blocking) capacitor (offset removed).

I must admit that my idea, which is loosely based on Rick Andersen’s far-famed white noise generator, is not a good and viable solution. Just a mere idea to consider and experiment, that is the thing! See the source of inspiration (better and stronger):

Noise Generator – Arduino Trick

Can you build an Arduino noise generator that will serve as a rich source of noise suitable for acoustic experiments? Notice that any electronics hobbyist can make a noise generator but preparing and using a good noise source is harder than it looks. My first approach was to make an Arduino Uno noise source by utilizing a simple piece of code which has been (probably) tried by many others. Notice that the following sample code in every case calls for the “Arduino-Entropy” Library, and this is the GitHub link https://github.com/pmjdebruijn/Arduino-Entropy-Library. Feel free to modify the sample code as you wish, and take a look at this useful link https://softsolder.com/2017/11/03/arduino-pseudo-random-white-noise-source/ as well.

[code]

#define noiseOut 8 // Noise O/P Pin = D8

#include <Entropy.h> // Required Library

uint32_t Rnd;

byte LowBit;


void setup() {

Entropy.initialize();

pinMode(noiseOut, OUTPUT); // Set D8 as Output

uint32_t Seed = Entropy.random();

randomSeed(Seed);

do {

Rnd = random();

} while (!Rnd); // Get non-zero initial value

}


void loop() {

LowBit = Rnd & 1;

digitalWrite(noiseOut, LowBit); // About 6uS/bit

Rnd >>= 1;

Rnd ^= LowBit ? 0x80000057ul : 0ul;

}

[/code]]


As indicated in the below schematic, connect a standard piezo-electric disc (or a passive piezo-buzzer/piezo-speaker) between Pin 8 and Gnd of the 9V battery powered Arduino Uno to listen the white noise. Or simply feed the signal coming out of D8 into an external audio amplifier so that you can hear it aloud as needed.

The below image is a sample oscillogram casually captured while my o’scope was probed across the piezo-disc ie Pin D8 and Gnd of Arduino Uno.

How good is this idea? Of course, there are many other tests to try since different tests look at different things. Sadly, I have not had time to do much analysis yet. So far, it is running along nicely. And that is all!

Notably it is common that this type of noise source usually uses a digital shift register with feedback that causes the output sequence to change in an apparently random manner. The algorithms are in fact rooted in complex maths and probably mysterious to many folks. I am not about to dive into the secrets (and the underlying maths) behind as there are numerous online resources that do help you learn the tricks. This is just another sample link https://en.wikipedia.org/wiki/Linear-feedback_shift_register

Coloring the noise?

Once you’ve your white noise, you can filter it to ‘colour’ the noise! Look, different colors represent different frequency content. In the music world, you can see that most synthesizers usually provide white noise (some synths also offer pink which has the high frequencies rolled off). Occasionally you will see noise labeled as blue, red, or brown. Further reading at https://en.wikipedia.org/wiki/Colors_of_noise

Under the Pink Noise Umbrella!

In terms of applications, pink noise (https://en.wikipedia.org/wiki/Pink_noise) is broadly used for testing audio equipment. As far as I can recall, by filtering a white noise source with a 3dB/octave filter, we can create a very good approximation of pink noise (Pink noise has a 3dB/Oct roll off). Remember, pink noise is just a variant of white noise that has been filtered to reduce the volume at each octave. This is done to compensate for the increase in the number of frequencies per octave. Each octave is reduced by 6dB, resulting in a noise signal that has equal energy at every octave.

Mathematically:

  • White noise is an equal amount of energy per frequency
  • Pink noise is an equal amount of energy per octave

This is the major difference between white and pink noise. In white noise, the power is constant. In pink noise, as the numbers get bigger, the difference in power becomes smaller, so the higher-pitched sounds are softer and sounds less abrasive!

Admit it, Arduino is certainly not an optimal microcontroller platform for making a great pink noise generator, anyway, it is a smart device for building with. Since it provides vestigial sounds (up to basic wavetable synthesis), Arduino can be combined with other external hardware for a reasonable outcome. A pink noise filter mechanism, for example, can convert the white noise output to pink noise (White noise → Filter → Pink noise).

Coffee break

In this post, I outlined how to build a crude noise source using discrete components laying around, and a better model with the help of a stock Arduino microcontroller. In the next part, I am going to build those into something a little more fabulous and worthful.

Because noise generation is a somewhat complex topic, it takes a bit of time to learn how to play with, but it is intuitive once you have had a little practice. The first thing you will need to consider is a strong foundation, so the rest of the castle has something solid to stand on. Have fun!

Credits & Feedback

Thanks to authors of excellent online tutorials about this topic, and makers of related do it yourself projects. I have found them very useful and interesting. They have taught me a lot.

Any mistakes spotted, feedback, or ideas for further development are always appreciated. Please get in touch. The comments box is for you!

References (only a few links):

Home

https://mintysynth.com

Korg Volca Modular and Arduino

Arduino noise generator

Can You Make a Synth with an Arduino?

https://sound-au.com/project182.htm

What is a Synthesizer? The Complete Guide to Synths

https://www.experimentalistsanonymous.com/ve3wwg/doku.php?id=noise_generator

https://www.cim.mcgill.ca/~clark/nordmodularbook/nm_noise.html

Leave a Comment