我正在尝试将 MIDI 数据从 Ableton Live 的控制表面脚本发送到我的 Arduino 板。
目前 Arduino 设置为记录在每个通道上收到的每条 MIDI / SysEx 消息,这就是它现在所做的一切。我可以通过使用 Live 的外部乐器来确认它是否正常工作:我将外部乐器设置为将 MIDI 发送到 Arduino 板并记录传入事件(使用 NoteOn、NoteOff、PitchBend 测试)。
但是当涉及到控制表面脚本时,什么都没有。这是我尝试过的:
# __init__.py
from .test import SendMidiTest
def create_instance(c_instance):
return SendMidiTest(c_instance)
# SendMidiTest.py
# I'm trying to send NoteOn MIDI message every time I change track in Live
import Live
from _Framework.ControlSurface import ControlSurface
g_logger = None
def log(msg):
global g_logger
if g_logger is not None:
g_logger(msg)
class SendMidiTest(ControlSurface):
def __init__(self, *a, **k):
super(SendMidiTest, self).__init__(*a, **k)
self.song().view.add_selected_track_listener(self.handle_track_change)
def handle_track_change(self):
log('track changed')
self._send_midi((144, 65, 112,))
log('message should be sent')
我在 Live 的日志中看到了两条消息,但我的板上没有任何传入的 MIDI(Arduino RX LED 也不闪烁)。
下面是 MIDI 端口的配置:
我究竟做错了什么?任何帮助表示赞赏。