我在我的项目中使用MIDI.js,这是我播放MIDI音符序列的代码
for (var repeat = 0; repeat < melodyrepititions; repeat++)
{
for (var i = 0; i < composition.length; i++)
{
for (var j = 0; j < composition[i].length; j++)
{
if (composition[i][j] != 0)
{
MIDI.noteOn(0, composition[i][j] + scale, velocity,delay );
MIDI.noteOff(0, composition[i][j] + scale, delay+onlynotationsofeachbeatbracketdelay[i][j]);
}
else if (composition[i][j] == 0)
{
MIDI.noteOff(0, composition[i][j] + scale, delay);
}
delay = delay + onlynotationsofeachbeatbracketdelay[i][j];
}
}
}我想实现这个序列的MIDI.js播放器开始,暂停,停止旋律的同时播放。我不知道如何使用MIDI.js播放器函数来处理这样的序列。请指点一下。
发布于 2015-09-04 03:07:35
使用https://github.com/surikov/SSSynthesiser.js而不是MIDI.js。
SSSynthesiser.js完全控制正在播放的内容。您可以实时更改所有乐器样本,旋律等。
更新
这是一个古老的答案。
使用https://github.com/surikov/webaudiofont而不是它。
阅读文档,查看示例。请参阅此处的MIDI播放器示例https://surikov.github.io/webaudiofont/examples/midiplayer.html
发布于 2015-07-07 17:30:20
我认为不可能直接将MIDI播放器实现为音符序列,所以我得到的解决方案是,需要将音符序列转换为MIDI文件,然后可以将MIDI文件输入到播放器中。这里是链接,它提供了更多关于MIDI文件转换的细节
http://mudcu.be/journal/2011/11/base64-soundfonts/
帮助转换MIDI文件https://github.com/sergi/jsmidi中的音符序列的库
https://stackoverflow.com/questions/30980448
复制相似问题