A bevy plugin using [midir](https://github.com/Boddlnagg/midir) and [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam).
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](https://user-images.githubusercontent.com/25123512/229900178-debdf202-5161-443f-8c1f-5978b02b7fec.PNG)
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](https://img.shields.io/badge/Bevy%20tracking-released%20version-lightblue)](https://github.com/bevyengine/bevy/blob/main/docs/plugins_guidelines.md#main-branch-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