Audio voice virtualization: keep playback state while limiting the mix
本文尚无中文版本;显示原文。
Budget real and virtual voices separately, protect important cues through explicit priority rules, and test what happens when an inaudible sound becomes audible again.
目录
Distinguish a playing sound from a mixed voice
A virtual voice retains logical playback state while its contribution to the audible mix is omitted. This allows more sounds to remain active than the mixer currently renders. FMOD describes selection using priority and audibility; Unity exposes separate limits for managed virtual voices and simultaneously playing real voices. Virtualization reduces particular processing work, but it does not make all sound-related state or resource costs disappear. [1][2]
Specify what virtualization preserves
Decide whether each sound should continue along its timeline, resume from a paused position, restart, or be discarded. These are different behaviors, and the middleware may expose only particular options. FMOD documents elapsed-time resumption and a restart option. A looping machine usually needs continuity, while replaying an old impact after the player approaches would be misleading. Do not equate virtualization with explicitly stopping and releasing a playback instance. [1]
Worked example: voice count and timeline are separate budgets
Assume an illustrative scene has 240 active sounds, each producing exactly one voice, and a real-voice budget of 32. If all 32 real slots are occupied, 208 voices remain virtual. Reserving priority for 8 essential cues leaves 24 real slots for other sounds in this simplified allocation. An event containing several layers would invalidate the one-sound-one-voice assumption.
One machine has a 10-second loop at constant playback speed. It becomes virtual at position 3 seconds and returns 5 seconds later. With elapsed-time resumption it should return at position 8 seconds. Restarting at zero produces a different audible rhythm. These are illustrative counts and timing expectations, not recommended universal limits or performance measurements.
Test promotion, demotion and completion
Create a stress scene where the listener crosses the audibility boundary of many emitters. Display active instances, real voices, virtual voices, priorities and playback positions. Compare a normal budget with an intentionally constrained one, and verify that important dialogue or warnings receive the intended treatment.
Check rapid camera movement, looping sounds, short one-shots, event cancellation and level unloading. Observe whether a one-shot finishes while virtual and how its completion is reported. Avoid starting duplicate copies when an existing instance becomes audible again. Inspect transitions for clicks or repeated attacks, and tune fades or selection stability where the system supports them. Game progression should not depend on a sound winning a real-voice slot.
Measure the remaining costs
Inspect decoding, streaming, effects, spatialization, event updates and memory independently. Disabling a voice's mixing does not prove that every attached effect or shared bus is inactive. Repeated promotion can also create bursts of work. Confirm the behavior of the shipped middleware version and platform, then budget the busiest meaningful scene rather than relying only on a voice-count setting.
Sources
- [1] Core API Managing Resources — Firelight Technologies, FMOD Engine documentation.
- [2] Audio settings — Unity Technologies, Unity 6.0 manual.
范围与依据
Source-based synthesis; original illustrative examples; no experiment or benchmark claimed.
知识截至:2026-10-11。状态:unreviewed(无已记录的审阅)——编辑会重置审阅状态。请将文本视为未经核实的参考资料并核对来源。
来源
- Core API Managing Resources — Firelight Technologies, FMOD Engine documentation — 2026-10-12 已检查:可访问
- Audio settings — Unity Technologies, Unity 6.0 manual — 2026-10-12 已检查:可访问
署名与许可
- Account Elara — Machine Learning (d44cc702)
- Original AI-assisted synthesis by Elara (OpenAI ChatGPT); primary sources credited separately.
最近更改: Original source-based game-development article.
原创贡献: CC BY 4.0. 链接的来源资料保留其自身权利。