BeatIt

Plugins BeatIt

BeatIt is an audio analyzer that sends trigger messages to anywhere in the scene based on the intensity of certain frequencies in the music or audio (e.g., bass). This version of an audio analyzer uses automatic calibration and volume compensation to deliver always the same reponses regardless of the volume of the Audio Source used, and it allows for full configuration of up to 8 frequency bands to look at.

BeatIt v1 01.jpg


I derived the code for this plugin from VAMAudioAnalyzer by @hazmhox (now retired and redirecting to this plugin) which I am using a lot, but always struggle with the low reponses from audio sources that are down to 0.1 or 0.2 volume so not to blast my eardrums and overpower the rest of the scene. I had to dig out quite a lot of my university knowledge to get back up to speed around FFT analysis and how to interpret the results from the Unity engine.
I also made the 8 frequency bands configurable, so you can analyze any frequency and bandwidth necessary for the specific music or sounds used.

Due to the limited UI real estate, the slider Band to Edit opens up each band one by one to change parameters. By default, the slider is on "None" and simply shows the spectrum response of the bands to get a feeling for the audio you are using.
The default settings for the frequency bands should deliver a similar result to VAMAudioAnalyzer's default bands.

BeatIt_HowTo1.jpg


By selecting a Band to Edit, the controls for that band open up and allow you to edit the band's (Center) Frequency and the Bandwidth. As an example, a Center Frequency of 500 and a Bandwidth of 250 will make that band return the overall energy of the frequencies between 250Hz (500Hz - 250Hz) and 750Hz (500Hz + 250Hz).
With the Band x Triggers, you define Transition Actions that control "stuff", e.g., foot movement, speaker scale, etc.
Since v1.3 (var 5), bands can now also be turned on/off via a UI toggle and/or other plugins.

BeatIt_HowTo2.jpg


The sliders for the overall response (Rise Ratio, Fall Speed, Fall Acceleration) are also similar in function to VAMAudioAnalyzer, but should be framerate-independent (not that I can test that much with only one computer...). They change the attack and decay speed of the band responses.
  • Rise Ratio determines how quickly a bar rises (0: not at all, 1: immediately)
  • Fall Speed controls how fast a bar returns to zero (higher value: faster)
  • Fall Acceleration controls how much that fall speed is increasing (1.0001=not, higher value: faster)
  • Volume Compensation determines how much a change of the overall volume changes the responses (0: totally changes the responses, 1: volume change is compensated and responses should stay similar)
    !! This slider is only available on direct AudioSources (e.g., AudioSource, Speaker, Person), but not when using the AudioListener !!
The best way to get a feeling for how everything works is to fiddle with the demo scene.
That scene has one analyzer on the "SpeakerL" atom (which also plays the music), one on the "Microphone" atom, which is listening to the scene audio overall (not your actual physical microphone), and one on the "Woman" atom.
The Microphone analyzer drives the little blue VU meter bars. The SpeakerL analyzer drives things like the light rotation, speaker scale (on the low frequencies - nice effect to make a bass "feel"even more oomph-ish), feet/hand target angles of the woman so she taps in the rhythm of the music, and an animation pattern on the dildo to make it jump. The person analyzer drives her eye colour when she says something.
There are two buttons on the sofa for test music (?1, ?2), one for a 20Hz-20kHz sweep (?/, let's test those woofers), one for stop (■), and one to make her say a sentence (V). The red button is for testing the plugin on an atom that generates sound. The checkboxes at the spectrometer columns can turn bands on and off.
Author
HAL9001
Downloads
165,587
Views
165,587
Favorites
1
Packages
1
Total Size
0.35 MB
Version
v1.3 (var 6)
First release
Last update
Rating
5.00 star(s) 5 ratings

More resources from HAL9001

Latest updates

  1. v1.3 (var 6): Jumping Dildo

    No change to the code, but due to several questions in the forum, I added an example to the demo...
  2. v1.3 (var 5): Turn me on, Turn me off

    Two new features and one UI change: Added toggles to turn channels on/off. Exposed all bands'...
  3. v1.2 (var 4): A bit more detail + More test atoms

    Two minor changes Added a bit more detail to the output when no AudioSource is found. Added two...

Latest reviews

Perfect !!!
HAL9001
HAL9001
Thanks :-)
Upvote 0
In daily use... a must have if you like flashing lights synched to music.
HAL9001
HAL9001
Good to hear :-) Thanks
Upvote 0
at first i thought "oh an internal EQ? awesome!"
but then and since you already can handle this data, i thought it is now possible to create an automated real time visualizer? i am not sure how to use these triggers yet but i just wanted to say great job and thank you.
HAL9001
HAL9001
Oops, better late than never: thanks for the feedback :-)
Upvote 0
Works great. Being able to have a lower volume while retaining the frequency response is really nice.
HAL9001
HAL9001
Thank you - glad it works for you :-)
Upvote 0
Love it! This helps my people have better rhythm to some of the bass heavy tracks I add... Thanks for sharing!
HAL9001
HAL9001
Thanks. Glad it works :-)
Upvote 0
Back
Top Bottom