Skip to main content

Midi control for microscopes using pymmcore

Project description

pymmcore-midi

License PyPI Python Version CI codecov

MIDI Device control for microscopes using pymmcore

Installation

pip install pymmcore-midi

Usage

Create a pymmcore_midi.DeviceMap object (can be done from a YAML/JSON file), then connect it to a pymmcore-plus CMMCorePlus object.

device_name: X-TOUCH MINI
mappings:
  - [button, 8, Camera, AllowMultiROI]
  - [button, 9, Camera, Binning]
  - [knob, 2, Camera, Gain]
  - [knob, 9, Camera, CCDTemperature]
  # can also use this form
  - message_type: control_change
    control_id: 1
    device_label: Camera
    property_name: Exposure
  - message_type: button
    control_id: 10
    core_method: snap
  - message_type: knob
    control_id: 17
    core_method: setAutoFocusOffset
core = CMMCorePlus()
core.loadSystemConfiguration()

dev_map = DeviceMap.from_file(f)
dev_map.connect_to_core(core)

Now when you move a knob or press a button on your MIDI device, the corresponding property/method will be updated/called on the CMMCorePlus object. :tada:

Debugging/Development

Use the environment variable PYMMCORE_MIDI_DEBUG=1 to print out the MIDI messages that are being received from your device. (This is useful to determine the appropriate message type and control ID for your device map.)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymmcore_midi-0.1.0.tar.gz (12.2 kB view hashes)

Uploaded Source

Built Distribution

pymmcore_midi-0.1.0-py3-none-any.whl (9.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page