【发布时间】:2013-06-08 13:46:02
【问题描述】:
有没有办法在 Java 中发送和接收 MIDI 消息而无需构造 MidiMessage 对象?
我一直在研究一种概念验证的高性能实时音乐工作站原型,其中一个设计标准是普通的乐器演奏和信号处理一般不分配任何对象:对象仅在用户更改设置时分配。 (我想尽可能减少垃圾收集暂停的需要。)
显然,为每个细粒度的 MIDI 事件分配一个 MidiMessage 对象与我想要遵循的理念相反。 javax.sound.sampled 包让我无需分配即可处理采样声音,但到目前为止,我还没有找到任何方法在 Java 中使用 MIDI 而无需分配大量对象。
有没有办法让我只将 MIDI 设备中的字节读入缓冲区,而不是接收 MidiMessage 对象? MIDI 消息很容易解码,所以我很高兴没有 MidiMessage 类提供的“帮助”(因为您仍然需要解码消息中的字节,所以无论如何也没有多大帮助)。
【问题讨论】:
标签: java midi javax.sound.midi