Audio Analysis Tools Documentation

Jul, 24 2021— #docs

Audio Analysis Tools plugin for Unreal Engine. Supports Envelope Analysis and Onset (Beat) detection.

Works in conjunction with the Runtime Audio Importer plugin.

How to install

There're two ways to install the plugin:

  1. Through the marketplace.
  2. Manual installation. Open this GitHub Repository, extract the "AudioAnalysisTools" folder into your plugins project folder to get the following path: "[ProjectName] / Plugins / AudioAnalysisTools".

How to use

Depends on what exactly you want.

If you want to analyze the Envelope, choose one of theese methods (first option recommended since it's shorter and more convenient):

  1. Create Audio Analysis Tools -> Bind Event to On Envelope Analysis Finished -> Import Audio and Analyse Envelope.
  2. Or the same, but longer version (manually): Create Runtime Audio Importer -> Bind Event to On Result -> Import Audio from File (or from PreImported Sound). From the binded event: Create Envelope Analysis -> Bind Event to On Analysis Finished -> Analyze Envelope from Imported Sound Wave.
Screenshot showing the above two examples of Envelope Analysis

Screenshot showing the above two examples of Envelope Analysis

If you want to detect the Onset:

  1. Create Audio Analysis Tools -> Bind Event to On Onset Detection Finished -> Import Audio and Detect Onset
  2. Or the same, but longer version (manually): Create Runtime Audio Importer -> Bind Event to On Result -> Import Audio from File (or from PreImported Sound). From the binded event: Create Envelope Analysis -> Bind Event to On Analysis Finished -> Analyze Envelope from Imported Sound Wave. From the binded event: Create Onset Detection -> Bind Event to On Detection Finished -> Detect Onset from Envelope.
Screenshot showing the above two examples of Onset Detection

Screenshot showing the above two examples of Onset Detection

Basic description

The plugin assumes to analyze the audio data in advance. All data is analyzed immediately (not during sound playback).

There are two main features:

Description of structures and enumerators

Here are descriptions of structures and enumerators that are used in the plugin as input and output parameters of certain functions.

AudioImportingStruct structure. Specifies information about importing audio.

EnvelopeAnalysisStruct structure. Specifies information about envelope analyzing.

EnvelopeTimeData structure. Envelope data including amplitude and time.

AnalysedEnvelopeData structure. Envelope data including EnvelopeTimeData and arithmetical mean

EnvelopeAnalysisStatus enumerator

EnvelopeMode enumerator.

OnsetDetectionStruct structure. Specifies information about onset detection.

  1. AnalysedEnvelopeData. Envelope data including EnvelopeTimeData and arithmetical mean. It is filled automatically from the Envelope Analysis.
  2. OnsetThreshold. Information about different Onset Threshold properties. Defines how strongly and smoothly the Threshold will be adjusted depending on different parameters of the amplitude deviation. The default values are the most optimal.
  3. BufferDetectionLength. The number of stored elements in the buffer for the detection analysis (recommended range: 32-48).
  4. DetectionTimeoutFeature. Information about the Timeout Feature. Causes the Onset to be detected, even if it was not detected, in case too much time has passed. Can be disabled.
  5. DetectionStepUnitFeature. Information about the Step Unit feature. Detects onset with delay so that it is not detected too often. Can be disabled.
  6. OnsetMultiplier. By how much to multiply the value of each element of the variable. This is not necessary, but it can be useful as it is more optimized than doing it manually after analysis.

OnsetDetectionStatus enumerator.

OnsetThreshold structure. Information about different Onset Threshold properties. Defines how strongly and smoothly the Threshold will be adjusted depending on different parameters of the amplitude deviation. The default values are the most optimal.

By Georgy Treshchev

Unreal Engine Developer. Contact for any questions. Telegram chat, e-mail, Github.