gpt4 book ai didi

java - 在 Java 中为 Garage band 构建 sysex 消息

转载 作者:行者123 更新时间:2023-11-29 08:48:27 26 4
gpt4 key购买 nike

我试图通过从 Java 程序发送一些 MIDI 消息来控制我的 GarageBand 音序器。它适用于 ShortMessage。比如我可以这样在GarageBand中录制一个C3:

ShortMessage myMsg = new ShortMessage();
myMsg.setMessage(ShortMessage.NOTE_ON, 0, 60, 93);
Receiver receiver = MidiSystem.getReceiver();
receiver.send(myMsg, -1);

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

最佳答案

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

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 两者都不支持;见GarageBand Control Codes .

关于java - 在 Java 中为 Garage band 构建 sysex 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23938290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com