【问题标题】:Python RTMidi control Ableton LivePython RTMidi 控制 Ableton Live
【发布时间】:2014-06-19 00:57:51
【问题描述】:

我正在尝试通过 rtmidi_python 库控制 Ableton。 此时,我可以通过蓝牙向 Slave 发送消息,Slave 接收它们并将它们发送给 Ableton。 问题是“播放”命令不会在另一侧启动 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 次。但它没有出现在我的控制台中。

【问题讨论】:

    标签: python midi ableton-live


    【解决方案1】:

    关于 [248] midi 时钟事件消息:默认情况下它们被忽略。

    我使用MidiIn.ignore_types()方法接收它们:

    midiIn.ignore_types (sysex        = True, 
                         timing       = False,
                         active_sense = True)
    

    通常在致电open_port() 之后。

    【讨论】:

      猜你喜欢
      • 2011-08-31
      • 2021-01-06
      • 2011-04-30
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多