Demo applications showcasing FMOD audio integration in Bevy game engine using bevy_fmod.
The easiest way to run demos is using the provided helper scripts:
# First time setup
./setup_demos.sh
# Run demos
./run_demos.sh verify_fmod # Verify FMOD installation
./run_demos.sh minimal # Basic sound playback
./run_demos.sh spatial # 3D positioned audio
./run_demos.sh parameters # Multi-track ambience
./run_demos.sh audio_control # Audio playback controls
./run_demos.sh simple_sound_test # Non-interactive test
./run_demos.sh manual_sound_test # Interactive keyboard testThe run_demos.sh script automatically verifies FMOD libraries before running demos.
This repository requires:
- bevy_fmod repository: Must be in sibling directory (
../bevy_fmod) - FMOD SDK: Accessible via
../bevy_fmod/fmodsymlink (created by setup script) - Bank files: FMOD Studio example project banks in
assets/audio/demo_project/Build/Desktop/ - Rust: 1.70+
- Bevy: 0.17
- FMOD: 2.03.09
Directory structure:
parent/
├── bevy_fmod/ # bevy_fmod repository
│ └── fmod/ # FMOD SDK (fmodstudioapi20310linux)
└── bevy-fmod-demos/ # This repository
└── assets/ # Bank files from FMOD Studio
- verify_fmod - Verify FMOD library installation and version
- minimal - Plays background music in a loop (grey window with status text)
- spatial - 3D audio positioning - cube orbits around player, move with arrow keys to hear volume/pan changes
- parameters - Multi-track ambience - plays Forest and Country ambience sounds simultaneously
- audio_control - Audio playback controls - Stop/Play/Toggle music with S/P/T keys
- simple_sound_test - Non-interactive test - plays two sounds and exits after 3 seconds
- manual_sound_test - Interactive keyboard test - play different sounds with SPACE/1/2 keys, ESC to exit
If you prefer to set up manually:
- Download FMOD Studio API 2.03.09 from FMOD Downloads
- Extract to
../bevy_fmod/fmodor create symlink:ln -s /path/to/fmod fmod - Set environment:
export FMOD_SDK_DIR=$(pwd)/fmod
export LD_LIBRARY_PATH=$FMOD_SDK_DIR/api/core/lib/x86_64:$FMOD_SDK_DIR/api/studio/lib/x86_64:$LD_LIBRARY_PATH- Run demos:
cargo run --example verify_fmod
cargo run --bin minimal
cargo run --bin spatialDemos use bank files from two locations:
These demos use banks from assets/audio/demo_project/Build/Desktop/:
- minimal - Uses Music.bank (event:/Music/Level 03)
- spatial - Uses Music.bank for 3D positioning
- audio_control - Uses Music.bank for playback control
The repository includes:
- Master.bank
- Master.strings.bank
- Music.bank
These demos use banks from FMOD SDK at fmod/api/studio/examples/media/ (accessed via symlink):
- parameters - Uses SFX.bank (event:/Ambience/Forest, event:/Ambience/Country)
- simple_sound_test - Uses SFX.bank (event:/UI/Cancel, event:/Weapons/Explosion)
- manual_sound_test - Uses SFX.bank and Music.bank
The FMOD SDK (downloaded during setup) includes all required banks:
- Master.bank, Master.strings.bank
- SFX.bank (21MB - contains ambience, weapons, UI sounds)
- Music.bank, Dialogue_*.bank, Vehicles.bank, VO.bank
If music demos fail: Rebuild the banks from FMOD Studio Getting Started example:
- Download FMOD Studio from fmod.com
- Open:
Help > Getting Startedor~/.fmod/FMOD Studio/Examples/GettingStarted.fspro - Build:
File > Build - Copy:
cp -r ~/.fmod/FMOD\ Studio/Examples/Build/Desktop/* assets/audio/demo_project/Build/Desktop/
If demos fail to run:
- Run
./setup_demos.shto verify setup and get bank file instructions - Run
./run_demos.sh verify_fmodto check FMOD installation - Ensure bevy_fmod is in sibling directory
- Verify bank files contain required events (see Bank Files section above)