Generically control MIDI devices with MIDI
Project description
MIDI Device Control
Generically control MIDI devices with other MIDI devices!
DESCRIPTION
This package sports a single method: control() which allows MIDI control of a device with a controller, as defined in a YAML configuration file.
Configuration YAML
The configuration file has four parts: The required MIDI controller and MIDI device to be controlled, an optional description, and a required list of messages. Each message can have differring keys depending on what is being controlled. These keys are as follows:
type (required) can either be note_on, note_off, control_change, program_change, or pitchwheel.
cmd (required) can be any of the above types.
note is the MIDI note number (e.g. middle c = 60) that is sensed by the controller.
control is the MIDI CC# control change number that is sensed by the controller.
target (optional) is the MIDI CC# control change number that is changed on the controlled MIDI device.
data (optional) is the value to be changed given the above target.
One of note or control must be given for note_on or control_change types.
controller: 'Arturia Keyboard'
device: 'Yamaha DX7'
description: 'MIDI control test!'
messages:
- type: note_on # what type of message is sensed
note: 60 # middle c does the controlling here
cmd: control_change # the message type that is sent
target: 14 # what parameter is to be controlled
- type: control_change
control: 1 # the modwheel does the controlling here
cmd: control_change
target: 15
data: 64 # the value to set for CC# 15
- type: pitchwheel
cmd: control_change
target: 16 # this CC changes with the pitchwheel
The controller and device must be on as MIDI ports. And these must be named exactly as they appear to the system.
Please see mido.get_output_names() and mido.get_input_names() for these known MIDI port names.
Example:
from midi_device_control import Controller
device_file = 'some-controller-some-device.yaml'
c = Controller(device_file=device_file)
c.control()
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file midi_device_control-0.1.5.tar.gz.
File metadata
- Download URL: midi_device_control-0.1.5.tar.gz
- Upload date:
- Size: 41.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4464c9c2c27e9def04d0e1f87e87474a19b599c7c521132fc3b6070799c5b987
|
|
| MD5 |
07997b10d8f4d2f46fe9c7e622db6f40
|
|
| BLAKE2b-256 |
3f6265d073944631482430e5e4a80f42fb1f8bc7fb907d9526f4bc55c15de505
|
File details
Details for the file midi_device_control-0.1.5-py3-none-any.whl.
File metadata
- Download URL: midi_device_control-0.1.5-py3-none-any.whl
- Upload date:
- Size: 28.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0164dee4b414aa8e51fc3cd74488d692f6ba6c9a4189fa4315cc4af7ef8fdcf
|
|
| MD5 |
64ba2336be6c051c40112fb2853c2da2
|
|
| BLAKE2b-256 |
00e512c6acd7fcb6dc2391408c06ea2ae5216b24078bca0f2fcbc324a4adb5a2
|