首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中为Garage band构建sysex消息

在Java中为Garage band构建sysex消息
EN

Stack Overflow用户
提问于 2014-05-30 00:34:46
回答 1查看 766关注 0票数 2

我试图通过从Java程序发送一些midi消息来控制我的GarageBand音序器。它在ShortMessage上运行良好。例如,我可以这样在GarageBand中记录一个C3:

代码语言:javascript
复制
ShortMessage myMsg = new ShortMessage();
myMsg.setMessage(ShortMessage.NOTE_ON, 0, 60, 93);
Receiver receiver = MidiSystem.getReceiver();
receiver.send(myMsg, -1);

现在,我想发送一些SysEx消息来“控制”我的音序器,例如,开始录制。但是构建SysexMessage比构建ShortMessage更难,因为它需要构建一个字节数组。特别是,必须指定“制造商ID”。在网上查找关于这个问题的一些信息给我的感觉是我走错了方向,因为似乎没有什么是真正清楚的。有人熟悉这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2014-05-31 23:46:48

可以使用字节数组创建SysEx消息:

代码语言:javascript
复制
byte[] mmcStart = new byte[]
    { (byte)0xf0, 0x7f, 0x7f, 0x06, 0x02, (byte)0xf7 };
SysexMessage myMsg = new SysexMessage(mmcStart);

制造商ID用于防止在使用特定于供应商的消息时发生冲突。标准化消息使用预留制造商ID 7E (用于非实时消息)或7F (用于实时消息)。

请注意,除了MMC启动消息之外,还有一个简单的MIDI启动消息(ShortMessage.START)。

但是,请参阅GarageBand Control Codes,GarageBand对这两种方法都不支持。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23938290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档