Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/valsteen/midi_bpm_detection
Midi BPM detection Clap/VST3 plugin. Check the demo at https://valsteen.github.io/midi_bpm_detection/ 👷 Very early phase, it won't build for you 🚧
https://github.com/valsteen/midi_bpm_detection
clap clap-plugin egui midi rust
Last synced: 1 day ago
JSON representation
Midi BPM detection Clap/VST3 plugin. Check the demo at https://valsteen.github.io/midi_bpm_detection/ 👷 Very early phase, it won't build for you 🚧
- Host: GitHub
- URL: https://github.com/valsteen/midi_bpm_detection
- Owner: valsteen
- License: mit
- Created: 2024-02-20T18:21:47.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-03-08T22:27:50.000Z (11 months ago)
- Last Synced: 2025-01-31T15:45:51.513Z (1 day ago)
- Topics: clap, clap-plugin, egui, midi, rust
- Language: Rust
- Homepage: https://valsteen.github.io/midi_bpm_detection/
- Size: 3.29 MB
- Stars: 9
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Midi BPM detection
The purpose of this project is to let you play a midi instrument without worrying about being on time when recording,
instead, the tempo at which you play is evaluated in real time and injected into the host DAW ; doing so, hopefully,
your
recording will nicely fit into a loop without needing adjustments.The plugin does so by comparing all combinations of intervals between notes and finding regularities, accounting for a
range of tempo configured by the user, a margin of error and other configurable parameters.The screenshot below shows the different parameters and the realtime representation of the evaluation. The highest curve
will be the most probable BPM.The process is indeed not perfect and parameters must be tweaked depending on the play style.
WASM Demo: https://valsteen.github.io/midi_bpm_detection/
## State of the project
This is in a very early works-on-my-machine state and will require further cleanup and testing.
In the meantime curious developers may simply have a look at the model, the core of the BPM evaluation can be found in
[midi/bpm_detection.rs](crates/midi/src/bpm_detection.rs).## Building and using the Clap/VST3 Plugin
This has not been thoroughly tested and only on Mac.
The process should be:
```shell
cargo xtask bundle midi-bpm-detector-plugin --release
```The plugin in two formats should be available under `target/bundled` , as `midi-bpm-detector-plugin.clap` and
`midi-bpm-detector-plugin.vst3`.To make it really useful, it has to control the tempo of the host DAW. Plugins don't have this capability so there is
the companion controller script for Bitwig:https://github.com/valsteen/bitwig-beat-detection-controller
Just make sure to load the controller script, then add the Clap plugin to the track on which you'll do your midi
recording.
Upon selecting the plugin, the controller script will detect it and start communicating with it ( the "DAW Port"
parameter will change, they will communicate via TCP from there ).
Then set the "Send tempo" to "On".