Coder Social home page Coder Social logo

brianwiz / bevy_fmod Goto Github PK

View Code? Open in Web Editor NEW

This project forked from salzian/bevy_fmod

0.0 0.0 0.0 81 KB

Idiomatic integration of the FMOD audio engine into Bevy projects. Enables spatial audio, real-time parameter adjustments, live updates, and Doppler effects.

License: Apache License 2.0

Rust 100.00%

bevy_fmod's Introduction

bevy_fmod

Latest compatible Bevy version Latest compatible FMOD version License GitHub release

This crate aims to provide an idiomatic Bevy plugin for FMOD. This crate wraps libfmod.

FMOD

FMOD is a cross-platform audio engine that is used in many games. It is a commercial product, with a free license available for specific terms.

FMOD attribution

This crate is not affiliated with FMOD in any way. It is not endorsed by or affiliated with Firelight Technologies Pty, Ltd. To use FMOD in your application, you are required to include attribution by Firelight Technologies' terms. Learn more here.

Supported platforms

Currently, this crate is only tested and developed for Windows (non-UWP) and Linux. More platforms are planned eventually.

MacOS: Salzian#2
Web: Salzian#51

Pull requests are welcome.

External dependencies

This crate does not bundle the required FMOD libraries. You will need to download the appropriate libraries here. This requires a free FMOD account.

Windows

  • Download the "FMOD Engine" package for Windows. Make sure to select a compatible version.
  • Install the package.
  • You need the following 4 files in the root of your rust project:
    • api/core/lib/x64/fmod.dll
    • api/core/lib/x64/fmod_vc.lib
    • api/studio/lib/x64/fmodstudio.dll
    • api/studio/lib/x64/fmodstudio_vc.lib

Linux

Below are the steps for a fairly minimal method to link the libraries. See the comments in build.rs for more information.

  • Download the "FMOD Engine" package for Linux. Make sure to select a compatible version.
  • Create a new folder fmod in the root of your project.
  • Extract the api folder into it.
  • Copy the contents of build.rs into your own build script.

Usage

[dependencies]
bevy_fmod = { git = "https://github.com/Salzian/bevy_fmod.git", tag = "<bevy_fmod release tag>" }

Get the latest release tag on the releases page.

Examples

To test the examples of this library, clone the repository. FMOD Studio comes with an Examples project. Open it and select File > Save as.... Save the project as <bevy_fmod>\assets\audio\demo_project.fspro. Now, build the project (File > Build). This will create a folder called .\assets\audio\demo_project\Build which is used by our examples.

Run examples with cargo run --example <example_name>. Find the list of examples in the Cargo.toml See the source code of the examples for more details.

Live Update

Live update is a way of connecting FMOD Studio to your game as it runs, allowing you to update and monitor audio content in real time.

https://www.fmod.com/docs/2.02/studio/editing-during-live-update.html

To enable live update, you need to enable the live-update feature. While you can do so in Cargo.toml, I recommend to explicitly enable it with the --features flag. This way, you won't accidentally include it in your release builds.

cargo run --example minimal --features live-update

Versioning

bevy_fmod Bevy FMOD (tested version, newer may work)
0.4.0 0.13 2.02.20
0.3.0 0.11.2 2.02.12
0.2.0 0.11.2 2.02.12
0.1.0 0.10.0 2.02.12
0.0.1 0.10.0 2.02.12

bevy_fmod's People

Contributors

salzian avatar gitghillie avatar peepo-juice avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.