在Java中将音高弯曲发送到MIDI音序器

时间:2013-09-20 00:24:01

标签: java sequence midi pitch synthesizer

我理解启动和运行MIDI音序器的基础知识,我希望能够在播放过程中增加/减少音序的音高,但是音高弯曲是一个发送到合成器而不是音序器的消息

我尝试将音序器的接收器设置为合成器的发射器,当我发送弯音短音时,音序器保持相同的音高但是合成器在新的音高弯曲值下播放第二个音轨,造成一些非常糟糕的 - 音乐。

在播放过程中是否有一种弯曲音高的好方法,就像改变速度一样?

另一个选项(看起来像是一个很大的kluge)是在调用时准备好加载不同键的MIDI文件的几个版本。

2 个答案:

答案 0 :(得分:0)

您可以通过调用send方法尝试send the messages directly到合成器的接收器,但合成器可能不允许其接收器相互影响。

最终,发送到合成器的消息存储在音序器的音轨中,因此要有音高弯曲消息edit the sequence来添加这些消息。

答案 1 :(得分:0)

MIDI协议没有定义任何音高标准,除了通常用作临时效果的弯音,而不是设置排列调音的方式。听起来你正在用Java实现一个音序器,在这种情况下我宁愿建议有一个全局的失谐偏好。然后,您只需使用默认调音(440Hz)渲染音频,然后将音调弯曲应用于弹跳布置。有几个库可以为你做弯道,包括优秀的DIRAC