top of page

Procedural Magic SFX From White Noise And Modal Explosify Nodes

  • Writer: Son Le
    Son Le
  • Sep 23
  • 4 min read
Final graph preview in MetaSounds - Unreal 5

Overview

This tutorial aims to demonstrate how to create a basic magic effect using only a white noise node and our Modal Explosify node. This is intended as an initial step before delving into our modular magic graphs in subsequent tutorials.

Each game, depending on its artistic direction, will have its own approach to crafting magic sounds. The effects created in this tutorial are abstract sounds rich in mid to high frequencies with reverberation and metallic lingering effects. These are often used to depict various states of magic spells or special abilities.


Graph Explanation

1) Creating The Initial Noise Signal

Fig. 1: The initial input noise signal.
Fig. 1: The initial input noise signal.

The Modal Explosify node needs an input audio signal to function. For this effect, we use a white noise node combined with an AD node to generate the input signal.

The white noise node is a very cheap and simple node. It plays a vital part in our procedural SFX framework. In the preview, we assign a non-negative value to its seed, ensuring that we obtain the same result each time we play the graph.

The AD (or ADSR) node is commonly used to create the fade-in and fade-out envelope:

  • Attack Time (Fade-In): We set this to zero for casting, impact, and explosion effects. For chanting, charging, or transition effects you can use a non-negative value.

  • Attack Curve: This affects the shape of the fade-in envelope. Consequently, it also affects the distortion build up inside the Modal Explosify node.

  • Decay Time (Fade-Out): This determines how quickly the input noise level decreases to zero. Due to the reverberation effect of the Modal Explosify node, the actual fade-out (or tail) of the final output signal is generally longer than the specified Fade-Out.

  • Decay Curve:  This influences the shape of the fade-out envelope. In the preview, it is set to 0.5 to create an exponential function shape, which is typical for impact and explosion effects.

  • On Done: We use this trigger to alert the Modal Explosify node when its input audio becomes silent.

2) The Modal Explosify Node

Fig. 2: The Modal Explosify node.
Fig. 2: The Modal Explosify node.

This is a powerful node that creates an entirely new signal. It samples the input signal using modal filters and then applies three effects: distortion, reverberation, and diffusion. Key parameters in this tutorial include:

  • Num Modals: Represents the number of modal filters used for sampling the input signal. A range of 8 to 16 is recommended for magical effects.

  • FMin: The minimum frequency signal sampled from the input. Here we set it to 500 Hz to only sample mid to high frequencies.

  • FMax: The maximum frequency signal sampled from the input. Here we set it to 18 KHz, which is already very high. For magic effects, you should use a value between 10 KHz to 18 KHz.

  • Freq Spread: Determines the distribution of modal filters between FMin and FMax. The default value is 0.7, selected based on human auditory perception of frequency bands. This parameter controls the timbre of the output signal. Lower values result in a darker, heavier sound, while higher values produce a brighter, lighter sound.

  • Decay Min: The minimum decay rate of the reverberation effect. Here we set it to 6. Lower values increase the loudness and extend the tail of the output signal.

You should experiment with different values of these parameters to see how the output changes. They are crucial inputs for many of our graphs.

Note that FMin and FMax only affect the sampled frequencies of the input. Due to distortion, the output signal typically contains all frequency components from 20 Hz to 20 KHz.

When the Is In Audio Stop input is set to true, this node will track its output signal energy, and it will automatically stop when it detects the output has become silent.

3) The Diffuser Node

Fig. 3: The Diffuser node.
Fig. 3: The Diffuser node.

The distortion effect produced by the Modal Explosify node often includes high-frequency pop noises. While these are sometimes desirable in explosion or fire effects, for pure magic effects, we remove them by using the default Diffuser node of MetaSounds.

The Diffuser node consists a series of delays (FIFO buffers) and all-pass filters. A Depth value of 4 indicates that we use 4 stages here. This diffuser architecture is popular due to its simplicity and low cost. However, its output contains metallic artifacts, which are not ideal for creating a realistic reverb system.

For magic effects, the metallic artifact is precisely why we use this node to eliminate pop noises instead of a simple all-pass filter node. In nearly all of our magic graphs, you will find this node used immediately after the Modal Explosify node.

Since the Diffuser node doesn't track its output energy, it lacks a stop trigger. Therefore, to stop the graph, we simply delay the On Finished trigger of the Modal Explosify node by 0.1s. This delay is based on the values of the Depth and Feedback inputs. If you increase these values, you should also extend the delay to ensure the Diffuser node completes its process before stopping the graph. Otherwise, you might experience an abrupt cut-off at the output.


Further Improvements

Using the graph in this tutorial, you can create abstract sounds that are rich in mid to high frequencies with some metallic lingering effects. To enhance it further, consider the following techniques:

  • The effect might lack some depth (weak bass signals) since FMin is set at 500 Hz. Lowering FMin will alter the timbre and make the output too dark. A solution is to add a second Modal Explosify node with FMin set to 25 Hz and FMax at or below 300 Hz. This lets you fine-tune the bass gain without impacting the desired magical effect.

  • You can introduce chirp effects by adjusting the FMax or Freq Spread inputs during runtime. Use AD float envelope and mapping nodes for precise control over these values.

  • Experiment with different Distort Period values. Observe how the output changes when you increase the period to 0.1s.

In other tutorials, we will continue to explore these techniques in our modular magic graphs.

Subscribe to our newsletter

Comments


bottom of page