通过 OSC 将 MIDI 消息从 Ruby 传输到纯数据

Transmitting MIDI Message from Ruby to Pure Data over OSC

我想从 USB Midi 设备传输 MIDI 消息,其中 MIDI 数据是通过 Ruby/libusb 捕获的,使用 OSC 到 Pure Data。

我需要这个结构的原因是 USB MIDI 接口被集成到 USB 控制界面中,并且整个设备已经被 Ruby 出于其他通信原因声明,所以它被阻止使用它直接在 Pd.

我就是这样试的。假设“mididata”包含一个数组,该数组已经用@mididata=data.bytes

转换为字符串

  @client.send Message.new("/Midi",@m.mididata.join(" "))

我必须使用空白 space 作为分隔符,因为如果我尝试用逗号分隔它,Pd(或 Ruby)会在逗号前调用一个反斜杠。

所以这让我在 Pd 方面:

print: 8 128 46 64

我不知道“8”是从哪里来的,但这不是我主要关心的问题。它更多地是关于如何将该信息拆分为“128”“46”“64”的数字块,以便使用此信息为 Pd 合成器实例形成消息——而不是使用通常的“Midiin”对象。

您可以使用解包对象获取列表中的各个项目。对于四个浮点数的列表,使用 [unpack f f f f]。我是否正确理解了这个问题? 还要查看 [netreceive][oscparse]、[oscformat]

的帮助文件