#midi #tether #messages #input #devices #ports #relative

app tether-midi-mediator

MIDI到Tether消息

6个版本

0.4.3 2024年3月11日
0.4.2 2024年3月11日
0.3.0 2024年3月7日
0.2.0 2023年12月19日

#199音频

Download history 84/week @ 2024-03-14 8/week @ 2024-03-21 1/week @ 2024-03-28 9/week @ 2024-04-04 76/week @ 2024-04-11

每月 154 下载

MIT 协议

39KB
806

Tether Midi Mediator

将传入的MIDI(来自您的插入设备或虚拟设备)转换为带有标准名称的插座上的标准格式的Tether消息。

运行

下载适用于您的操作系统的版本,然后运行它!

将自动检测可用的MIDI输入端口。

Tether MIDI消息

此代理将MIDI转换为标准插座的标准化Tether消息。

  • ControlChange(旋钮/滑块)输入
    • 发布在插座 "controlChange"
    • 键是
      • channel:MIDI通道
      • control:旋钮/滑块编号/ID
      • value:绝对值 0-127
  • Note On 输入
    • 发布在插座 "notesOn"
    • 键是
      • channel:MIDI通道
      • note:MIDI音符编号
      • velocity:音量/压力 0-127
  • Note Off 输入
    • 发布在插座 "notesOff"
    • 键是
      • channel:MIDI通道
      • note:MIDI音符编号
      • velocity:音量/压力 0-127(通常为0)

此外,"未翻译"的MIDI消息,由底层midi-msg库解析,发布在插座 "raw"

绝对与相对模式

对于Control Change消息,一些MIDI控制器根据旋钮位置发送0-127的绝对值。这是"标准"方式。

其他控制器,特别是那些具有"无限"旋钮(没有停止点)的控制器,发送旨在被解释为相对增加/减少值的值。Tether Midi Mediator在相对模式下自动处理这种情况(要么在GUI中选择此选项,要么从命令行传递--midi.relative标志)。相对模式的行为是

  • 范围下半部分的值(0-63)被解释为增加速度
  • 范围上半部分的值(64-127)被解释为减少速度
  • 对于同一通道+控制器,任何“之前已知的”值都将被召回,并应用增减;如有必要,范围也将被限制。
  • "controlChange" 插件将仅发布绝对值;"raw" 插件将包含控制器发送的原始值。

MIDI 设备上尚未标准化相对模式。上述机制已在 Akai APC Key25 Mk2 上进行了测试。如果您认为应该有其他算法,请提交问题。

CLI 选项

您可以使用命令行更改各种设置。附加 --help 以获取更多详细信息。

例如

  • --headless:在没有 GUI 的情况下运行 - 适用于服务器/控制台使用
  • --tether.disable:根本不尝试连接到 MQTT 代理
  • 参数后面的数字,例如 ./tether-midi-mediator 0 1 将仅使用 MIDI 输入端口 0 和 1

待办事项

  • 处理“相对模式”旋钮控制器值,例如 Akai APC Key25
  • 显示传入的 MIDI 消息和传出的 Tether 消息
  • 使能够列出端口,可选地指定输入
  • 转换,并可能可视化,MIDI 音符数字 -> 实际音符
  • 转换另一个方向,即 Tether 消息 -> Midi 输出

依赖关系

~27–69MB
~1M SLoC