Procedural audio is a particularly effective technique when designing sounds for animations. In this post, we will see how GameSynth’ specialized modules and the import of animation curves make it easy to create expressive and perfectly synchronized sounds for a cartoon video.
The movements of the boy and the rabbit in the video are quite bouncy. Although pitch modulation is an efficient way to evocate bounciness, GameSynth also offers some generators that will help us to highlight this trait, such as Bubble, Sine Bank and Plucked String.
- The naturally bouncy but harsh sound generated by a Plucked String module is sent through an EQ Filter to smooth it (the filter’s cutoff is driven by the generator’s amplitude envelope).
- A Pitch Shifter modulated by an Envelope gradually increases the pitch.
- Both the pitch of the Plucked String and the Pitch Shifter are also controlled by a Meta Parameter, allowing us to export several sound variations with an increasing pitch in a single click.
- To accentuate the rabbit movements, a second patch was created around a Sine Bank module, whose pitch quickly goes up and down.
It is possible to automatically render sound variations by sweeping the value range of a Meta-Parameter instead of using random ranges.
- To differentiate it from the rabbit, the running sound effect for the boy uses a Saw Oscillator for generator, followed by a Bandpass filter modulated by an LFO.
- A Footsteps module is mixed with a Bubble generator – sent through a Chorus – to produce a bouncier sound for the boy’s steps.
- Finally, to give it more identity, an Impact module generates a mallet-like sound. Often heard in cartoons, it will be used again later for comical effect (when the boy tries to run over the pit).
Note that the sound effect for the boy’s blinking eyes was created with a similar technique, using pitch-modulated Sine Bank and Bubble modules.
Since this short cartoon video was produced in Unity, the animation curves used in the project (.anim files in Unity), could be directly imported in GameSynth and converted to automation curves.
For instance, the animation of the boy running requires several sounds to be precisely timed. Once imported, the corresponding animation curve was processed and used to drive a Noise Bands module, simulating the friction of the clothes. GameSynth modules were extremely useful to achieve this:
GameSynth can import curves from 2D animation tools such as Sprite Studio, Live 2D, or Spine, from middleware such as Unity, Game Maker Studio, or Houdini, or from any 3D graphics package thanks to its FBX support. You can even import BHV motion capture data!
- First the Velocity was extracted by a Derivatives
- Then, Rectifier and Mapper modules were used to keep the control curve in a usable range.
- A Smooth module softened the signal to remove any roughness.
- Finally, a Drifter module was used to add slight variations to prevent the sound from being too repetitive.
Combined with a Crossings module, an animation curve can also trigger events. The Crossings module will activate its outputs whenever the input signal crosses specific values, potentially also depending on its direction. For this animation, it was configured so that a footstep sound was triggered when the signal moved over 0.9, while crossing 0.1 would play the springy sound.
Once the sound rendered, it can directly be dropped on a track in your DAW, and it will be perfectly synchronized with the animation, without requiring any further edits.
This concludes the first part of our tutorial about the creation of cartoon sound effects using procedural audio. We have already discovered some very useful features for animation sound design in GameSynth. Join us for the second part, where we will explore more techniques from making a rabbit laugh to creating stylized impacts!