Pepper.SFX
All Guidance pages

Guidance / Cookbook

Cookbook: overview

This section is organized around tasks, not features. Each recipe walks one outcome from asset creation through code.

Three ways to read this section — every recipe serves all three:

  • 🏃 Skimmer: Read the recipe titles and the bolded step labels. Skip the prose. The ordered lists at the top of each topic are the map.
  • 📖 Learner: Read each recipe top to bottom. Each one is self-contained and explains why alongside how.
  • 🔍 Reference reader: Jump to the recipe whose title matches your task. Use the Table of Contents.

⚠️ Read this before doing anything spatial

Occlusion, Per-Zone Reverb, and container-level Ambient Propagation all share one piece of infrastructure: the Occlusion Slot Pool.

On every play, the system checks:

wantsSlot = container.UseOcclusion || container.AllowReverbSend || container.UsePropagation

If any of those three flags is on and the slot pool has not been authored, the voice silently falls back to direct-to-bus routing. No low-pass muffling. No reverb sends. No error. Only the volume part works without a slot: an occluded or propagated sound still gets quieter behind walls and doors, it just keeps its treble, so the setup can sound half right.

You must author the Occlusion Slot Pool first, before touching reverb buses, zones, or container flags. Do it here: Occluding SFX Through Geometry → One-Time Project Setup.

Exception: the AmbientSource propagation path (rain, wind, ambient beds) uses a separate emitter pool and does not require slots. Only container-level UsePropagation does.

From the Pepper.SFX 3.1 guides (USER_GUIDE.md). Something wrong or unclear? Tell me.