不带MIDI消息的Java MIDI

不带MIDI消息的Java MIDI,java,midi,javax.sound.midi,Java,Midi,Javax.sound.midi,有没有一种方法可以在Java中发送和接收MIDI消息而不构造MIDI消息对象 我一直在研究一种概念验证的高性能实时音乐工作站原型,其中一个设计标准是,乐器的普通演奏和信号处理通常不分配任何对象:仅当用户更改设置时才分配对象。(我希望尽可能减少垃圾收集暂停的需要。) 显然,为每个细粒度MIDI事件分配一个MidiMessage对象与我想要遵循的理念相反。sampled包允许我在没有分配的情况下处理采样的声音,但到目前为止,我还无法找到在Java中使用MIDI而不分配大量对象的方法 有没有一种方法可

有没有一种方法可以在Java中发送和接收MIDI消息而不构造MIDI消息对象

我一直在研究一种概念验证的高性能实时音乐工作站原型,其中一个设计标准是,乐器的普通演奏和信号处理通常不分配任何对象:仅当用户更改设置时才分配对象。(我希望尽可能减少垃圾收集暂停的需要。)

显然,为每个细粒度MIDI事件分配一个MidiMessage对象与我想要遵循的理念相反。sampled包允许我在没有分配的情况下处理采样的声音,但到目前为止,我还无法找到在Java中使用MIDI而不分配大量对象的方法


有没有一种方法可以让我只将MIDI设备中的字节读入缓冲区,而不接收MIDI消息对象?MIDI消息很容易解码,因此我很高兴没有MIDI消息类提供的“帮助”(因为您仍然需要解码消息中的字节,所以没有多少帮助)。

如果我正确理解您的问题,您不能在代码中重用单个
MidiMessage
对象,并通过
setMessage()
重新分配其数据吗?这样,引用就不会丢失,也不会被垃圾收集。

是的,我认为这可以用于传输MIDI消息。当我接收它们时,我无法控制如何分配MidiMessage对象。