【问题标题】:Rtmidi - Ableton Remote Script - How to send MIDI_CC signals from rtmidi to Ableton Python remote scriptRtmidi - Ableton 远程脚本 - 如何将 MIDI_CC 信号从 rtmidi 发送到 Ableton Python 远程脚本
【发布时间】:2021-01-06 22:34:35
【问题描述】:

我编写了一个实用程序,用于将来自 python 脚本的 midi 数据发送到ableton,主要使用 rtmidi。

在ableton方面,我有一个远程脚本,相当简单,主类中只有几个按钮:

...
self._session = SessionComponent(8, 1, is_enabled=True)

self.next_track_button = ButtonElement(True, MIDI_CC_TYPE, 0, 25, *a, **k)
self.previous_track_button = ButtonElement(True, MIDI_CC_TYPE, 0, 26, *a, **k)

self.next_track_button.add_value_listener(self._next_track)
self.previous_track_button.add_value_listener(self._prev_track)

    def _next_track(self, value):
        self.log_message("Next Track")
        self._session.set_offsets(1, 0)
        self._session.update()

    def _prev_track(self, value):
        self.log_message("Prev Track")
        self._session.set_offsets(-1, 0)
        self._session.update()
...

远程脚本编译没有错误,但两个回调(_next_track 和 _prev_track)从未命中。

我想知道这是否与我从 rtmidi 发送 midi 信号的方式有关?

import rtmidi
from rtmidi.midiconstants import *

class MidiController:
...
    def send_midi_signal(self, data):
        self._init_midi_out()
        with self.midiout:
        #The issue is probably here
            msg = [(CONTROL_CHANGE & 0xF0) | ((self.channel) - 1 & 0xF)]
            msg.append(data & 0x7F)
            self.midiout.send_message(msg)
            time.sleep(0.5)
            del self.midiout
...

Ableton 肯定收到了一个 MIDI 信号,我可以在左上角的 MIDI 图标灯上看到。 问题是它没有达到回调,按要求更改轨道偏移量。

知道问题出在哪里吗?这几天一直在打我的头。

我什至尝试将按钮设置为监听 MIDI_CC,但没有成功。 谢谢。

【问题讨论】:

    标签: python midi ableton-live


    【解决方案1】:

    我终于解决了这个问题。 对于寻求相同答案的人,我犯了很多错误:

    1. 在 python 中通道被设置为 0 而不是 1。 如果您想在通道 1 上发送它,使用 0 是正确的,但是 msg 连接导致它变为 16。
    2. 我通过以下方式更改了 ButtonElement 结构: self.previous_track_button = ButtonElement(True, MIDI_CC_TYPE, 0, 102)

    为了检查我发送的 MIDI 命令,我使用了 MIDI-OX,非常有用。

    【讨论】:

      猜你喜欢
      • 2014-06-19
      • 2011-08-31
      • 2014-05-14
      • 1970-01-01
      • 2021-12-19
      • 2016-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多