Mathematically generated seascape

Page 1

Mathematically Generated Seascape I) Principle This seascape sound of crashing waves and shrieking seagulls is randomly generated from filtered white noise and variable frequency sine waves. Extensive use of slight randomisation on parameters enables to recreate a realistic and varied sound without storing much data. The demo mp3 was generated in Matlab, a mathematical software, but the generator is designed to be simple enough to be implemented on a low cost standalone processor. It could then be possible to have a small standalone device connected only to speakers or headphones that would generate ambient noise on its own for an infinite amount of time. The waves are created from filtered white noise, and several parameters of both the wave and seagull sounds are generated from random numbers, therefore the generator would not play the same sound twice for a very long time. II) Waves The sound of Ocean waves can be recreated by filtering white noise through low pass filters. Using selected field recordings of 7 different waves, I have used LPC (Linear Predictive Coding) analysis to find filters able to recreate the sound of the wave when fed with computer generated white noise. To store less data, I automatically evaluate how much each section of the wave varies, and uses the same filter to model several consecutive 20ms frames if the wave does not vary much. Therefore each filter models between 20ms in highly variable parts (when the wave builds up or crashes) and 300 ms in stationary parts (when the fully formed wave rolls steadily before crashing or the water flow cools off after a wave crash). When synthesising the wave, I randomly vary the amplitude of the wave (how hard it crashes) and its speed (by taking frames slightly longer or shorter than the original 20 ms frame), so I can recreate many more waves than the original 7 models. The original recordings were stereo, so different sets of filters are used for left and right channels, as well as different white noises to avoid phase artefacts. The following picture (Fig 1) is a spectrogram of stereo synthesized waves. The left channel is shown top, the right channel bottom. A spectrogram shows time on the horizontal axis, frequencies on the vertical axis while amplitudes are colour coded (gold means high amplitude, dark blue low amplitude). When the wave is rolling, there are strong low frequencies in gold and medium middle-range frequencies in red. In the quiet moments between 2 waves, the low frequencies have a medium (red) intensity and the middle-range frequencies are very low power (purple). This shows the whole synthesis process is quite simple: filtering white noise through a series of low pass filters whose low pass characters gradually fluctuates between very smooth (wave rolling) and quite strict (wave quiet).

Fig 1: stereo spectrogram of synthesized waves

III) Seagulls A seagull caw is a composed of 4 harmonics doing a frequency sweep, and can be synthesized from no more than 20 frequency measurements made at different times on an actual seagull shriek. The synthesized sound varies slightly by randomly stretching the caw in time, so that the seagull shrieks more or less fast, and multiplying the frequency sweep so that the seagull sounds more or less high-pitched. A random number of between 1 and 12 consecutive caws are produced. The parameters of the first caw are randomly chosen, and rules empirically found out by studying several recording of seagulls determine how the following caws in the series decrease in length and frequency. This regular decrease observed in field recordings is probably due to real seagulls getting out of breath.

Fig 2: 2 different series of caws It is randomly decided whether the seagull is situated on the right or on the left of the listener. A delayed and attenuated version of the caws is then copied on the other channel, to simulate a stereo recording. A further development would be to steadily change the gain and delay on both channels, to simulate the seagull moving in flight as it shrieks. Finally, every time a new wave is produced, random numbers determine whether to produce a seagull caw as well, and when to start playing it along with the wave. A seagull caw can overlap on 2 or more consecutive waves, but only one seagull is allowed to shriek at a time. Figure 2 illustrates how varied the generated caw series look (and sound!) even though they are all derived from a single model. The first series is very long (12 caws) but contains only short caws: it seems the seagull is keeping its breath as it has much to say! The second series is composed of 3 longer, louder and higher pitched caws

IV) Further development This mp3 is only a first demo of the ambient noise generator. Further development I’ve considered, subject to time, cost and feasibility, include a standalone generator on a low cost processor that could generate sound without being attached to a PC. If the processor, battery and speakers were small enough, they could be hidden in small objects such as large seashells. A software version of the random generator could be used as an accompaniment to a random slideshow of pictures or mute videos.

Melanie Menard Š 2007-2009