KlakLASP is an extension for Klak to create audio reactive behaviors with using the Klak Wiring system.
KlakLASP integrates the LASP plugin to analyze audio signals. Thanks to the low-latency nature of LASP, it doesn’t introduce noticeable delays between audio input and actions.
- Unity 2017.1 or later
At the moment, KlakLASP only supports Windows (64 bit) and macOS (64 bit).
Then, download one of the unitypackage files from the Releases page and import it to the project.
How It Works
The Audio Input node has a VU meter in the inspector, and it shows how the node analyzes input audio signals and determines output.
The node tracks the recent peak amplitude of the input audio signals, and determine the output based on the difference between the current amplitude and the peak amplitude.
When the current amplitude is equal or larger than the peak amplitude, it outputs a value of 1. The VU meter indicates over-peak input with a red band (see the image below).
When the current amplitude is smaller than the peak amplitude and larger than the value of (peak amplitude - dynamic range), it outputs a value between 0 and 1 that varies based on the position in the dynamic range. This range is indicated with a gray band in the VU meter (see the image below).
When the current amplitude is equal or smaller than the value of (peak amplitude - dynamic range), it outputs a value of 0.
The peak amplitude value slowly decreases by time to adapt itself to the recent amplitude level. The GIF above shows this behavior that the peak amplitude and the dynamic range are slightly slid to the left while the input doesn’t hit the peak.
Note that the peak amplitude doesn’t exactly match with the actual peak of the input signals – there is a small margin between them, so that it increases the chance of hitting the peak.
Audio Input Properties
Four types of filters are available – Bypass, Low-Pass, Band-Pass and High-Pass. These filter are useful to detect rhythmic accents. For instance, the Low-Pass filter can be used to make a behavior that reacts to kick drums or a bassline.
Dynamic Range (dB)
Specifies the difference between the lowest amplitude and the highest amplitude in decibel.
Auto Gain Control
When enabled, it automatically adjust the amount of the gain based on recent peak of amplitude (as explained in the How It Works section). When disabled, the peak amplitude is fixed to 0dB, and the amount of the gain is manually controlled by the Gain property.
Hold And Fall Down
Enables the “peak-hold and fall down” behavior that is commonly used in VU meters. This is useful to make animation smoother. The GIF below shows the difference between with/without this option.
Dynamic Range = Clickiness of Behavior
Although having a wide dynamic range is important for expressiveness, it tends to make behavior slower and unclear. It’s recommended reducing the dynamic range when “clicky” behavior is preferred.
Use internal audio sources
LASP Loopback can be used as a substitute of the LASP plugin. It analyzes audio output from Unity instead of external audio sources. This is useful to create audio reactive behaviors with internal audio sources.
- LASP always tries to use the system default device for recording. There is no way to use a device that is not assigned as default.
- LASP only supports monophonic input. Only the first channel (the left channel in case of stereo input) will be enabled when using a multi-channel audio device.