Skip to content

chainhackers/libfmod-demos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libfmod-demos

Interactive demos and examples for the libfmod Rust bindings to FMOD Engine.

Prerequisites: This project expects libfmod to be checked out in a sibling directory (../libfmod) with the FMOD SDK extracted there.

Quick Start

1. Clone libfmod in sibling directory:

# Clone libfmod alongside libfmod-demos
cd ..
git clone https://github.com/chainhackers/libfmod
cd libfmod

2. Download and extract FMOD SDK in libfmod directory:

# Download FMOD Studio API from https://www.fmod.com/download
tar -xzf fmodstudioapi20310linux.tar.gz

3. Configure library paths for libfmod-demos:

Create .cargo/config.toml in libfmod-demos directory:

[build]
rustflags = [
    "-L", "../libfmod/fmodstudioapi20310linux/api/core/lib/x86_64",
    "-L", "../libfmod/fmodstudioapi20310linux/api/studio/lib/x86_64",
]

4. Download test audio files:

cd ../libfmod-demos
./setup_demos.sh

5. Run demos:

# Set FMOD_SDK_DIR for the run script
export FMOD_SDK_DIR=../libfmod/fmodstudioapi20310linux

./run_demos.sh verify_fmod
./run_demos.sh harness_demo

Available Demos

Core Examples

  • verify_fmod - Verify FMOD installation and version
  • play_sound <file> - Play audio files
  • quick_test - Run comprehensive test suite

Interactive Demos

  • harness_demo [mode] - Non-interactive feature demonstrations
    • spatial - 3D spatial audio with moving source
    • explosion - One-shot event playback
    • parameters / rpm - Real-time parameter control
    • footsteps - Multiple simultaneous events
    • all - Run all demos (default)
  • interactive_harness - Real-time keyboard-controlled testing
    • 1-6 - Play/stop events
    • WASD/QE - Move sound source in 3D
    • Space - Stop all events
    • H - Toggle help

Test Suites

  • studio_banks_test - Bank loading and management
  • studio_events_test - Event playback and variations
  • studio_parameters_test - Parameter automation

Examples

# Basic verification
./run_demos.sh verify_fmod

# Play downloaded audio
./run_demos.sh play_sound assets/audio/bird.ogg

# 3D spatial demo
./run_demos.sh harness_demo spatial

# Interactive control
./run_demos.sh interactive_harness

Requirements

  • Rust 1.79+ (2024 edition)
  • FMOD Engine SDK 2.03.09+
  • Linux/macOS (Windows support planned)

Project Structure

libfmod-demos/
├── src/lib.rs           # Common utilities
├── examples/            # Demo implementations
├── assets/audio/        # Downloaded test files
├── setup_demos.sh       # Audio file downloader
└── run_demos.sh         # Demo runner script

License

MIT

About

Interactive demos and test harnesses for libfmod - Rust bindings to FMOD Engine audio middleware

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published