Blog homepage

Generating Rain With Pure Synthesis

Game Audio / Sound Design / Wwise Tips & Tools

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

Comments

Leave a Reply

Your email address will not be published.

More articles

Loudness Processing Best Practices, Chapter 1 : Loudness Measurement (PART 2)

In his previous blog, Loudness Processing Best Practices, Chapter 1: Loudness Measurement (part 1),...

13.6.2017 - By Jie Yang (Digimonk)

Game Audio Gamefication (Part 2)

In some of my own games we tried to implement a lot of cool audio features, linked a lot of things...

24.4.2018 - By Bjørn Jacobsen

Encounters | The Advantages of Using Wwise in Casual Games

When we think of using Wwise as audio middleware for game music, we generally think of games with...

25.11.2021 - By Raquel G. Cabañas

Behind the Sound of Psychonauts 2

Psychonauts 2 is an exciting platforming adventure game that continues the story of Raz after the...

10.3.2022 - By Double Fine

Audio Optimization Practices in Scars Above

Introduction In this document, I will try to explain the different principles that we applied while...

24.8.2023 - By Milan Antić

Using Wwise to Drive In-Game Cinematics, Featuring Wwise Time Stretch Plug-in

Introduction This is the first of a 3-part tech-blog series by Jater (Ruohao) Xu, sharing the work...

20.8.2024 - By Ruohao (Jater) Xu

More articles

Loudness Processing Best Practices, Chapter 1 : Loudness Measurement (PART 2)

In his previous blog, Loudness Processing Best Practices, Chapter 1: Loudness Measurement (part 1),...

Game Audio Gamefication (Part 2)

In some of my own games we tried to implement a lot of cool audio features, linked a lot of things...

Encounters | The Advantages of Using Wwise in Casual Games

When we think of using Wwise as audio middleware for game music, we generally think of games with...