Как отправить данные из функции javascript в MIDI.noteOn() в API MIDI.js

Я знаком с C++ и протоколом MIDI, но я новичок в JavaScript. Я успешно запустил пример Basic.html https://github.com/mudcube/MIDI.js/blob/master/examples/Basic.html из git hub ниже:

<body>
<script type="text/javascript">
window.onload = function () {
MIDI.loadPlugin({
    soundfontUrl: "./soundfont/",
    instrument: "acoustic_grand_piano",
    onprogress: function(state, progress) {
        console.log(state, progress);
    },
    onsuccess: function() {
        var delay = 0; // play one note every quarter second
        var note = 50; // the MIDI note
        var velocity = 127; // how hard the note hits
        // play the note
        MIDI.setVolume(0, 127);
        MIDI.noteOn(0, note, velocity, delay);
        MIDI.noteOff(0, note, delay + 0.75);
    }
});
};
</script>
</body>

Я хотел бы загрузить плагин, когда окно загружается. Затем я хотел бы, чтобы моя собственная функция javascript отправляла указанное значение ноты в MIDI.noteOn() и MIDI.noteOff(). Мне стыдно задавать такой простой вопрос, но я ничего не добиваюсь от своих попыток. Спасибо за любые предложения.

1 ответ

Решение

В JavaScript вы можете называть функции, а затем ссылаться на них по имени.

function playNote() {
  MIDI.noteOn(0, 50, 127, 0);
  MIDI.noteOff(0, 50, 0.75);
}

MIDI.loadPlugin({
  soundfontUrl: './soundfont/',
  instrument: 'acoustic_grand_piano',
  onsuccess: playNote
});
Другие вопросы по тегам