Skip to main content
The VRStageLighting_AudioLink_Static component enables lighting fixtures to react dynamically to music through AudioLink integration. It provides frequency band reactivity, color sampling, theme colors, and automatic movement options.

Overview

This component allows fixtures to respond to audio in real-time, creating immersive music-reactive lighting experiences. It supports AudioLink’s four frequency bands, Color Chord integration, texture sampling, and theme color synchronization.

Inspector Properties

Enable or disable Audio Link reaction for this fixture.
AudioLinkBandState
default:"Bass"
The frequency band of the spectrum to react to. Options:
  • Bass - Low frequencies (kick drums, bass)
  • Low_Mids - Low-mid frequencies
  • High_Mids - High-mid frequencies
  • Treble - High frequencies (hi-hats, cymbals)
int
default:"0"
The level of delay to add to the reaction. Higher values create a trailing effect behind the audio.
float
default:"1.0"
Multiplier for the sensitivity of the reaction. Higher values make the fixture more reactive to quieter sounds.
bool
default:"false"
Enable Color Chord tinting of the light emission. Color Chord analyzes musical notes and assigns colors accordingly.

General Settings

float
default:"1"
Sets the overall intensity of the shader. Good for animating or scripting effects. Maximum value controlled by finalIntensity.
float
default:"1"
Sets the maximum brightness value of Global Intensity. Good for user-controlled brightness settings via UI.
bool
default:"false"
Choose between setting Final Intensity for all meshes, or individual mesh types separately.
float
default:"1"
Sets maximum brightness for volumetric meshes only (when Component Mode is enabled).
float
default:"1"
Sets maximum brightness for projection meshes only (when Component Mode is enabled).
float
default:"1"
Sets maximum brightness for fixture meshes only (when Component Mode is enabled).
Color
default:"Color.white * 2.0f"
The main color of the light. Will be modulated by AudioLink data and Color Chord when enabled.
bool
default:"false"
Enable sampling a separate texture for color. The color will be influenced by the intensity of the original emission color.
bool
default:"false"
Use traditional color sampling instead of white-to-black conversion.
Vector2
default:"(0.5, 0.5)"
The UV coordinates to sample color from on the texture.
bool
default:"false"
Enable AudioLink Theme colors for synchronized color schemes across all AudioLink-enabled elements.
int
default:"1"
Which AudioLink Theme Color to sample from (1-4).

Movement Settings

Transform
The target transform for this moving head fixture to follow. Useful for performer tracking or audio-reactive movement.

Fixture Settings

float
default:"4.0"
Projection spin speed. Negative values spin counter-clockwise. Only active when enableAutoSpin is true.
bool
default:"false"
Enable automatic projection spinning.
int
default:"1"
Use this to change which projection pattern is selected.

Mesh Settings

MeshRenderer[]
required
Array of mesh renderers that make up the light fixture. At least one mesh is required.
float
default:"2.5"
Controls the radius of a mover/spot light cone.
float
default:"1.0"
Controls the length of the cone of a mover/spot light.
float
default:"8.5"
Controls the mesh length of the cone of a mover/spot light.

Configuration Steps

  1. Add the VRStageLighting_AudioLink_Static component to your fixture GameObject
  2. Assign the fixture’s mesh renderers to the objRenderers array
  3. Enable enableAudioLink
  4. Select a band (Bass for bass-reactive, Treble for high-frequency reactive, etc.)
  5. Adjust bandMultiplier to control sensitivity

Color Chord Setup

For music note-based color reactions:
  1. Enable enableColorChord
  2. Set a neutral lightColorTint (white recommended)
  3. AudioLink will automatically assign colors based on musical notes

Theme Color Synchronization

To match colors with other AudioLink elements:
  1. Enable enableThemeColorSampling
  2. Set themeColorTarget (1-4) to choose which theme color to use
  3. All elements using the same theme color will stay synchronized

Texture Sampling

For video or gradient-based colors:
  1. Enable enableColorTextureSampling
  2. Set textureSamplingCoordinates to sample from desired UV position
  3. Configure the texture in the fixture’s shader material
  4. Enable traditionalColorTextureSampling for full RGB sampling

Target Following

For automatic fixture tracking:
  1. Assign a Transform to targetToFollow
  2. The fixture head will automatically aim at the target
  3. Useful for following performers or creating spotlight effects

Example Setups

Bass Reactive Wash Light

Color Chord Moving Head

Theme Color Synchronized Light

Texture Sampled Video Light

Integration with Other Components

Requires an AudioLink prefab in the scene:
  • Place the AudioLink prefab in your world
  • No direct reference needed - uses global textures
  • Fixtures automatically detect AudioLink presence

Local UI Control Panel

Integrates with VRSL_LocalUIControlPanel for:
  • Global intensity control for all AudioLink fixtures
  • Quality mode settings
  • AudioLink enable/disable toggle
  • Per-mesh-type intensity in Component Mode

DMX System

Can coexist with DMX fixtures:
  • Use Control Panel to enable both DMX and AudioLink modes
  • Mix DMX and AudioLink fixtures in the same scene
  • Some fixtures can switch between modes dynamically

Public Methods

_UpdateInstancedProperties()

Forces an update of all material properties. Call after changing properties via Udon. Updates properties with AudioLink disabled. Useful for temporarily disabling AudioLink reactivity.

_SetProps()

Initializes the MaterialPropertyBlock. Called automatically on Start.

Udon Script Properties

Access these properties from Udon scripts:
  • EnableAudioLink - Get/Set AudioLink enabled state
  • Band - Get/Set frequency band (AudioLinkBandState enum)
  • Delay - Get/Set reaction delay (0-127)
  • BandMultiplier - Get/Set sensitivity multiplier (1-15)
  • LightColorTint - Get/Set light color
  • GlobalIntensity - Get/Set global intensity (0-1)
  • FinalIntensity - Get/Set maximum intensity (0-1)
  • ConeWidth - Get/Set cone radius
  • ConeLength - Get/Set cone length
  • SelectGOBO - Get/Set selected projection (1-8)
  • SpinSpeed - Get/Set projection spin speed
  • ProjectionSpin - Get/Set auto spin enabled
  • ColorChord - Get/Set Color Chord enabled
  • ColorTextureSampling - Get/Set texture sampling enabled
  • ThemeColorSampling - Get/Set theme color enabled
  • ThemeColorTarget - Get/Set theme color slot (1-4)

Performance Notes

  • Supports up to 5 mesh renderers per fixture
  • Uses MaterialPropertyBlock for efficient rendering
  • Component Mode allows granular intensity control
  • AudioLink adds minimal overhead when properly configured
  • Higher delay values create smooth trailing effects but use more memory

Frequency Band Guide

  • Bass: Best for low-energy, pulsing effects. Reacts to kick drums and bass instruments
  • Low_Mids: Good for mid-range energy. Reacts to vocals and rhythm instruments
  • High_Mids: Great for melodic content. Reacts to lead instruments
  • Treble: Perfect for high-energy, fast reactions. Reacts to hi-hats and cymbals

See Also