Generating Rain With Pure Synthesis

游戏音频 / 声音设计 / Wwise 技巧和工具

A few years ago, I wondered whether it was possible to synthesize whatever I wanted. I started by synthesizing nature sounds: wind, birds singing, insects chirping, and much more. Reverse engineering is perfect for such an endeavor. First, a spectrum analysis is performed, then aspects like waveform and pitch are recreated.

After successfully experimenting with nature sounds (a sample video is at the end of this article), I decided to create dynamic weather that could be changed simply by adjusting a simple parameter from the game engine. Once again, I began with an analysis before proceeding to recreate the sounds using synthesizers. Procedural dynamic rain is an excellent example, especially because a simple Wwise parameter can change the sound from light rain to pouring rain.

Procedurally generated dynamic rain in Wwise

Research 

As I can't just recreate the sound of rain by watching its spectrum or waveform, I decided to scour the internet to research this topic. I found a meaningful paper from Cornell called "Toward Animating Water with Complex Acoustic Bubbles". It contains great work, and worth the read.

These were the main conclusions I drew from this research paper:

  • The sound of liquid is actually made from the sounds of multiple bubbles.
  • The sound of a bubble (or water drop) is a sine wave with a modulated pitch and duration of about 10-20 ms.
  • The tone of the sine wave depends on how near the bubble is to the surface of the liquid.
  • The shape of the bubble affects the pitch modulation.  

Through this, I realized that the sound of rain is comprised of the sound of millions of bubbles merging each second to form a spectrum resembling a noise-like sound (pink noise, to be more precise). 

Based on this idea, I created a prototype of dynamic rain in Ableton Live using Serum. I split the whole sound into a few layers:

1. Light high-frequency boiling
2. Mid-frequency boiling
3. Stereo noise
4. Individual raindrops 

To make it more realistic, I cross-referenced my prototype with a sample of recorded rain.

The rain sound prototype

Recreating in Wwise 

The next step was to use Wwise synthesizers to create rain. Layer by layer, I recreated everything that was in the prototype.

Step 1: Boiling  

Using Wwise Synth One, I started with pure white noise. Then, with the help of a Random Modulator, I adjusted the Make-up Gain. This made the sound become granular.

Boiling layer in Wwise

Next, I added Parametric EQ to the Effects chain. Parametric EQ consists of two band pass filters: 

rain_01

Add random peaks among the middle frequencies to create a bubble-like sound

rain_02

By adding the Random LFO to the Band 2 Frequency parameter, I incorporated more randomness to the Frequency of the second filter.

rain_03

Lastly, to complete the final timbre, I added one more EQ with High Pass and Low Pass filters. These filters slightly attenuate high and low frequencies.

As a finishing touch, I used Wwise Harmoniser. I liked how it created a tonal character to complement the boiling sound. This step is purely optional, but I loved the result it produced.

Step 2: Low Boiling

Low Boiling layer in Wwise

This layer was also made based on the prototype I created in Ableton Live.

I made this sound based on Pink Noise in Wwise Synth One. To create the boiling effect, I used the same technique of adding Parametric EQ with Random LFO to the Frequency of the second filter. This LFO produces quite frequent filter movement—more than 100Hz.

rain_04

I had wanted to create not just the sound of rain but also a dynamic rain system that changed rain intensity depending on the parameter, which is the RTPC parameter called Rain_intensity, from the game engine. This parameter changes many of the settings for rain, filter settings, and the volume of the Low Boiling layer.

rain_05

rain_06

Step 3: Stereo Noise

This layer creates the illusion of real rain. To make the sounds wide, I made a few copies of the same Pink Noise and hard-panned them to the left and right.

Stereo noise layer in Wwise

Both synths were processed using a soft EQ.

Depending on the Rain_intensity RTPC, this layer not only becomes quieter or louder, but the Frequency of the filter also changes.

rain_07

rain_08

Step 4: Raindrops

Raindrops layer in Wwise

Based on my Ableton prototype, I also made the sound of individual raindrops. I created one more instance of the Wwise Synth One with the sine wave. 

rain_09

The Envelope modulator adjusts the volume similarly to how I did with the Serum prototype. 

rain_10

rain_11

 

To make the sine wave change its pitch, I added an Envelope modulator to the Transpose parameter. 

The next step would be to randomize the trigger rate, pitch, volume, and pan.  A Random Container would be a great solution for this.

Conclusion

This procedurally generated rain can become part of a larger dynamic weather system in your game. However, you'll probably need to make more nature sounds.

Here's a good example from one of my earlier experiments. It features pure, synthesized nature sounds for World of Tanks. Everything you'll hear from the video is synthesized: wind, birds, insects, etc. Such prototypes will help you build similar systems in Wwise.

Video prototype of nature sounds in World of Tanks

Thank you for reading this article. I hope you'll find this useful for your next project. In my next article, I'll reveal how we use Wwise to make audio systems in World of Tanks. 

Aleksandr Khilko

Lead Audio Designer

Wargaming

Aleksandr Khilko

Lead Audio Designer

Wargaming

Aleksandr is a Lead Audio Designer at Wargaming. He is a part of Audio Design Team working on sound for the World of Tanks – online multiplayer game.

https://worldoftanks.com/

 @iamalexmars

评论

留下回复

您的电子邮件地址将不会被公布。

更多文章

《Clocker》的声音设计 - Part 1

大家好,我是谭宇,来自一罐盐声音工作室(Salt Sound Studio)。下面将通过这篇博客跟大家分享一下我们的项目...

23.9.2019 - 作者:谭宇

《使命召唤手游》的空间音频探索

当我们提起“空间音频”的时候,我们在聊什么?

15.6.2020 - 作者:腾讯天美工作室群

人人都能用 WAAPI(二)wwise.core 分支

大家好,我是溪夜。 在《人人都能用 WAAPI(一)概述》中,我们用思维导图对 WAAPI 进行了重新归纳,并在配置好开发环境后,一起用 Python 写了几个简单的小程序,体验了 WAAPI...

29.10.2020 - 作者:汪洋

独自开发第一人称恐怖冒险游戏

我的背景 我叫亚历山德罗•古佐,是一名独立游戏开发者,目前开发过两款第一人称恐怖冒险游戏:《The Land of Pain》和《The Alien...

13.4.2023 - 作者:亚历山德罗•古佐 (Alessandro Guzzo)

Wwise Spatial Audio 2023.1 新增功能 | 对 Aux Send 模型进行的完善

如果各位了解过 Wwise 2023.1 的新增功能,可能会注意到文档中有这么一句话:“对 Aux Send 模型进行的完善”。这个到底是什么意思呢?今天我们就来详细说说。在此,我会简要介绍对...

14.12.2023 - 作者:内森 哈里斯(NATHAN HARRIS)

使用 Wwhisper 连通 REAPER 和 Wwise

大家好,我叫托马斯,是一名来自法国的技术音频设计师,很高兴能在 Audiokinetic 博客上跟大家说说自己开发的 Wwhisper 脚本。...

23.6.2025 - 作者:Thomas Fritz

更多文章

《Clocker》的声音设计 - Part 1

大家好,我是谭宇,来自一罐盐声音工作室(Salt Sound Studio)。下面将通过这篇博客跟大家分享一下我们的项目...

《使命召唤手游》的空间音频探索

当我们提起“空间音频”的时候,我们在聊什么?

人人都能用 WAAPI(二)wwise.core 分支

大家好,我是溪夜。 在《人人都能用 WAAPI(一)概述》中,我们用思维导图对 WAAPI 进行了重新归纳,并在配置好开发环境后,一起用 Python 写了几个简单的小程序,体验了 WAAPI...