<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>MIDI.js - Sequencing in Javascript.</title> <!-- midi.js css --> <!-- shim --> <script src="./inc/shim/Base64.js" type="text/javascript"></script> <script src="./inc/shim/Base64binary.js" type="text/javascript"></script> <script src="./inc/shim/WebAudioAPI.js" type="text/javascript"></script> <script src="./inc/shim/WebMIDIAPI.js" type="text/javascript"></script> <!-- jasmid package --> <script src="./inc/jasmid/stream.js"></script> <script src="./inc/jasmid/midifile.js"></script> <script src="./inc/jasmid/replayer.js"></script> <!-- midi.js package --> <script src="./js/midi/audioDetect.js" type="text/javascript"></script> <script src="./js/midi/gm.js" type="text/javascript"></script> <script src="./js/midi/loader.js" type="text/javascript"></script> <script src="./js/midi/plugin.audiotag.js" type="text/javascript"></script> <script src="./js/midi/plugin.webaudio.js" type="text/javascript"></script> <script src="./js/midi/plugin.webmidi.js" type="text/javascript"></script> <script src="./js/midi/player.js" type="text/javascript"></script> <script src="./js/midi/synesthesia.js" type="text/javascript"></script> <!-- utils --> <script src="./js/util/dom_request_xhr.js" type="text/javascript"></script> <script src="./js/util/dom_request_script.js" type="text/javascript"></script> </head> <body> <button id="playBtn">播放</button> <button id="pauseBtn">暂停</button> <button id="stopBtn">跳跃</button> <input type="range" id="skipBtn" value="100" min="45" max="200" /> <script type="text/javascript"> var midiData = { src: '', timeWarp: 1, } var currentTime = 0 var MIDI = window.MIDI MIDI.loadPlugin({ soundfontUrl: "./soundfont/", // instrument: ["acoustic_grand_piano", "synth_drum"], onsuccess: function () { console.log(MIDI) window.handleRendered && window.handleRendered() // MIDI.setInstrument(0, MIDI.GM.byName['synth_drum'].number) // MIDI.setInstrument(1, MIDI.GM.byName['acoustic_grand_piano'].number) } }); // 播放音符 function playNote(note, delay) { MIDI.noteOn(0, note, 100, 0); MIDI.noteOff(0, note, delay); } // MIDI.Player.currentTime = 100000 // MIDI.Player.timeWarp = 0.6289308176100629 // setInterval(() => { // // console.log(MIDI.Player.currentTime / 1000, MIDI.Player.restart) // }, 100) var playBtn = document.getElementById('playBtn') // var pauseBtn = document.getElementById('pauseBtn') // var stopBtn = document.getElementById('stopBtn') // var skipBtn = document.getElementById('skipBtn') playBtn.addEventListener('click', () => { MIDI.noteOn(0, 50, 50, 0); MIDI.noteOff(0, 50, 1); MIDI.noteOn(0, 50, 100, 1); MIDI.noteOff(0, 50, 2); console.log(MIDI) }) // pauseBtn.onclick = function () { // MIDI.Player.pause(); // } // stopBtn.onclick = function () { // MIDI.Player.currentTime = 100000 // MIDI.Player.resume(); // console.log(MIDI) // } // skipBtn.onchange = function (e) { // var timeWarp = Number(e.target.value) / 100 // // MIDI.Player.stop() // // const oldCurrent = MIDI.Player.currentTime // // const ab = MIDI.Player.replayer.getData() // // console.log(ab) // MIDI.Player.loadMidiFile(() => { // MIDI.Player.timeWarp = 1 / timeWarp // console.log('播放倍数', 1 / timeWarp, Number(e.target.value)) // MIDI.Player.resume(); // }) // } </script> </body> </html>