我正试图通过rtmidi_python库控制Ableton。 此时,我可以通过蓝牙将消息发送给Slave,Slave接收它们并将它们发送给Ableton。 问题是'Play'命令不会在另一侧启动Ableton。我可以看到Ableton解释了命令,但没有做任何事情。
当我点击播放时,“停止”按钮将变灰,但轨道无法启动 这将打印
[242, 0, 0]
[250] 0.0
当我停止接收音轨时
[252]
当我改变位置时,奴隶也改变了轨道的位置,所以我认为播放命令不是正确的。 当我发送note_on消息时,它将由Slave播放。 我也尝试将命令更改为十六进制表示法,但这似乎没有解决它。
这是大师的midi部分:
midi_in = rtmidi.MidiIn()
for port_name in midi_in.ports:
print(port_name)
selected_device = int(input('Select a device '))
midi_in.open_port(selected_device)
while recording:
message, delta_time = midi_in.get_message()
if message:
data = json.dumps(message)
sock.send(data)
print(message, delta_time)
这是奴隶:
midi_out = rtmidi.MidiOut()
for port_name in midi_out.ports:
print(port_name)
midi_device = int(input('Select a device: '))
midi_out.open_port(midi_device)
data = client_sock.recv(1024)
while data != '':
stream = client_sock.recv(1024)
message = json.loads(stream.decode())
print(message)
midi_out.send_message(message)
有人可以帮帮我吗? 如果有人有关于获取MIDI节拍时钟的任何提示,我很乐意听到它们!
修改 我刚刚发现我正在寻找[248]命令,应该每季度发送24次。但它没有出现在我的控制台中。
答案 0 :(得分:1)
关于[248] midi时钟事件消息:默认情况下会忽略它们。
我使用MidiIn.ignore_types()
方法接收它们:
midiIn.ignore_types (sysex = True,
timing = False,
active_sense = True)
通常在致电open_port()
之后。