#midi #bevy #send-receive #control #bevy-plugin #gamedev #input-output

bevy_midi

Send and receive MIDI data to and from bevy and other programs or controllers

8 breaking releases

0.9.0 Jul 28, 2024
0.7.0 Nov 12, 2023
0.6.0 Apr 4, 2023
0.5.0 Jul 30, 2022
0.1.0 Jun 22, 2021

#338 in Game dev


Used in lyrebird

MIT/Apache

45KB
589 lines

bevy_midi
link to crates.io link to docs.rs link to license downloads/link to crates.io stars/github repo github actions tracking bevy release branch

A bevy plugin using midir and crossbeam-channel. This plugin allows you to read or write midi data for a selected midi input.

Showcase

Run the examples using:

Basic midi output: cargo run --release --example output
Basic midi input: cargo run --release --example input
UI Virtual Piano: cargo run --release --example egui
3D Virtual Piano: cargo run --release --example piano

Running the UI Virtual Piano example:

piano

Running the 3D Virtual Piano example:

https://user-images.githubusercontent.com/25123512/122971334-3bae6100-d38f-11eb-9605-4c314b088ff2.mp4

Notice: Sustain is not handled by the example

Browser support: Still work in progress.

Setup

See examples

Support

Bevy tracking

bevy bevy_midi
0.5 0.1.X
0.5 0.2.X
0.6 0.3.X
0.7 0.4.X
0.8 0.5.X
0.10 0.6.X
0.12 0.7.X
0.13 0.8.X
0.14 0.9.X

Licensing

The project is under dual license MIT and Apache 2.0, so joink to your hearts content, just remember the license agreements.

Contributing

Yes this project is still very much WIP, so PRs are very welcome

Dependencies

~38–74MB
~1.5M SLoC