FMOD Studio is a powerful cross-platform audio middleware that gives game and interactive audio developers fine-grained control over sound playback. Among its most important features for building convincing spatial audio is the ability to design custom attenuation curves. These curves define exactly how a sound’s volume changes as the listener moves closer to or farther from the sound source. A well‑crafted attenuation curve can make a footstep sound natural as a character walks away, or make a distant explosion feel properly muffled. In this article you’ll learn where attenuation curves fit into FMOD’s audio pipeline, how to create and edit them step by step, and how to refine them for different environments.

Why Attenuation Curves Matter for Spatial Audio

Attenuation, often called distance rolloff, is one of the primary cues our brains use to locate sounds and judge distance. In a game or VR experience, a realistic falloff helps players understand the spatial layout without looking at maps. FMOD separates volume attenuation from other spatialisation features (like panning and Doppler), so you have independent control over the loudness‑vs‑distance relationship.

A default linear or logarithmic rolloff rarely fits all situations. A quiet conversation in a forest requires a very different falloff than a roaring engine in a wide canyon. By customising the curve you can simulate:

  • Outdoor environments – gentle, gradual attenuation with little occlusion
  • Indoor/room acoustics – a steeper drop followed by a small tail due to reverb
  • Underwater or muffled sounds – asymmetric or multi‑stage rolloffs
  • Abstract or stylised games – designer‑defined distance behaviour (e.g. constant loudness for gameplay reasons)

FMOD’s curve editor lets you build these profiles with simple point‑and‑click editing, then test them in real time.

Core Concepts in FMOD’s Attenuation System

Min Distance & Max Distance

Every event in FMOD that uses 3D positioning has two fundamental distance properties:

  • Min Distance – the distance within which the sound plays at full volume (no attenuation). Typically set to the size of the sound source (e.g. 1‑2 units for a person, 10‑20 units for a large vehicle).
  • Max Distance – the distance beyond which the sound no longer attenuates further (the “floor” value). Beyond this point, volume stays constant at the end of the curve, often but not always silent.

The custom curve you build operates between these two distances. FMOD linearly maps the distance from Min to Max onto the horizontal axis of your curve (0 to 1 in the Curve Editor).

Volume vs. Distance Mapping

The vertical axis represents volume in dB (or as a linear percentage depending on your preference). You can place as many control points as needed to create a shape that mimics real‑world physics, psychoacoustic expectations, or artistic intent.

Other Spatial Properties

Attenuation is just one part of FMOD’s spatial audio toolkit. You can also assign custom curves to:

  • Spread / Stereo spread – how wide the sound appears as distance changes
  • LFE and centre channel levels – subwoofer blend vs distance
  • Occlusion & obstruction – separate curves that activate when geometry blocks the line of sight

These additional curves work exactly like the volume attenuation curve and can be edited in the same curve editor interface.

Step‑by‑Step: Creating a Custom Attenuation Curve

I’ll assume you have FMOD Studio open with a project that already contains a 3D event with a sound source. If not, create a new 3D event, drag in an audio file, and set its spatialisation mode to 3D. Then follow these steps:

1. Open the Event Attenuation Settings

Select the event in the Event Browser. In the Event Properties panel (typically on the right side of the editor), locate the Volume section. Under that you’ll see the Attenuation drop‑down. By default it’s set to Linear (a straight diagonal from full to silent). Change it to Custom.

Once you select Custom, a small Curve Editor button appears next to the drop‑down. Click it to open the Curve Editor dialog.

2. Understand the Curve Editor Interface

The Curve Editor shows a two‑axis graph:

  • Horizontal axis (0 to 1) – represents the normalised distance from Min Distance (left) to Max Distance (right).
  • Vertical axis (0 to 100) – represents volume as a percentage of the original level. You can switch to dB view in the graph’s context menu.

By default the curve is a straight line from (0,100) to (1,0). Below the graph are fields for Min Distance and Max Distance in your project’s scale units. Tweak these values first to define the distance range your curve will cover.

3. Add and Manipulate Control Points

To shape the attenuation, click anywhere on the curve line to add a new control point. You can:

  • Drag the point vertically or horizontally.
  • Right‑click a point to remove it.
  • Select multiple points by shift‑clicking or dragging a rectangle, then drag them together.
  • Change interpolation between points by clicking the curve segment – a small pop‑up lets you switch between linear, logarithmic, or cubic spline interpolation. Cubic spline gives smooth, natural curves without sharp corners.

For example, an indoor sound might start at 100% volume until 0.1 on the horizontal axis (10% of the max distance), then drop steeply to 20% by 0.3, then taper slowly to 0% at 1.0. This simulates the quick falloff near the source plus a long, quiet tail from reflected sound.

4. Set End Values and Behaviour

Pay attention to the leftmost and rightmost points. The leftmost point defines volume at Min Distance – this is usually 100% (0 dB). The rightmost point defines volume at Max Distance – typically 0% (-∞ dB). If your sound should never go completely silent (e.g. a distant ocean wave), you can set the right endpoint to a small value like 5%.

You can also choose what happens beyond the curve range using the Extrapolation drop‑down inside the curve editor: Clamp (volume stays at the end value), Loop (not typical for attenuation), or Ping‑Pong.

5. Save and Preview

Close the curve editor – changes are automatically saved to the event. Now click the Play button in the FMOD toolbar, then move the 3D listener icon around in the 3D Viewport. You’ll hear the volume change according to your custom curve. Adjust until the behaviour feels right.

Advanced Curve Techniques

Using Multiple Curves for One Event

FMOD events can have separate attenuation curves for volume, spread, LPF, and more. Access these by clicking the + icon next to “Attenuation” in the Volume section and selecting a different parameter (e.g. Low Pass Filter). You can then design a “distance‑based low‑pass” that muffles a sound as the listener moves away – adding immense realism.

Occlusion and Obstruction Curves

When using FMOD’s geometry system, you can assign Occlusion and Obstruction attenuation curves that are activated when walls block the direct path. These curves operate independently, usually with a steeper reduction and added low‑pass filtering. Set them in the Spatial Geometry tab of the event properties. A typical occlusion curve might drop volume to 30% and apply a 300 Hz low‑pass filter when fully occluded.

Curve Presets and Copying

Once you design a curve you like, right‑click the curve graph and choose Copy Curve. You can then paste it into other events, speeding up your workflow. FMOD also ships with a few built‑in curve presets (linear, logarithmic, inverse logarithmic) that serve as good starting points.

Testing and Debugging Your Attenuation Curve

The FMOD Studio UI offers several ways to verify attenuation behaviour.

  • Playback in 3D Viewport – drag the listener icon and watch the real‑time volume meter.
  • Scene Browser – right‑click a sound source and select “Listen to 3D Source” to lock listener position relative to it.
  • Profiler – during runtime (via the Live Update connection), open the FMOD Profiler and look at the “Attenuation” section per event instance. It shows exactly which curve values are being used at the current distance.
  • Visual debugging – enable the “Show Attenuation” overlay in the 3D Viewport (if your FMOD version supports it) to see a colour‑coded range around the source.

Don’t rely on ears alone – especially in a noisy mix. Use the profiler’s numeric readouts to fine‑tune points to within 0.1 dB if needed.

Common Pitfalls and How to Avoid Them

  • Ignoring Min/Max Distance settings – A beautiful curve is useless if Min Distance is 100 units when your game’s scale is 1 unit per metre. Always match these distances to your game’s unit scale and the size of the sound source.
  • Using too many control points – More than 8–10 points rarely improves accuracy and can lead to weird interpolation artefacts. Stick to 4–7 points for clean, smooth shapes.
  • Forgetting to check extrapolation behaviour – If listeners move beyond Max Distance, the sound may suddenly clamp to a non‑zero volume. Ensure the rightmost endpoint is set to the desired minimum volume.
  • Neglecting cross‑platform testing – Attenuation curves map identically across platforms, but the audio drivers’ handling of very quiet sounds (floor noise) may differ. Test your curves at low volumes on target hardware.
  • Over‑optimising before gameplay is integrated – Perfecting a curve in isolation often backfires once the game code applies additional volume modulations (like distance‑based gain via code). Design a baseline in FMOD, then iterate with real gameplay.

Real‑World Example: Forest Environment

To tie everything together, here’s how I designed attenuation for a bird chirp in an outdoor forest scene:

  • Min Distance: 2 units (the bird is a small source)
  • Max Distance: 50 units (birds can be heard far away in a quiet forest)
  • Curve shape: Three control points: (0,100%) → (0.2, 80%) → (0.6, 30%) → (1.0, 5%). The gentle initial drop accounts for air absorption, then a slower taper for the far field. The 5% floor keeps the chirp barely audible at the edge of range, adding depth.
  • Additional curve: Low‑pass filter attenuation: from 20 kHz at close range to 3 kHz at max distance, set with a logarithmic curve. This simulates high‑frequency absorption by trees and humidity.

The result: the bird sounds natural and spacious, not artificially truncated.

Integrating Custom Curves with Game Code

While FMOD handles the curve, your game engine can still override distance properties at runtime. For example, you might call studio::EventInstance::set3DAttributes to update the emitter position. The attenuation is always computed based on the actual listener‑source distance – no extra code needed. However, if you want to dynamically change the curve itself (e.g. weather effects), FMOD allows you to modify curve points via the API using Studio::System::setParameterByID together with parameter‑driven curve selections. See the FMOD API documentation for details.

Conclusion: Master Attenuation for Immersive Audio

Custom attenuation curves are one of FMOD’s most expressive tools. They give you pixel‑level control over the relationship between distance and perceived loudness, allowing you to craft believable spatial audio that responds naturally to player movement. By combining volume curves with spread, low‑pass, and occlusion curves, you can build rich acoustic environments without ever touching a DSP plugin.

Start simple – modify the built‑in Linear curve with two or three points – and gradually add complexity as you learn how each parameter affects the player’s sense of space. Always test your curves in the target game scene, not just in isolation. With practice, you’ll develop an intuition for quickly sculpting attenuation that feels both realistic and enjoyable.

For further reading, check the official FMOD Studio documentation on Attenuation and the EventInstance API. The FMOD blog also occasionally features case studies (see e.g. FMOD Blog).