我正在尝试建立一个程序,以显示MIDI音符在屏幕上,而它是由合成器播放,使用Java Sound API (javax.sound.midi)。MIDI文件需要从磁盘加载,我在将Sequencer连接到合成器时遇到了一些问题,以便在合成器播放它时捕获音符。
我不能只是将序列加载到Sequencer并使用sequencer.start(),因为那样我就无法捕获midi消息,从而丢失note_on消息。另一方面,如果我将音序器连接到合成器,并只是将消息发送到合成器,它将在错误的时间播放所有音符。有没有一种方法可以在需要播放的时候将信息发送到合成器?一定有什么midi ticks能做到这一点,但我想不出来。另外,我不能很好地理解Java是如何管理midi时钟的。
发布于 2014-11-27 15:53:06
如果Sequencer支持多个发射器,请将其中两个发射器连接到合成器和您自己的接收器。
https://stackoverflow.com/questions/27159433
复制相似问题