# Pepper.SFX > Pepper.SFX is audio middleware for Unity. Build your game’s sound as assets (events, containers, buses, states and parameters) and play any of it with one line of code. Pepper.SFX works inside the Unity editor, on Unity 6000.0.48f1 or newer. Package name: `com.pepper.sfx`. C# namespace: `AudioSystem`. The free version (compiled DLLs) is on GitHub: https://github.com/IamAmirPepper/Pepper.SFX_System. The full version (C# source, multiplayer, Addressables loading and every editor window) is coming to the Unity Asset Store. These docs describe Pepper.SFX 3.1. ## Features - [Events and containers](https://peppersfx.com/features/events-and-containers/): Author sounds as assets and play them with one call: events decide what happens, containers decide which clips play and how. - [Parameters, states and switches](https://peppersfx.com/features/parameters-states-switches/): Drive sounds from game values: per-object parameters with smoothing, built-in distance and angle, switches and mix states. - [Buses and mixing](https://peppersfx.com/features/buses-and-mixing/): A bus hierarchy for group volume, ducking, pausing, player volume sliders and voice caps, set up as assets. - [Occlusion](https://peppersfx.com/features/occlusion/): Sounds behind walls and cover get quieter and duller, softened at the edges and free of clicks, switched on per sound with one checkbox. - [Ambient propagation](https://peppersfx.com/features/ambient-propagation/): Rooms, doorways and doors for ambient beds: hear rain through the window, and the next room's machinery through a door as it opens. - [Reverb](https://peppersfx.com/features/reverb/): Each sound rings with the reverb of the room it's played in: parametric reverb on most platforms, convolution reverb on 64-bit Windows. - [Multi-position audio](https://peppersfx.com/features/multi-position-audio/): One sound from up to 16 places at once (a river, a row of torches, club speakers), posted with one call and controlled with one handle. - [Voices and performance](https://peppersfx.com/features/voices-and-performance/): A fixed voice pool that ranks every sound, parks the least important silently in place and ends whole sounds with a fade when it needs room. - [Spatial audio and listeners](https://peppersfx.com/features/spatial-audio-and-listeners/): Shared distance curves, listening points with split-screen panning, Pepper's own Doppler and named sound points on an object. - [Vehicle engines](https://peppersfx.com/features/vehicle-engines/): Car engines from recorded RPM loops: one window builds the whole engine, every loop stays in tune with the RPM, and each car has its own values. - [Multiplayer](https://peppersfx.com/features/multiplayer/): Post a sound once and every player hears it, with the same random picks on every machine and running loops replayed to late joiners. (full version only) - [Addressables loading](https://peppersfx.com/features/addressables-loading/): Load each zone's audio through Addressables as the player walks in and free it on the way out, without cutting a sound that is still playing. (full version only) - [Music and timing](https://peppersfx.com/features/music-and-timing/): Intro-and-loop music, crossfades between tracks, tempo-driven one-shots and posts that land on an exact DSP time. - [Editor tools](https://peppersfx.com/features/editor-tools/): Unity windows to build sounds, hear them outside Play mode, see every voice while the game runs, and find setup mistakes before they ship. ## Start here - [Introduction](https://peppersfx.com/docs/introduction/): Pepper.SFX is professional audio middleware for Unity. Instead of manually managing AudioSources and juggling clips, you work with high-level concepts… - [Quick Start](https://peppersfx.com/docs/quick-start/): The absolute fastest way to add sounds - perfect for beginners! - [Build Compatibility](https://peppersfx.com/docs/build-compatibility/): What works on which platform. Pepper.SFX is C# on top of Unity's own audio (AudioSource and AudioMixer) and physics raycasts. Apart from the convolution… ## Cookbook - [Cookbook: overview](https://peppersfx.com/docs/cookbook/overview/): This section is organized around tasks, not features. Each recipe walks one outcome from asset creation through code. - [Setup & Organization](https://peppersfx.com/docs/cookbook/setup-organization/): What: Complete setup from scratch to playing first sound - [UI Sounds](https://peppersfx.com/docs/cookbook/ui-sounds/): What: Button with click sound and subtle variations - [Footsteps & Movement](https://peppersfx.com/docs/cookbook/footsteps-movement/): Result: Natural-sounding footsteps synced to animation! - [Weapons & Combat](https://peppersfx.com/docs/cookbook/weapons-combat/): What: Weapon shot with variations and instance limiting - [Music Systems](https://peppersfx.com/docs/cookbook/music-systems/): What: Music with intro that transitions to seamless loop - [Rhythmic SFX](https://peppersfx.com/docs/cookbook/rhythmic-sfx/): Use BeatScheduler (AudioSystem.BeatScheduler, MonoBehaviour in RunTime/Utilities/) for any SFX whose rate must vary at runtime without changing pitch… - [3D Spatial Audio](https://peppersfx.com/docs/cookbook/3d-spatial-audio/): 3D Spatial Audio: Pepper.SFX documentation. Pepper.SFX is audio middleware for Unity. - [States & RTPCs](https://peppersfx.com/docs/cookbook/states-rtpcs/): Result: Smooth transition to muffled underwater audio! - [Multi-Position Audio](https://peppersfx.com/docs/cookbook/multi-position-audio/): There's no multi-position setting on the event. Posting it with PostMultiPosition is what plays it from every speaker. - [Performance & Debugging](https://peppersfx.com/docs/cookbook/performance-debugging/): Result: Development HUD showing audio system stats! - [Occluding SFX Through Geometry](https://peppersfx.com/docs/cookbook/occluding-sfx-through-geometry/): SFX voices can be muffled when walls or props stand between the listener and the emitter. The mechanism is the occlusion mixer slot pool (see Manual… - [Per-Zone Reverb](https://peppersfx.com/docs/cookbook/per-zone-reverb/): The "wet path" sibling of the occlusion section. SFX voices send a copy of their dry signal to a per-zone reverb bus; each bus's character is defined by… - [Ambient Propagation](https://peppersfx.com/docs/cookbook/ambient-propagation/): New in v2.3.0. Zone/portal routing for long-running ambient beds (rain, wind, machinery, river). The propagation subsystem ships alongside the SFX event… - [Appendix: Quick Reference](https://peppersfx.com/docs/cookbook/appendix-quick-reference/): Appendix: Quick Reference: Pepper.SFX documentation. Pepper.SFX is audio middleware for Unity. ## Manual - [Manual: overview](https://peppersfx.com/docs/manual/overview/): The Manual is the system's deep reference — architecture, design rationale, and chapter-by-chapter coverage of every subsystem. Read it once… - [Introduction](https://peppersfx.com/docs/manual/introduction/): Introduction in the Pepper.SFX manual: What This Manual Covers, Prerequisites, How to Use This Manual, Companion Documents. - [System Architecture](https://peppersfx.com/docs/manual/system-architecture/): System Architecture in the Pepper.SFX manual: Design Philosophy, The Audio Pipeline, Component Hierarchy, Memory & Lifecycle. - [Core Components](https://peppersfx.com/docs/manual/core-components/): Core Components in the Pepper.SFX manual: AudioManager, AudioVoice & AudioVoiceEnhanced, AudioHandle & AudioMultiHandle, Parameters & Scopes. - [Audio Containers](https://peppersfx.com/docs/manual/audio-containers/): Containers define how audio clips are organized and played. All containers inherit from AudioContainer base class. - [Events System](https://peppersfx.com/docs/manual/events-system/): Events System in the Pepper.SFX manual: AudioEvent Overview, Event Actions, Instance Limiting, Cooldown System, Multi-Position Mode. - [Bus & Mixing](https://peppersfx.com/docs/manual/bus-mixing/): Bus & Mixing in the Pepper.SFX manual: Bus Architecture, Decibel System, Hierarchical Volume, Ducking System, Unity AudioMixer Integration, Parameter… - [State System](https://peppersfx.com/docs/manual/state-system/): State System in the Pepper.SFX manual: AudioState Overview, State Groups, State Properties, State Transitions, Common State Patterns. - [Multi-Position Audio](https://peppersfx.com/docs/manual/multi-position-audio/): Multi-Position Audio in the Pepper.SFX manual: Concept, Architecture, DSP Synchronization, Setup Tutorial, Per-Emitter Control, Use Cases, Performance… - [Performance & Optimization](https://peppersfx.com/docs/manual/performance-optimization/): Performance & Optimization in the Pepper.SFX manual: Voice Management, Memory Optimization, CPU Optimization, Mobile Optimization, Profiling. - [Advanced Features](https://peppersfx.com/docs/manual/advanced-features/): Advanced Features in the Pepper.SFX manual: Occlusion System, Ducking, Crossfading, Beat-Scheduled SFX (BeatScheduler), Audition (outside Play mode)… - [Best Practices](https://peppersfx.com/docs/manual/best-practices/): Best Practices in the Pepper.SFX manual: Project Organization, Naming Conventions, Bus Hierarchy Design, Container Design, Event Design, State Design… - [Troubleshooting](https://peppersfx.com/docs/manual/troubleshooting/): Troubleshooting in the Pepper.SFX manual: Sound Not Playing, No Variations, 3D Sound Not Spatial, Switch Container Not Switching, Occlusion Not Working… - [Ambient Propagation Subsystem](https://peppersfx.com/docs/manual/ambient-propagation-subsystem/): New in v2.3.0. An optional, additive subsystem that ships in the same package as the rest of Pepper.SFX. It is designed specifically for long-running… - [Occlusion Mixer Slot Pool](https://peppersfx.com/docs/manual/occlusion-mixer-slot-pool/): The system for muffling SFX voices behind walls, geometry, and (via propagation) through doorways. Ships alongside the propagation subsystem from chapter… - [Reverb Send Buses & Per-Zone Reverb](https://peppersfx.com/docs/manual/reverb-send-buses-per-zone-reverb/): The "wet path" complement to the occlusion chapter. Where chapter 14 controlled how voices are muffled through geometry, this chapter controls how voices… - [Audio Loading & Memory](https://peppersfx.com/docs/manual/audio-loading-memory/): This chapter covers how clip audio gets into memory and onto a voice — the RAM footprint of your audio and when the cost of loading it is paid. It's… - [Multiplayer (Netcode)](https://peppersfx.com/docs/manual/multiplayer-netcode/): Multiplayer support lets you post a sound on one player's machine and have every player hear it — without your audio code knowing which netcode stack the… - [Appendix A: Glossary](https://peppersfx.com/docs/manual/appendix-a-glossary/): Appendix A: Glossary: Pepper.SFX documentation. Pepper.SFX is audio middleware for Unity. - [Appendix B: Quick Reference](https://peppersfx.com/docs/manual/appendix-b-quick-reference/): Appendix B: Quick Reference in the Pepper.SFX manual: Common Code Patterns. ## API reference - [AudioManager](https://peppersfx.com/docs/api/audiomanager/): AudioManager API in Pepper.SFX: Inspector Configuration, Properties, Event Methods, Posting by Reference, Random Numbers, Parameter Methods, Listening… - [AudioEvent](https://peppersfx.com/docs/api/audioevent/): AudioEvent API in Pepper.SFX: Properties, Methods, AudioDuration, PostValues, EventAction (Nested Class), CrossfadeType (Nested Enum). - [AudioHandle & AudioMultiHandle](https://peppersfx.com/docs/api/audiohandle-audiomultihandle/): AudioHandle & AudioMultiHandle API in Pepper.SFX: AudioHandle, AudioMultiHandle. - [Parameters](https://peppersfx.com/docs/api/parameters/): Explained in USER_GUIDE Manual §3.4. A sound reads a parameter's value from its play (handle), else its emitter, else the global scope, else the… - [AudioContainer (Base)](https://peppersfx.com/docs/api/audiocontainer-base/): AudioContainer (Base) API in Pepper.SFX: Properties, Methods, ContainerOverrides (Nested Struct). - [Container Types](https://peppersfx.com/docs/api/container-types/): Container Types API in Pepper.SFX: RoutingContainer, RandomContainer, SequenceContainer, SwitchContainer, BlendContainer, GeneratorContainer (Unity… - [AudioBus](https://peppersfx.com/docs/api/audiobus/): AudioBus API in Pepper.SFX: Properties, Methods, EffectSend (Nested Class), DuckingTarget (Nested Class). - [AudioState](https://peppersfx.com/docs/api/audiostate/): AudioState API in Pepper.SFX: Properties, Methods, Nested Property Classes. - [AudioVoice & AudioVoiceEnhanced](https://peppersfx.com/docs/api/audiovoice-audiovoiceenhanced/): AudioVoice & AudioVoiceEnhanced API in Pepper.SFX: AudioVoice (Base), AudioVoiceEnhanced, GainStack (Nested Class), PitchStack (Nested Class), DopplerMath. - [AudioExtensions & Utilities](https://peppersfx.com/docs/api/audioextensions-utilities/): AudioExtensions & Utilities API in Pepper.SFX: AudioExtensions, ListenerUtil, AudioListeningPoint, BeatScheduler, IRTPCListener (Interface). - [AudioEventRegistry](https://peppersfx.com/docs/api/audioeventregistry/): AudioEventRegistry API in Pepper.SFX: Description, Properties, Methods, Setup Example. - [Multi-Position Emitters](https://peppersfx.com/docs/api/multi-position-emitters/): Multi-Position Emitters API in Pepper.SFX: AudioMultiPositionEmitterParent, AudioMultiPositionEmitterChild. - [Editor Tools](https://peppersfx.com/docs/api/editor-tools/): Editor Tools API in Pepper.SFX: AudioAuditionWindow and AudioAudition, AudioLiveViewWindow, AudioEmitterRecorder and AudioParameterRecording… - [Propagation](https://peppersfx.com/docs/api/propagation/): Zone/portal graph-based routing for long-running ambient beds. Additive — does not modify the SFX event pipeline. See Manual Chapter 13 for architecture… - [Occlusion Mixer Slots](https://peppersfx.com/docs/api/occlusion-mixer-slots/): Pre-built per-bus pools of mixer groups used as routing targets for SFX voices that need cutoff modulation. Replaces per-source AudioLowPassFilter (which… - [Reverb Send Buses](https://peppersfx.com/docs/api/reverb-send-buses/): The "wet path" complement to occlusion. Source-side: voices in a tagged zone send to a per-zone reverb bus. Listener-side: each bus's character is… - [Enums & Data Structures](https://peppersfx.com/docs/api/enums-data-structures/): Enums & Data Structures API in Pepper.SFX: VoicePriority, AudioSpatialMode, VoiceStealBehavior, MultiPositionType, WeightedAudioClip, SequenceEntry… - [Loading](https://peppersfx.com/docs/api/loading/): The clip-loading layer: import policy, warming, and the optional Addressables backend. See the User Guide → Audio Loading & Memory for the concepts and… - [Netcode (Multiplayer)](https://peppersfx.com/docs/api/netcode-multiplayer/): Backend-agnostic networked audio. See the User Guide → Multiplayer (Netcode) for concepts, setup, and the mental model. No audio crosses the wire — only… - [Quick Reference](https://peppersfx.com/docs/api/quick-reference/): Quick Reference API in Pepper.SFX: Common Patterns. - [Version History](https://peppersfx.com/docs/api/version-history/): For quick start, see Quick Start in the User Guide ## More docs - [Known issues](https://peppersfx.com/docs/known-issues/): This is a heads-up for beta testers: things that may not work as intended in this build yet, and places where the guides are out of date. If you hit one… - [Migration](https://peppersfx.com/docs/migration/): Events MUST be in Assets/Audio/Resources/Audio/Events/ (confusing, easy to mess up) ## Optional - [All docs in one file](https://peppersfx.com/llms-full.txt): every page above as one Markdown file - [FAQ](https://peppersfx.com/faq/) - [Free and full versions compared](https://peppersfx.com/get/) - [Contact](https://peppersfx.com/contact/)