Mik*_*012 5 javascript midi soundfont midi.js
我刚刚开始使用midi.js,到目前为止,它看起来确实很整洁。我目前正在像这样一次加载所有声音字体:
MIDI.loadPlugin({
soundfontUrl: "js/MIDI/soundfont/FluidR3_GM/",
instrument: instruments,
callback: function() {
app.MIDIManager.midiLoaded = true;
console.log("DONE LOADING");
}
});
Run Code Online (Sandbox Code Playgroud)
随着仪器阵列的增加,开始需要花费一些时间来完成加载。有没有一种方法可以仅在需要时动态加载仪器?我可以找到加载乐器的唯一方法是对loadPlugin的调用。我也找不到任何全面的API文档(我在演示页面和github上查看了),因此,如果我只是想念我想要链接到完整文档的链接。
MIDI.loadResource您可以使用(我在 GitHub 上查看代码时发现的一个未记录的函数)动态加载仪器js/midi/loader.js。
例如,下面的代码在通道 1 上添加了班卓琴,假设您想在通道 0 上保留先前加载的乐器。
loadInstrument('banjo')
function loadInstrument(instrumentName) {
MIDI.loadResource({
instrument: instrumentName,
onprogress: function(state, percent) {
console.log(state, percent);
},
onsuccess: function() {
MIDI.programChange(1, MIDI.GM.byName[instrumentName].number);
}
})
}
Run Code Online (Sandbox Code Playgroud)