在播放时捕捉 MIDI 音符?

Posted

技术标签:

【中文标题】在播放时捕捉 MIDI 音符?【英文标题】:Capture MIDI notes while on playback? 【发布时间】:2014-11-26 21:45:30 【问题描述】:

我正在尝试使用 Java Sound API (javax.sound.midi) 构建一个程序,以便在合成器播放 MIDI 音符时在屏幕上显示它。 MIDI 文件需要从磁盘加载,我在将音序器连接到合成器时遇到了一些问题,以便在合成器播放时捕捉音符。

我不能只将序列加载到 Sequencer 并使用 sequencer.start(),因为那样我将无法捕获 midi 消息,因此会丢失 note_on 消息。另一方面,如果我将音序器连接到合成器并将消息发送到合成器,它只会以错误的时间播放所有音符。有没有办法在要播放的时候将消息发送到合成器?一定有一些带有midi ticks的东西可以做到,但我想不通。另外,我不太明白Java是如何管理midi ticks的。

【问题讨论】:

【参考方案1】:

如果音序器支持多个发射器,请将其中两个连接到合成器和您自己的接收器。

【讨论】:

以上是关于在播放时捕捉 MIDI 音符?的主要内容,如果未能解决你的问题,请参考以下文章

iOS如何播放midi音符?

在 Java 中播放时将 midi 文件输出到控制台

使用 pygame.midi 播放 midi 音符时出现分段错误

iOS AUSampler 连续播放 MIDI 音符

无法使用 NAudio.Midi 播放音符

C++ 中的 MIDI 音符消息