在播放时捕捉MIDI音符?

时间:2014-11-26 21:45:30

标签: java midi playback

我正在尝试使用Java Sound API(javax.sound.midi)构建一个在合成器播放时在屏幕上显示MIDI音符的程序。 MIDI文件需要从磁盘加载,我在将Sequencer连接到Synthesizer时遇到一些麻烦,这样我就可以在合成器播放时捕获音符。

我不能只是将序列加载到Sequencer并使用sequencer.start(),因为那时我将无法捕获midi消息,因此会丢失note_on消息。另一方面,如果我将音序器连接到合成器并将消息发送到合成器,它将只是以错误的时序播放所有音符。有没有办法将消息发送到合成器JUST当它打算播放时?必须有一些midi蜱会做的事情,但我无法弄明白。另外,我无法理解Java如何管理midi ticks。

1 个答案:

答案 0 :(得分:0)

如果Sequencer支持多个Transmitters,请将其中两个连接到Synthesizer和您自己的Receiver。