#midi

bevy_rustysynth

A plugin which adds MIDI file and soundfont audio support to the bevy engine via rustysynth

5 releases

0.2.1 Sep 20, 2024
0.2.0 Sep 19, 2024
0.1.2 Sep 10, 2024
0.1.1 Sep 10, 2024
0.1.0 Sep 9, 2024

#184 in Audio

Download history 361/week @ 2024-09-07 299/week @ 2024-09-14 54/week @ 2024-09-21 9/week @ 2024-09-28

723 downloads per month

0BSD OR MIT OR Apache-2.0

4MB
197 lines

bevy_rustysynth

Crates License Tag Build

A plugin which adds MIDI file and soundfont audio support to the bevy engine via rustysynth.

Compatibility

Crate Version Bevy Version
0.1 0.14

Installation

crates.io

[dependencies]
bevy_rustysynth = "0.1"

Using git URL in Cargo.toml

[dependencies.bevy_rustysynth]
git = "https://github.com/exvacuum/bevy_rustysynth.git"

Usage

In main.rs:

use bevy::prelude::*;
use bevy_rustysynth::*;

fn main() {
    App::new()
        .add_plugins((
            DefaultPlugins,
            RustySynthPlugin {
                soundfont: // Bring your own soundfont or enable the "hl4mgm" feature to use a terrible 4MB default
            }
        ))
        .run();
}

Then you can load and play a MIDI like any other audio file:

let midi_handle = asset_server.load::<MidiAudio>("example.mid");

commands.spawn(AudioSourceBundle {
    source: midi_handle,
    ..Default::default()
});

License

This crate is licensed under your choice of 0BSD, Apache-2.0, or MIT license.

Dependencies

~24–59MB
~1M SLoC