Mixerton NatureSounds

Rather than constantly repeating a staticly stored sound loop, this naturesound generator produces a never-repeating nature sequence using on-the-fly mixing of a number of samples that are separately stored. Each sample is relatively short and is stored in uncompressed, high-quality form in Flash ROM. Each sample is played with random volume, pan and repeat count, and at random times. Alongside each sample is stored the basic parameters to adjust these random settings.

One sample is different, it is repeated continuously and provides the background noise (e.g. the bubbling brook). This sample can be stereo whereas the others are mono. This sample must be loopable without clicks.

All samples are converted to .WAV files before being compiled to produce the Flash image for storing in the unit. These .WAV files can be provided as separate tracks on a CD, separate files on a CD ROM, or by email or web links etc.. Once the files are downloaded into Flash, it is possible to trim their individual parameters using an attached laptop computer and the final settings that are decided on can then be incorporated into other units.

Demo 1: 10th April 2004

This file is a sample of the continuous random output from a generator program. I show the individual wave files used to form it below. Other files are easily added to the ROM with just a few parameters to say how to play them. Each sample is played at random times, with random volume, pan and repeat count.

The total ROM storage used in this demo is just over half a megabyte.

Demo file: four minutes length. Total sample ROM required to source this: 507 kbyte.

There is no reverb effect here, although I have found that putting a delay of a few milliseconds between playing a sample in one channel and the other of the stereo pair gives a very nice 3-d effect. Different voices can use different amounts of this technique, to give a surround sound pan per voice.

The main brook sound is turned into a psudo stereo, by playing it twice with a large time offset and mixing the two streams of sound with continuously varying (random LFO) stereo separation. I hope to adda few extra sploshes or other occasional water sounds, if I can find some suitable.

Raw Wave File (43Mbyte)

Compressed version in mp3 form MP3 4 Mbyte.

Note the compressed version is just for faster web download of this sample. No such compression is involved in the embedded ROM form.

Here are the samples used. All samples need to be at a rate that is an integer multiple of 44.1, mono and preferably 16 bit. The samples must be very clean: no background noise.

The background noise sample can be stereo, but here it was mono and made psudo stereo.



   File  waves/animals010.wav
52 49 46 46   EA 1C 00 00   57 41 56 45   66 6D 74 20   
10 00 00 00   01 00 01 00   11 2B 00 00   22 56 00 00   
02 00 10 00   64 61 74 61   C6 1C 00 00   
Reading WAV file: waves/animals010.wav, 3683 samples, 0 seconds
waves/animals010.wav  V=33
waves/animals010.wav  D=100
waves/animals010.wav  M=1
waves/animals010.wav  M=1


  File  waves/riviere3.wav
52 49 46 46   DC 6E 02 00   57 41 56 45   66 6D 74 20   
10 00 00 00   01 00 01 00   22 56 00 00   44 AC 00 00   
02 00 10 00   64 61 74 61   B8 6E 02 00   
Reading WAV file: waves/riviere3.wav, 79708 samples, 3 seconds
waves/riviere3.wav  V=63
waves/riviere3.wav  M=2



  File  waves/cow2.wav
52 49 46 46   2E 94 02 00   57 41 56 45   66 6D 74 20   
10 00 00 00   01 00 01 00   22 56 00 00   44 AC 00 00   
02 00 10 00   64 61 74 61   08 91 02 00   
Reading WAV file: waves/cow2.wav, 84100 samples, 3 seconds
waves/cow2.wav  V=10
waves/cow2.wav  D=100
waves/cow2.wav  M=1


  File  waves/animals012.wav
52 49 46 46   96 25 00 00   57 41 56 45   66 6D 74 20   
10 00 00 00   01 00 01 00   11 2B 00 00   11 2B 00 00   
01 00 08 00   64 61 74 61   72 25 00 00   
Reading WAV file: waves/animals012.wav, 9586 samples, 0 seconds
waves/animals012.wav  V=33
waves/animals012.wav  D=100
waves/animals012.wav  M=1
waves/animals012.wav  M=1


  File  waves/animals018.wav
52 49 46 46   AC A8 01 00   57 41 56 45   66 6D 74 20   
10 00 00 00   01 00 01 00   11 2B 00 00   22 56 00 00   
02 00 10 00   64 61 74 61   88 A8 01 00   
Reading WAV file: waves/animals018.wav, 54340 samples, 4 seconds
waves/animals018.wav  V=33
waves/animals018.wav  D=20
waves/animals018.wav  M=1
waves/animals018.wav  R=2
waves/animals018.wav  R=2


  File  waves/animals075.wav
52 49 46 46   E8 3B 01 00   57 41 56 45   66 6D 74 20   
10 00 00 00   01 00 01 00   11 2B 00 00   22 56 00 00   
02 00 10 00   64 61 74 61   C4 3B 01 00   
Reading WAV file: waves/animals075.wav, 40418 samples, 3 seconds
waves/animals075.wav  V=33
waves/animals075.wav  D=55
waves/animals075.wav  M=1
waves/animals075.wav  R=2
waves/animals075.wav  R=2


  File  waves/animals095.wav
52 49 46 46   02 0F 01 00   57 41 56 45   66 6D 74 20   
10 00 00 00   01 00 01 00   11 2B 00 00   22 56 00 00   
02 00 10 00   64 61 74 61   DE 0E 01 00   
Reading WAV file: waves/animals095.wav, 34671 samples, 3 seconds
waves/animals095.wav  V=33
waves/animals095.wav  D=40
waves/animals095.wav  M=1
waves/animals095.wav  R=3
waves/animals095.wav  R=3
7 files enabled for the mix. Total wave store 589 kbyte

All samples were taken from royalty free web sites.