#midi-file #bevy #sound-font #plugin #rustysynth

bevy_rustysynth

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

6 releases

new 0.3.0 Dec 9, 2024
0.2.1 Sep 20, 2024
0.1.2 Sep 10, 2024

#638 in Audio

Download history 385/week @ 2024-09-09 312/week @ 2024-09-16 18/week @ 2024-09-23 8/week @ 2024-09-30 4/week @ 2024-10-07 3/week @ 2024-10-14 2/week @ 2024-11-04 54/week @ 2024-12-02

54 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.2 0.14

Installation

crates.io

[dependencies]
bevy_rustysynth = "0.2"

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

~25–56MB
~1M SLoC