- I suffer sluttering playback and glitches on android platform
- I got a notification “Plugin failed to load” when the packaged build starts, only on android arm64 platform
- No sound on packaged build
- I have updated from an older version to Unreal Engine 4.24 and now I get a lot of references errors
- How can take only certain frequencies of the spectrum?
- I obtain 0.0 values in some custom defined bands but I obtain non-zero values with predefined bounds
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.
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.
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
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
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)
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.
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
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!