In this post, we will synthesize a complete tropical forest ambience. It is a good example of sound design using different levels of detail (LOD), an approach often used in procedural audio to create complex sounds without using too much CPU (as described in this previous post about simulating the sound of rain).
Our patch is divided in 3 branches that are mixed just before the output. The central branch generates the general ambience, which consists of birds singing in the background and rustling leaves. The left branch mimics the sound of a single crow-like bird in the foreground, while the right branch generates a more melodious bird call. (This is a stereo patch, and the positions of the branches in the patch correspond to the placement of the sounds they generate in the stereo field.)
For the general ambience layer, we recreated the sound of dozens of birds tweeting in the background. To save CPU cycles, we used a single generator instead of synthesizing the sound of each individual bird. We used a Goo module for the basis of the sound, as it generates high-frequency, rapidly evolving noise. The timbre is then changed to something more suitable for birds by performing Cross-Synthesis with a Thunder module.
It may be a bit surprising at first, but the Goo module is actually a great choice to simulate the sound of flocks of birds. The ‘Shrub Birds’ patch in the GameSynth repository shows an alternative method, where the output of two Goo modules with different settings are passed through Frequency Shifters be fore being mixed.
We also added a Leaves module to the central branch, which single-handedly generates the sound of the wind in the leaves.
The sound of the croak is based on the ‘Corvus Bird Rattle’ patch from the GameSynth repository. It uses a single Noise module for all the sound generation. The noise is sent through two parallel EQ Filters configured as Bandpass and highly resonant.
Their central frequencies are modulated by the same Envelope module, resulting in a noisy signal composed of two spectral bumps sliding slightly down. Note that the Variation parameter of that Envelope is set to generate a slightly different sound each time. The amplitude of this noisy signal is then modulated by a pulse LFO.
As shown in the video above, at this point the basic timbre and pitch variation of the croak are already here. The rest of the patch essentially consists of processors such as Tube, Comb Filter and Delay used to make the sound more natural and simulate the syrinx of the bird.
Melodious bird call
The sound generated by the right branch is fairly basic. It is based on the ‘Bird 1’ patch from the repository. Two Oscillators are modulated both in amplitude and in frequency (via Pitch Shifters) to create a bird song.
Once mixed, they are sent through an EQ and a Reverb to give the sound a bit more presence.
Of course, there are many other ways to synthesize birds in the Modular model of GameSynth. For example, you can also use the Animal module, which has a Bird setting. Check the ’37 – Bird Song’ preset of the Modular to hear it in action!
You can find all the patches we talked about in this post in the GameSynth repository. Simply enter ‘Bird’ and search by Tag. What about you, how would you create bird songs in GameSynth?