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

Designing the Musical Game World of No Straight Roads

Wow, hello, fellow game audio folks! We would love to share with you how we used Wwise and Unreal...

6.5.2021 - By Imba Interactive

Getting started using the Wwise Authoring API (WAAPI) with Max 8

Introduction When setting up more complex RTPC-driven events in Wwise, we often face the dilemma of...

8.7.2022 - By Michael Hartung

Strata receives its first independent review, and it’s great!

When we launched Strata a month ago, we were full of excitement and trepidation as to how the...

22.11.2022 - By Audiokinetic

WAAPI in ReaScript (Lua) with ReaWwise

A lesser-known feature of ReaWwise is that it exposes raw WAAPI functions to REAPER, which you can...

13.1.2023 - By Andrew Costa

The Music of Age of Empires IV

My name is Lin Gardiner. I’m a Principal Audio Designer at Relic Entertainment and the Music Lead on...

30.3.2023 - By Lin Gardiner

Step Sixteen | Making a Step Sequencer App With Unity & Wwise

Introduction Hi there, I’m Matt, a sound designer at Rogue Waves. We typically work on sound effects...

19.4.2024 - By Matt Sweeney

More articles

Designing the Musical Game World of No Straight Roads

Wow, hello, fellow game audio folks! We would love to share with you how we used Wwise and Unreal...

Getting started using the Wwise Authoring API (WAAPI) with Max 8

Introduction When setting up more complex RTPC-driven events in Wwise, we often face the dilemma of...

Strata receives its first independent review, and it’s great!

When we launched Strata a month ago, we were full of excitement and trepidation as to how the...