napari-midi
Control napari with a USB MIDI controller
What works
- bidirectional updates of the button and rotary dial LEDs
- Fast and slow scrolling dials
- Opacity of the topmost layer with the slider
- All out-of-tree code: no hacking napari internals needed 🎉
- Pretty decent API I think...! See all the
.bind_
calls at the end of the file.
What doesn't work
- Any kind of documentation or comments 😂
- Thread safety — see #2326 for how to do it properly, I mistakenly thought that our events would handle that for us 😬, thanks @tlambert03 for clarifying that the most certainly do not! 😂
- (same vein) race conditions. Some of our events don't seem to carry the event data (?), and checking the source for the value sometimes returns the old value — hence the
time.sleep
currently there.
- super clunky implementation
Installation
You can install napari-midi
via pip:
pip install git+https://github.com/jni/napari-midi
Contributing
Contributions are very welcome. Tests can be run with tox, please ensure
the coverage at least stays the same before you submit a pull request.
License
Distributed under the terms of the BSD-3 license,
"napari-midi" is free and open source software
Issues
If you encounter any problems, please file an issue along with a detailed description.