Skip to content

PigeonLab-Dev/Godot-FmodPlayer

Repository files navigation

fmod_player_banner

Godot-FmodPlayer

FMOD Core API audio playback, mixing, DSP, and 3D spatial tools for Godot 4.

Release Platform License Godot Version Documentation

A Godot 4 GDExtension plugin for developers who want low-level FMOD playback
without giving up Godot-style nodes, resources, buses, inspectors, and editor workflows.


Why This Plugin?

Godot-FmodPlayer is built around the FMOD Core API, not FMOD Studio. It is aimed at projects that need direct control over sounds, channels, channel groups, DSP graphs, streamed audio, 3D spatial playback, and runtime mixing.

Use it when you want:

  • FMOD's mature decoder, mixer, and DSP runtime inside Godot.
  • Godot-friendly nodes such as FmodAudioStreamPlayer, FmodAudioStreamPlayer2D, and FmodAudioStreamPlayer3D.
  • Editor tools for importing, previewing, inspecting, and testing FMOD audio resources.
  • A bus layout that follows Godot's AudioServer while routing playback through FMOD.
  • Advanced 3D audio features such as geometry occlusion and spatial reverb zones.

Looking for FMOD Studio event/bank workflows? This project intentionally focuses on FMOD Core API. For Studio API integration, see fmod-gdextension.

Highlights

Godot-Native Workflow

  • Import audio as FMOD stream resources directly in the editor.
  • Preview FMOD audio resources from the inspector.
  • Use custom icons, 3D gizmos, and editor tools for FMOD nodes.
  • Configure FMOD system options from Project Settings.
  • Use a helper tool to prepare Android export templates for FMOD runtime files.

Playback And Loading

  • Play common FMOD-supported formats: MP3, WAV, OGG Vorbis, FLAC, AIFF, MIDI, MOD, XM, S3M, IT, and more.
  • Load from res://, user://, absolute file paths, memory buffers, and Godot PCK resources.
  • Choose streaming or sample loading modes depending on memory and latency needs.
  • Use advanced stream settings for special formats, subsounds, tracks, and FMOD create flags.

Mixing And Routing

  • Synchronize FMOD buses with Godot's audio bus layout.
  • Route players to named buses.
  • Use channel groups and sound groups for grouped playback control.
  • Adjust volume, pitch, pan, mute, solo, bypass, and DSP parameters at runtime.
  • Monitor FMOD CPU and file usage in Godot's Performance panel.

DSP Effects

Godot-FmodPlayer includes FMOD-backed effects designed to feel familiar to Godot users:

Effect Use Case
Amplify Gain and volume adjustment
Filter Low-pass, high-pass, band-pass filtering
EQ / EQ6 / EQ10 / EQ21 Graphic and multi-band equalization
Chorus Modulated stereo thickening
Delay Echo, taps, and feedback delay
Distortion Drive, clipping, and saturation
Phaser Sweeping phase modulation
Pitch Shift Real-time pitch manipulation
Reverb Godot-like room reverb mapping
Compressor Dynamic range compression
Hard Limiter Peak control
Stereo Enhance Stereo width shaping
Panner Stereo positioning
Spectrum Analyzer Real-time frequency visualization
Capture Runtime sample capture
Record Bus recording and waveform snapshots

3D Audio

  • FmodAudioStreamPlayer3D for spatial playback.
  • Listener updates from the active Godot camera.
  • Distance attenuation and rolloff controls.
  • FmodGeometryInstance3D for FMOD geometry occlusion.
  • MeshInstance3D editor tools for quickly creating FMOD geometry.
  • FmodReverbZone3D for localized environmental reverb.
  • Editor gizmos for spatial audio debugging.

Quick Start

1. Install The Plugin

Recommended: install Godot-FmodPlayer from the Godot Asset Library:

Godot Asset Library - Godot-FmodPlayer

You can also download a release from GitHub or build the GDExtension from source if you need the latest development version.

2. Enable The Plugin

Open your Godot project and enable:

Project > Project Settings > Plugins > FMOD Player

3. Play Audio

Add one of the player nodes:

  • FmodAudioStreamPlayer
  • FmodAudioStreamPlayer2D
  • FmodAudioStreamPlayer3D

Assign an FMOD audio stream resource, choose a bus, and press play.

Platform Support

Platform Status Notes
Windows x86_64 Supported Main development target
Android arm64 / arm32 / x86 / x86_64 Supported Requires FMOD Android runtime setup
macOS Experimental Build script support exists, FMOD linking may need local adjustment
iOS Experimental Static library workflow may need project-specific setup

Requirements

  • Godot: 4.1 or later
  • Language: C++17 or newer
  • Windows compiler: Visual Studio 2022 / MSVC v145+
  • Android compiler: Android NDK
  • Build system: SCons
  • Audio runtime: FMOD Core API SDK

Documentation

Full documentation is available here:

godot-fmodplayerdocs.readthedocs.io

The documentation includes setup guides, API references, usage examples, and platform-specific export notes.

License

This repository is licensed under the MIT License. See LICENSE.txt.

FMOD is proprietary software by Firelight Technologies Pty Ltd. You must obtain the appropriate FMOD license for your project from fmod.com.

Acknowledgments

  • FMOD by Firelight Technologies Pty Ltd

FMOD is a trademark of Firelight Technologies Pty Ltd.
This plugin is not officially affiliated with or endorsed by Firelight Technologies.