napari-midi

Control napari with a USB midi controller

BSD-3-CLAUSE License

Stars
4
Committers
1

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.