# OSCAudioReceiver

This plugin enables the receiving of audio analysis data over OSC.

Receiving audio analysis enables you to use the various Audio Blocks to create audio reactive scenes.

{% embed url="<https://youtu.be/EbdbSbtwrvA>" %}

## How To Use

First you need to enable this plugin using the [Settings](https://docs.scenic.tools/guide/views/settings) menu.

Afterwards you need something to generate the OSC messages containing the audio analysis. For this you can use the vvvv beta based [**Audio Analysis Sender**](https://docs.scenic.tools/tools/audio-analysis-sender) tool available from the [itch.io](https://domj.itch.io/schema) page.

Or if you're feeling adventurous, roll your own! Refer to the message format below.

## Message Format

The audio analysis is transferred using OSC and expects the following addresses wrapped in a bundle:

* /audio/0/samplerate (Float)
* /audio/0/beats (4x Boolean)
* /audio/0/level (Float, normalized)
* /audio/0/fft (32x Float, other counts are also acceptable)
* /audio/0/bpm (Float)
* /audio/0/periodpower (Float, normalized)
* /audio/0/peakpower (Float, normalized)
* /audio/0/pitch (Float, normalized)

{% hint style="info" %}
The 0 indicates the channel index. Currently only one channel is supported.
{% endhint %}

### Sample Rate

The audio device sample rate, eg. 44100, 48000, ...

### Beats

Beat bangs from beat detection in 4 frequency bands from lowest to highest.

### Level

Immediate audio power - RMS

### FFT

Immediate levels in multiple frequency bands acquired using Fast Fourier Transform.

### BPM

Beats per minute, eg. 128, 140, ...

### Period Power

Averaged audio power over a longer period of time, useful for discerning between breaks and drops.

### Peak Power

TODO 😋

### Pitch

Current audio pitch, normalized to values between 0 and 1.
