用于MIDI消息的OSC消息格式

时间:2016-03-25 10:11:12

标签: go midi osc ableton-live

我使用github.com/hypebeast/go-osc/osc包将OSC消息发送到OSC服务器。为此,我使用OSCulator,以便将数据作为MIDI路由到Abelton Live。

我遇到的问题是我无法找到有关消息格式化的任何信息,例如注释,注释,持续时间等。我在OSCulator网站上找到了一个有点帮助的指南,但是它没有详细介绍消息传递:http://s3.amazonaws.com/osculator/doc/OSCulator+2.12+Manual.pdf

例如,以下函数运行正常,但我不知道消息实际上在做什么:

func note(pitch float32 , velocity float32) {

    // TODO: Pass client into function. Find out it's type.
    client := osc.NewClient("localhost", 8765)     

    noteMsg := osc.NewMessage("/4/toggle2")
    client.Send(noteMsg)

    msg := osc.NewMessage("/4/xy")
    msg.Append(pitch)
    msg.Append(velocity)
    client.Send(msg)
}

我的意思是,4在这方面发挥了什么作用,什么是xy?此外,除了toggle2之外还有哪些其他消息可用?我认为在线会有一些文档,它们可以为MIDI类型的应用程序提供所有不同类型的消息。

1 个答案:

答案 0 :(得分:0)

您的问题似乎与OSC本身有关。

OSC的工作原理如下:

您向服务器发送消息。消息由地址和一些值组成。

在这种情况下,/4/xy是地址。 4和斜线你定义将是什么。当您在另一侧收到它时,您将知道您想要接收的内容,这意味着您要发送的地址。因此,您将配置服务器或接收方在收到来自特定地址的消息时执行某些操作。

以同样的方式,您要将值附加到消息中。您已经知道的价值数量,因此您只需在收到时就可以使用它们。

基本上,如果您决定使用键盘发送备注,则可以使用/keyboard/note之类的内容作为地址并一次发送一个值,这样您就可以读取此值并对其执行操作。