Download

[SUPPORT] AudioAnalyzer

banner700store.jpg

Audio Analyzer is a plugin for Unreal Engine 4 that allow you to visualize the waveform and frequency spectrum of an audio file in real-time. Also can detect the beats of any audio source in realtime by using frequency spectrum analysis (FFT).
Can be used in your games or applications and make your games react to the music. It is really easy to configure.

Current features

  • Amplidute analysis
  • Frequency spectrum
  • Basic beat tracking
  • BPM tracking
  • Works with audio file, microphone and loopback input
  • Support cooked builds
  • Android Mobile friendly
  • Full source C++ included
  • Wav, mp3, ogg, flac supported
  • Loopback support (What-you-hear) (only Windows)
  • Offline analysis (Amplitude sections)

Technical Details

See below documentation to a detailed explanation of the plugin integration and supported audio files.
Number of Blueprints: 0
Number of C++ Classes: 15
Network Replicated: No

Supported Development Platforms:

  • Windows
  • Linux
  • Mac (Experimental)

Supported Target Build Platforms:

  • Windows 64 bits
  • Android
  • Linux
  • Mac
  • IOS (Experimental)

Supported Target Build Platforms:

Documentation:
API | Web | Changelog | Roadmap

Example Projects:
Projects
Current version:
1.09
Videos

**
https://www.youtube.com/watch?v=WfWX-iZ75aE
https://youtube.com/watch?v=jui7PQEMoRc
https://www.youtube.com/watch?v=ar-ae0u-BJo
https://youtube.com/watch?v=3FlAD0IKfjMhttps://youtube.com/watch/IKOFXBDwxyghttps://youtube.com/watch?v=HADQlmfGVg0** Marketplace
Epicgameslogo.png

Can you confirm plz that this bug has no effect on this plugin on android platform? + how is the performance on android?

another question: can I get how player is loud from microphone?

To be honest , since ages i’m waiting for a plugin like this , i hope you clear all my worries by answering my questions if possible so I can buy it with confidence

This plugin uses the SDL2 library to capture and play audio, since this plugin uses an external audio system we don’t have been affected by that issue.
You can get the amplitude of the microphone input to know how loud is the sound.

Mate, you dont know how awesome you are by providing this ,but u still didnt answer the performance question:D
and any time range will you release it to support iOS too?

I’m asking bec, I’m going to deprecate a big part of my project to switch to your plugin, so I just want to make sure before jumping in:D

Well, the performance depends on what you want to draw on the mobile more than the analysis cost.

For example this 16x16 grid runs at 60 fps on a Mi4C
https://youtube.com/watch?v=Rp1aZq2k9Eg

If you have any c++ performance test to run and compare I can pass the code by that test and give you the results.

IOS support still has no release date. At this moment we have no hardware to build and test on IOS platform and we have no room for add more changes until April, so it will have to wait at least 2 months more.

Awesome, I hope that in short time u get the hardware to build your plugin on iOS soon.

once I get the plugin and test in on my game, I will write a full review.

Have great day.

One last technical question and I’m done, is there a delay during microphone input analyses, or its real-time?

Its real-time.

Hello, I bought a plugin, installed to 4.21, downloaded your Example, right click on the project file and selected 4.21 as Engine, it asked to rebuild the project file, it created: .vs folder, Tester_AudioAnalyzer.sln file, I clicked on the project and opened it in 4.21, click Play and tested the project, seems okay, then I exported to Windows 64 build and it stuck for 5 hours, how long do you think it’s going to take to finalize the package?

Upd: After 8 hours of waiting, I had to interrupt the build. Please help

The package process only take some minutes.

Can you attach the build logs to see where is stuck?
and your system details?

Hello, I was able to build it after a few attempts and restarts, cleaning the Saved/Intermediate folders it built well, but the thing is, it’s building not from the first time of the project run, you have to close the project and open it again to build successfully.

Can you please help with some basic tutorial? For example: Take two music files to play .wav and add one Beat to Cube SCALE and another for Cube’s material OPACITY and lets them play, but the sound from those two .wav should be muted. Because the third music file is going to be the main game soundtrack. How can I do it, please? I can’t figure out yet with such simple demo. Thank you.

I just added an starter project to the marketplace page.

We will add multichannel support in the next update. For current version you need to make two instances of AudioManager and use each analysis output separately. You can synchronize the playback of both managers with our player nodes.

I have prepared a basic project using two .wav files. I’m using the spectrum frequency results of the beat tracking analysis, but you can mask the values using the Beat array result to only change on beat onset. The drum .wav file change the cube scale and the piano .wav file the opacity.

https://youtube.com/watch?v=BuciGZ2bXF4

Project files](https://www.parallelcube.com/content/binaries/AudioAnalyzer/AA_CubeDemo_1.zip)

To mute the playback you can use SetPlaybackVolume and set Volume to 0
20190207-19_53_29Inicio.png

Thank you so much for demo, it working perfectly! :slight_smile:

Hey mate, great plugin. Got a bug for ya :wink:

When there is no audio output (i.e. when a computer has no speakers connected, the little windows speaker in the taskbar has a little red x), the plugin doesn’t work. I realise this may be by design, or just a scenario not yet encountered. Could you please adjust it to make it work even when there is no audio output?

Steps to reproduce - open your sample project and run as normal, with speakers disconnected (ensuring the windows taskbar speaker icon has a little red x, indicating no connected audio outputs). The UI Input Selector blueprint will print “Player Error” to the screen.

Many thanks, keep up the good work > : )

At least you can use the mic input with no speakers :stuck_out_tongue:

Without a Sound Device you can’t interact with a sound file so I think the behavior is correct.

In a future release I want to add a node to feed audio raw data directly to the plugin so this can be a workaround to this issue.

I see updates of BPM Detection, MP3 Support, and M3U support. I would definitely love to hear any ETAs about this info.

Thank you for making this plugin, I literally would by it again per update above.

I am excited and looking forward to continuing to develop on what I’ve made using what you made as you continue to develop! :slight_smile:

Feel free to loop me in as a beta tester :stuck_out_tongue:

Thank you,
-Brandon

Hi

Yes, we have an update ready to be released for this week, since it is a major update we are doing some testing yet. We want to start the MP3 support development the next week.
Here you have the changelog *preview *for the version 1.02

– Fixed crash on wrong sound path
– Added channel selection mode in visualizer initialization channelselectionmode.png

  • All in one: Accumulates all channels data into only one array
  • Select one: Returns only the channel specified in Channel option
    channelselectoneopt.png
  • Split all: Returns each channel into one array. Use “By Channel” nodes to retrieve the results

New amplitude analysis configuration node. Now Amplitude analysis use the same node structure as frequency spectrum and beat tracking analysis. Initialization + Getter
– Removed GetAmplitude parameters

Added multi-channel Support. Now you can retrieve the results for each channel separately, select Split_all option in “Channel selection mode” during the analysis configuration and use the “By Channel” nodes to retrieve the results.

Changed GetBeatTrackingVariance node, now calculates Average and Variance with the same node. If you only need the average result you can continue using GetBeatTrackingAverage node

Added Beat-per-minute counters to Beat Tracking nodes, now you can track the bpm of an interval of beat tracking samples and the accumulated result.

Hi, thanks for the plugin. Anyone have guidance on how to add a smoothing function to filter input values logarithmically between changes to smooth the stream of continuous data? I’m looking to do what most VJ software does (VDMX, Resolume, Max/MSP) to smooth out the falloff of peaks. It’s great to get realtime for seeing the amplitude jump up, but nice to be able to smooth out the amplitude on the way back down.

Something like the red lines of this video?
https://youtube.com/watch?v=5cN1VzZXcdo](https://www.youtube.com/watch?v=5cN1VzZXcdo)

2019-04-18 v1.03
– SDL2 library updated to 2.0.9
– Added **mp3 **format support on Win64 and Android Platforms
– Added ID3 tags support v1 and v2 metatagnode1.png

– Added Format Test UE4 Project [UE4 Sample Projects]](AudioAnalyzer – Proyectos – Parallelcube)
– Changed **GetFolderFiles **to Impure function to avoid extra calls, now must be explicitly executed by connecting exec wires. newgetfolderfiles1.png

– Added new player node with more options: Loop playback and Starting time.
You can define the number of loops and bind and event for each loop end too. Each loop starts from StartTime position.
newplayoptions1.png

– Added** Audio Device selection** nodes.
Now you can select the audio device to play and capture the sound.** Set default Device(s) Player/Capturer Audio node must be called before Init Player/Capturer Audio node**.
If the default audio device is not set then the system default audio device is selected.

More detailed info into Documentation page](https://www.parallelcube.com/content/docs/audioanalyzer/blueprint_page.html)