Skip to main content

Overview

VRSL includes full integration with AudioLink by llealloo, allowing fixtures to react dynamically to music without DMX input. This system provides an alternative control method ideal for club environments and music venues.
AudioLink integration uses the shader implementation for minimal overhead, avoiding CPU-side audio analysis entirely.

Architecture

The AudioLink system operates independently from DMX:

Frequency Band Mapping

AudioLink divides audio into four frequency bands:

Band Selection

The VRStageLighting_AudioLink_Static component exposes band selection:
Shaders access the selected band:

Amplitude Reading

VRSL samples AudioLink’s amplitude data with optional delay:
The main amplitude function:

Parameters

Band - Which frequency range to react to (0-3) Delay - Sample history in frames (0-127)
  • Higher values = more “lagged” reaction
  • Useful for creating delayed lighting effects
  • Stored in AudioLink’s history buffer
Band Multiplier - Sensitivity scaling (1.0-15.0)
  • Amplifies weak signals
  • Prevents over-saturation of loud music

Color Chord Integration

ColorChord analyzes audio for dominant notes and generates colors:
Used in emission calculation:
ColorChord mode overrides manual color settings and texture sampling, providing musically-driven color changes.

Theme Color Sampling

AudioLink provides four theme colors that can be set by world creators:
Theme colors are set via MaterialPropertyBlock:

Texture Color Sampling

Fixtures can sample colors from a custom texture:

Sampling Modes

Traditional Sampling - Uses raw RGB values from texture HSV Conversion - Extracts hue only, sets saturation and value to maximum
  • Creates pure, vibrant colors
  • Consistent brightness regardless of source texture

Component Configuration

The VRStageLighting_AudioLink_Static component manages all AudioLink properties:

Property Updates

All changes trigger MaterialPropertyBlock updates:
AudioLink fixtures can be toggled without DMX, making them ideal for testing or permanent audio-reactive installations.

Intensity Modulation

AudioLink amplitude modulates the final intensity:
Applied in fragment shader:

Laser Integration

The VRStageLighting_AudioLink_Laser component provides similar functionality for laser effects:

Laser-Specific Properties

Disabling for DMX Mode

When DMX is enabled, AudioLink can be automatically disabled:

HSV Color Conversion

For pure hue extraction from textures:

Performance Considerations

GPU Efficiency

  • AudioLink texture is sampled once per fixture per frame
  • Minimal ALU cost (single multiply for amplitude)
  • No branching in amplitude calculation
  • Compatible with GPU instancing
For Bass-heavy Music:
  • Band: Bass (0)
  • Delay: 0-10
  • Multiplier: 2.0-5.0
For Melodic Content:
  • Band: High Mids (2)
  • Delay: 10-30
  • Multiplier: 3.0-8.0
For Strobe Effects:
  • Band: Treble (3)
  • Delay: 0
  • Multiplier: 8.0-15.0
High band multipliers with loud music can cause epileptic-triggering strobing. Always test in context and provide user controls.

Example Setup

Configuring an audio-reactive fixture:
  1. Add VRStageLighting_AudioLink_Static component
  2. Assign mesh renderers to objRenderers array
  3. Configure AudioLink settings:
    • Enable AudioLink: ✓
    • Band: Low Mids
    • Delay: 15
    • Band Multiplier: 4.0
  4. Set color mode:
    • Enable Color Chord: ✓ (for automatic colors)
    • OR
    • Set Light Color Tint manually
  5. Adjust intensity ranges for desired effect

DMX System

Compare with DMX-based control

Shader Architecture

How shaders process AudioLink data