Как реализовать MIDI-плеер MIDI.js для последовательности нот
Я использую 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 для такой последовательности. Пожалуйста, руководство.
2 ответа
Используйте https://github.com/surikov/SSSynthesiser.js вместо MIDI.js.
SSSynthesiser.js имеет полный контроль над тем, что играет. Вы можете изменить в реальном времени все образцы инструментов, мелодии и т. Д.
Обновить
это старый ответ.
Используйте https://github.com/surikov/webaudiofont вместо него.
Читайте документы, смотрите примеры. Смотрите пример для MIDI-плеера здесь https://surikov.github.io/webaudiofont/examples/midiplayer.html
Я думаю, что невозможно реализовать MIDI-плеер непосредственно для последовательности нот, поэтому я получил следующее решение: нужно преобразовать последовательность нот в MIDI-файл, а затем вы можете ввести MIDI-файл в плеер. Вот ссылка, которая дает более подробную информацию о преобразовании файла MIDI
http://mudcu.be/journal/2011/11/base64-soundfonts/
Библиотека, которая помогает конвертировать последовательность нот в MIDI-файле https://github.com/sergi/jsmidi