Current version 2.0.08.26

Documentation

AudioCue Authoring

Configure variants, playback, spatial audio, mixer routing, equalization, concurrency, preview, and WAV export.

An AudioCue is a reusable ScriptableObject that describes what may play and how it should sound. Runtime selection state belongs to AudioManager, so normal playback does not modify or dirty the asset.

Create a cue through:

Assets > Create > Paper Lynx Studio > AudioCue > Audio Cue

The Inspector keeps the Variants list visible and divides detailed controls into Variant, Playback, Processing, and Advanced tabs.

Variants

Drag AudioClip assets into the drop area or add entries to the Variants list. Each entry stores:

  • AudioClip reference
  • selection weight
  • start time
  • end time
  • fade-in duration
  • fade-out duration

Select an entry to edit its waveform and timing. Reorder entries when Sequential mode should use a different order.

A variant is playable when it has a non-null AudioClip and its resolved end time is greater than its start time. Null or zero-duration entries are skipped by runtime selection.

Selection modes

Random No Repeat

Selects a random playable variant while avoiding the immediately previous variant when more than one is available. This is the default and is useful for footsteps, impacts, and repeated interactions.

Weighted Random

Uses each playable variant's non-negative Weight. Weights are relative and do not need to total 1 or 100. For example, weights 6, 3, and 1 produce a 60%, 30%, and 10% distribution.

If all playable variants have zero weight, the first playable entry is selected.

Sequential

Advances through playable variants in list order and wraps after the last entry. Null and invalid entries are skipped.

Random and sequential history is stored by AudioManager per AudioCue. The ScriptableObject remains free of mutable selection state.

Variant tab

The Variant tab controls the selected entry.

Waveform and handles

The waveform shows the selected clip. Drag the handles or edit the numeric fields to set:

  • Start: first sample time used by playback and export
  • End: last sample time used by playback and export
  • Fade In: time from silence to cue volume
  • Fade Out: time from cue volume to silence

Start and end are clamped to the source clip. Fade durations are clamped to the selected segment duration.

If sample data is unavailable, select Prepare Clip for Editing. This explicitly changes the source importer to a readable configuration and reimports the clip. AudioCue does not silently change importer settings.

Preview

Use Play, Pause, Resume, and Stop to audition the current authoring result in the Editor. Preview applies the cue delay, pitch, volume, selected range, fades, mixer group, spatial settings, and equalizer.

Preview is temporary. It does not require an AudioManager in the open scene and does not create a persistent scene object.

WAV export

Export creates an uncompressed PCM WAV from the selected start/end range. Choose whether to bake:

  • the selected variant's fade envelope
  • the cue's three-band equalizer

The destination must be below the project's Assets folder. After export, Unity imports the WAV and AudioCue adds it as a new variant.

An exported variant records which processing was baked. Runtime and preview bypass the corresponding fade or equalizer for that variant so processing is not applied twice.

The source AudioClip is never overwritten or destructively edited.

Playback tab

Selection Mode

Chooses Random No Repeat, Weighted Random, or Sequential behavior as described above.

Loop Mode

  • Off: complete after one selected segment
  • Repeat Selected: repeat the same selected variant
  • Reselect Each Loop: select another variant using the active selection mode on each iteration

Volume

Sets the target source volume from 0 to 1. Variant fade envelopes multiply this value during playback.

Pitch Range

Chooses a random pitch between the two configured values for each new voice. AudioCue accounts for the resulting playback duration when ending the selected segment and applying fades.

Delay

Waits in the Scheduled state before starting the AudioSource. Pausing a scheduled voice freezes the remaining delay.

Processing tab

Mixer routing

Assign an optional AudioMixerGroup. Leave it empty to use the normal AudioSource output path.

Three-band equalizer

Enable Equalizer to apply nondestructive runtime processing:

  • Low shelf: 120 Hz
  • Mid peak: 1 kHz, Q 0.707
  • High shelf: 8 kHz
  • Gain range: -12 dB to +12 dB per band

The response graph is calculated from the same coefficients used by runtime playback. Parameter changes are smoothed over 20 milliseconds. Disabled or flat EQ bypasses processing.

The DSP supports up to eight channels. A clip with more channels plays with EQ bypassed and produces an Inspector warning.

Spatial override

Enable Override AudioSource to apply the cue's spatial settings to each voice:

  • Spatial Blend
  • Reverb Zone Mix
  • Doppler Level
  • Spread
  • Volume Rolloff mode
  • Min Distance
  • Max Distance
  • custom volume, spatial blend, spread, and reverb curves

Leave the override disabled to use AudioCue's normal reset AudioSource defaults. For audible 3D positioning, increase Spatial Blend and use PlayAt, PlayAttached, or an AudioCuePlayer with Follow Transform enabled.

The graph previews volume, blend, spread, and reverb across the configured distance range. Custom curve fields use normalized distance from Min Distance to Max Distance.

Advanced tab

Priority

Uses Unity's AudioSource scale from 0 to 256. Lower values are more important. When voice stealing is required, AudioManager selects the active voice with the numerically highest priority value. Equal-priority ties select the oldest voice.

Voice Limit

Limits simultaneous voices for this AudioCue. 0 means unlimited. When the positive limit is reached, the cue's oldest active voice is stopped with end reason Stolen before the new request is started.

Cooldown

Sets the minimum unscaled time between accepted play requests for this cue. A request made during the cooldown returns an invalid AudioHandle and does not start a voice.

Authoring recipes

Repeated footsteps

  • Add several short variants.
  • Use Random No Repeat.
  • Set a small Voice Limit to avoid uncontrolled overlap.
  • Use PlayAttached so the sound follows the character.

UI confirmation

  • Use one or more short variants.
  • Keep Spatial Override disabled.
  • Set Priority to a more important value than ambient sounds.
  • Add a short Cooldown when rapid clicks should be suppressed.

Ambient loop

  • Use Repeat Selected for one continuous bed.
  • Use Reselect Each Loop for changing ambient segments.
  • Route the cue to an ambient AudioMixerGroup.
  • Use Stop with an explicit fade duration when leaving the area.

World impact

  • Use Weighted Random or Random No Repeat.
  • Enable Spatial Override and set Spatial Blend to 1.
  • Call PlayAt(cue, impactPosition).
  • Configure distance and rolloff for the intended gameplay scale.

Continue with Runtime API to integrate authored cues through code.