MIDI 消息的 OSC 消息格式
Posted
技术标签:
【中文标题】MIDI 消息的 OSC 消息格式【英文标题】:Message formatting of OSC for MIDI messages 【发布时间】:2016-03-25 10:11:12 【问题描述】:我正在使用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 类型应用程序的所有不同类型的消息。
【问题讨论】:
Existing standard(s) for passing MIDI via OSC?的可能重复 您没有在 Ableton 中直接使用 OSC 而是将其转换为 midi(例如使用 showsync.info/livegrabber)是否有特定原因? @Mattijs 我不认为这是可能的,尽管我昨天确实发现了我现在正在玩的 Connection Kit。 @BugHunterUK 确实,新的连接套件甚至可能是一个更好的选择 @Mattijs 是的!实际上非常棒。 【参考方案1】:您的问题似乎与 OSC 本身更相关。
OSC 是这样工作的:
您向服务器发送消息。消息由地址和一些值组成。
在这种情况下,/4/xy
是地址。您定义的 4 和斜线将是什么。当你在另一边收到它时,你就会知道你想收到什么,这意味着你要发送的地址。因此,您将配置服务器或接收器,使其在接收到来自特定地址的消息时执行某些操作。
以同样的方式,您将值附加到消息中。您已经知道的值的数量,因此您只需在收到时对它们做您想做的事情。
基本上,如果您决定使用键盘发送笔记,您可以使用/keyboard/note
之类的地址并一次发送一个值,因此您将读取该值并对其进行处理。
【讨论】:
以上是关于MIDI 消息的 OSC 消息格式的主要内容,如果未能解决你的问题,请参考以下文章