Musical beat detection and audio spectrum analysis for use with the Unity game engine.
The AudioProcessor class contains an interface that can be implemented on your GameObject.
Add the AudioProcessor script to your Main Camera object and adjust the threshold parameter to change the sensitivity. Then set a callback delegate on the audio processor's onBeat or onSpectrum events.
public class Example : MonoBehaviour
{
void Start ()
{
//Select the instance of AudioProcessor and pass a reference
//to this object
AudioProcessor processor = FindObjectOfType<AudioProcessor> ();
processor.onBeat.AddListener (onOnbeatDetected);
processor.onSpectrum.AddListener (onSpectrum);
}
//this event will be called every time a beat is detected.
//Change the threshold parameter in the inspector
//to adjust the sensitivity
void onOnbeatDetected ()
{
Debug.Log ("Beat!!!");
}
//This event will be called every frame while music is playing
void onSpectrum (float[] spectrum)
{
//The spectrum is logarithmically averaged
//to 12 bands
for (int i = 0; i < spectrum.Length; ++i) {
Vector3 start = new Vector3 (i, 0, 0);
Vector3 end = new Vector3 (i, spectrum [i], 0);
Debug.DrawLine (start, end);
}
}
}