Crates.io | tether-midi-mediator |
lib.rs | tether-midi-mediator |
version | 0.4.3 |
source | src |
created_at | 2023-12-19 13:17:12.056164 |
updated_at | 2024-03-11 13:51:12.285498 |
description | MIDI to Tether messages |
homepage | |
repository | https://github.com/RandomStudio/tether-midi-mediator.git |
max_upload_size | |
id | 1074292 |
size | 143,897 |
Turns incoming MIDI (from your plugged-in device, or virtual device) into outgoing Tether messages in a standard form on plugs with standard names.
Download a release for your OS, and run it!
Available MIDI input ports will be detected automatically.
This Agent translates MIDI into standardised Tether Messages on standard plugs.
"controlChange"
channel
: MIDI channelcontrol
: knob/slider number/IDvalue
: absolute value 0-127"notesOn"
channel
: MIDI channelnote
: MIDI note numbervelocity
: volume/pressure 0-127"notesOff"
channel
: MIDI channelnote
: MIDI note numbervelocity
: volume/pressure 0-127 (typically 0)In addition, the "untranslated" MIDI message, as parsed by the underyling midi-msg library, is published on a plug "raw"
.
When it comes to Control Change messages, some MIDI controllers send absolute values from 0-127 depending on the knob position. This is the "standard" way.
Other controllers, particularly those with "endless" knobs (no stop points), send values meant to be interpreted as relative increase/decrease values. Tether Midi Mediator automatically handles this situation when in Relative mode (either select this in the GUI or pass --midi.relative
flag from command line). The behaviour in relative mode is:
"controlChange"
plug will publish only the absolute values; the "raw"
plug will contain the original values sent by the controllerRelative-mode is not standardised for MIDI devices. The above mechanism has been tested with an Akai APC Key25 Mk2. Submit an Issue if you think alternative algorithms should be possible.
You can change various settings using the command line. Append --help
for more details.
For example:
--headless
: run without a GUI - great for server / console-based use--tether.disable
: don't try to connect to MQTT Broker at all./tether-midi-mediator 0 1
will only use MIDI input ports 0 and 1