No announcement yet.

[SUPPORT] AudioAnalyzer

  • Filter
  • Time
  • Show
Clear All
new posts

  • started a topic [RELEASED] [SUPPORT] AudioAnalyzer

    [SUPPORT] AudioAnalyzer

    Click image for larger version  Name:	banner700store.png Views:	1 Size:	124.3 KB ID:	1573696

    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)
    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
    Supported Target Build Platforms:
    • Windows 64 bits
    • Android
    Supported Target Build Platforms:Documentation:
    API | Web | Changelog | Roadmap

    Example Project:

    Current version:



    Click image for larger version  Name:	Epicgameslogo.png Views:	1 Size:	6.0 KB ID:	1573697
    Last edited by BYC; 08-17-2019, 06:15 AM. Reason: Version 1.06

  • replied
    2019-08-17 v1.06

    – Added Get Spectrum Peaks. Now you can obtain a list with the most valued frequencies in real time.


    – Added thridparty decoders inclusion customization. Now you can select which decoder binaries can be included in your project. More Details



    – Added installation and set-up tutorial from Empty Project [Link]
    – Added manual installation and support notes for unsupported Marketplace versions, 4.19 and Older [Link]

    Leave a comment:

  • replied
    2019-07-10 v1.051

    – Added Ogg Vorbis Support
    – Added Flac Support
    – Fixed Android smoothness bug of some devices

    Leave a comment:

  • replied
    You don't have to do any special to include this plugin, just enable it in the plugin list.

    If it is your first project android deploy you can look to this guidelines to install and setup the engine for android platform:

    - Install NDK ans Android SDK for your target android version

    - Project setup

    - Packaging for android platform

    The Starter Project is ready for android platform, you can take a look to the Packaging Project section and Android to see how has been configured.
    If you have any error, put the log in this post and we will try to find a solution.

    Leave a comment:

  • replied
    Hi, I have the plugin set and working But IM not able to deploy to Android devices, is there any documentation on how to deploy and include the plugin in an android device?

    Leave a comment:

  • replied
    Sure, we have always wanted to modify the Projects section and fix the lack of documentation in the sample projects.
    I'm not very happy with the Documentation page but work with doxygen is a pain.

    Leave a comment:

  • replied

    Am I missing something obvious, in the example projects for AA where are the audio initializer parameters at? I don't understand how the AA_StarterProject picks up the sample.wav file. I'm trying to integrate the plugin into my project but I can't find the classes like Init Loopback Audio when searching for them, the plugin is enabled in the plugin viewer.

    EDIT: Found the Init parameters in the UI_InputSelector blueprint, StartPlayback function. Viewing the graph you can find the sample.wav file mentioned there. In order to find the Init parameter functions you need to create a blueprint based off of the AA class at the bottom when expanding all classes.

    If you could make the documentation a bit more straightforward on how and where to initialize the classes that would be great. Having some documentation on your examples for how they're built would also be much appreciated.
    Last edited by Vallamost; 05-27-2019, 04:56 PM. Reason: found answers

    Leave a comment:

  • replied
    2019-05-17 v1.04

    – Fixed special characters encoding of friendly device names, no more strange chars in audio device names.
    – Added GetInputDeviceNames, this node returns a list with input devices.
    – Renamed GetAudioDeviceNames to GetOutputAudioDeviceNames
    – Added Loopback Input, now you can capture the audio directly from the system device. You can do the analysis from the audio played from other applications. Nodes added:
      • Init Loopback Audio
      • Inix Loopback Audio Ex
      • Unload Loopback Audio

      • Get Default Device Loopback Audio
      • Set Default Device Loopback Audio

      • Start Loopback
      • Stop Loopback
      • Is Loopback Capturing

      • Get Loopback Capture Time

    More detailed info into Documentation page
    – Added new Example project: Loopback Test

    Leave a comment:

  • replied
    Each time you call GetBeatTrackingxxxx node the analysis is calculated for a window of time centered in the current playback time of the audio, this calculates the bpm value for the actual window (Current BPM). So, if you call it multiple times you obtain the bpm results of a lot of windows during the song.
    The Total BPM counter returns the bpm value that occur most often during all the song. (The most repeated Current BPM value of all the windows).
    If the song has too many "silences" for the analysis band then it can result it can increase the number of windows with a BPM value of 0, positioning the bpm-zero value as the most used by the song in that band.

    You can calculate the Current BPM in different positions of the song and take the average, but in my oppinion the most repeated BPM is more exact than the average BPM.

    Leave a comment:

  • replied
    Hello! I want to say thank you for this plugin, its really usefull, but i have few questions.
    First of all, what does 'total bpm' returns? Most of the time it returns zero for me for each frequency (low, high and bass);
    Second question is more about using this plugin plus music theory. How can i get total average bpm for whole track?

    Leave a comment:

  • replied
    Thanks a lot!!! It's Working

    Leave a comment:

  • replied
    You can obtain the analysis at specific time position using Set Playback Position + Get Amplitude / Get Spectrum nodes instead of a Play node.
    Click image for larger version  Name:	20190506-17_06_31Inicio.png Views:	1 Size:	47.7 KB ID:	1616069

    To define a custom range of the frequency analysis yuo must use the Init Spectrum Config WLimits node instead of the Init Spectrum Config node.
    You can set the low and high frecuency bound of the analysis bands. You only have two rules to make this list: sorted and no overlap.

    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)

    Click image for larger version  Name:	20190506-17_08_25Inicio.png Views:	1 Size:	55.2 KB ID:	1616070

    Leave a comment:

  • replied
    Is it can calculate frequencies and amplitude only realtime? can it calculate if audio not playing, calculation in separate second? And another question: can it calculate frequencies and amplitudes in separate range?
    Last edited by КомбоКоломбо; 05-05-2019, 05:28 PM.

    Leave a comment:

  • replied
    You can obtain this effect using the average frequency values of Get Spectrum node

    On each Tick Event, take only the average values greater than the current maxAverageValue for each bar, update the bar objects, and apply a decay to all values to obtain the falling effect.

    Click image for larger version  Name:	20190424-23_55_36Inicio.png Views:	2 Size:	213.1 KB ID:	1611782

    Last edited by BYC; 04-24-2019, 06:11 PM.

    Leave a comment:

  • replied
    Exactly. Thank you for the example.
    Originally posted by BYC View Post
    Something like the red lines of this video?

    Leave a comment: