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.