AudioAnalyzer – FAQ


I suffer sluttering playback and glitches on android platform

The default playback buffer size is set to 1024 frames, it can be too low for some android devices resulting in audio playback glitches.
You can increase the buffer size using the Init Player Audio Ex node and power 2 values like 2048 or 4096.

Init Player Audio nodes

Go to index

I got a notification “Plugin failed to load” when the packaged build starts, only on android arm64 platform

The UE4 marketplace plugin builder system doesn’t create the binaries of android arm64 platform so you get the error:
Plugin ____ failed to load because module ____ could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project.

Android error capture

This is only a workaround until Unreal Engine 4 team fixes the thirdparty plugin builder system. Just move the AudioAnalyzer folder from your Engine Plugins folder
to your project (ProjectFolder\Plugins\Marketplace\AudioAnalyzer\)

If you are using the plugin in more than one project you can place a copy in each project

Go to index

No sound on packaged build

You need to add the non-assets folder that contain the sound to the directories to package list Project Settings > Project > Packaging > Additional Non-Assets Directoris to Package

Project Settings

Go to index

I have updated from an older version to Unreal Engine 4.24 and now I get a lot of references errors

You need to follow this guideline to rename the references (IMPORTANT: UPGRADE NOTES)

Go to index

How can take only certain frequencies of the spectrum?

Using the _WLimits nodes you can define your custom frequency bounds for each band with the parameter Band Limits

You can define the lower and higher bounds for each band independently using a 2D array. Each component of the array define the bounds for that band. You will have as many bands as the array size.

But, for optimization, the intervals must be sorted and with no overlaps. They are closed intervals so you can’t start an interval with the same value used to end the previous interval
So an example of valid bounds array:

And an example of invalid bounds array:
10-40 (overlap frequency 10Hz)

5-40 (overlap frequencies 5-10Hz)

To access to the analysis result of each band you can use the same method used with the predefined bands bounds.

Go to index

I obtain 0.0 values in some custom defined bands but I obtain non-zero values with predefined bound

The reason is the size of the interval of that band. The size is too small for the rest of parameters.

For a 0.02s window with a 44100 sample rate audio the minimal frequency bucket is:
Num_samples = 44100 * 0.02 = 882 (now we search for a window size power 2 to fit that number samples (1024), this is the size of our FFT analysis)
So each FFT result position represent a band of 44100 / 1024 = 43.0660 hz

So the minimal valid interval size is 44 HZ

If you want to use smaller interval values you need to increase the Time Window. For example with a window of 0.03s
44100 * 0.03 =1323 -> next power 2 value 2048
44100 / 2048 = 21.53 hz
Now the smallest allowed size for a band interval is 22 hz

Go to index

Support this blog!

For the past year I've been dedicating more of my time to the creation of tutorials, mainly about game development. If you think these posts have either helped or inspired you, please consider supporting this blog. Thank you so much for your contribution!