메모로 MIDI 파일 메모를 재생하는 방법이 있습니까? 예를 들어, 키를 누를 때와 마찬가지로, 미디 파일의 첫 번째 음표 만 연주합니다.midi 파일을 비동기 적으로 재생 하시겠습니까?
Ive는 midi.js를 시도했지만 파일을 재생하고 일시 중지했다가 다시 시작할 수 있습니다.
메모로 MIDI 파일 메모를 재생하는 방법이 있습니까? 예를 들어, 키를 누를 때와 마찬가지로, 미디 파일의 첫 번째 음표 만 연주합니다.midi 파일을 비동기 적으로 재생 하시겠습니까?
Ive는 midi.js를 시도했지만 파일을 재생하고 일시 중지했다가 다시 시작할 수 있습니다.
저는 현재 midi 이벤트 수신기에서 작업 중이므로 간단한 MIDI 파서를 만들었습니다. here 프로젝트를 다운로드 한 다음/build에서 MidiParser.js 파일을 프로젝트로 복사 할 수 있습니다.
당신은 그 (전체 예제 here)처럼 사용할 수 있습니다
// Create midi parser
var parser = new MidiParser();
// Load file and parse midi
var fileReader = new FileReader();
var midiFileInput = document.getElementById('midiFileInput');
midiFileInput.addEventListener('change', function(inputEvent) {
if (!inputEvent.target.files.length)
return false;
fileReader.readAsArrayBuffer(inputEvent.target.files[0]);
fileReader.onload = function(file) {
var uint8Midi = new Uint8Array(file.target.result);
var parsedMidi = parser.parseUint8(uint8Midi);
// Use parsed midi
document.body.innerHTML += '<pre>' + JSON.stringify(parsedMidi, null, 2) + '</pre>';
};
});
그것의 출력 포맷 noteOn의 및 이벤트 noteOff 배열 될 것입니다.
예를 들어, 키를 누를 때마다 var event = parsedMidi.shift()
을 사용하여 다음 이벤트를 얻거나 오름차순 색인 (var event = parsedMidi[yourIndex]
)으로 액세스 할 수 있습니다.
소리를 재생하려면 midi.js 또는 sample-player을 사용할 수 있습니다. (아직이 하나를 테스트하지 않았습니다)
편집 :
자습서 : https://github.com/Otto-AA/MidiPlayer/blob/master/tutorials/MidiParser.md
문서 : https://github.com/Otto-AA/MidiPlayer/blob/master/docs/MidiParser.md
감사가! 정말 도움이되었습니다. 나는 파스 미드 미를 연주하는 데 약간의 문제가있다. 정확히 어떻게 미디 js 플레이어에게 이벤트를 전달할 수 있습니다. 키 입력이 감지되면 전체 미디 노트를 읽으려고합니다. 추가 도움을 주셔서 감사합니다. 친구. –
'MIDI.noteOn (채널, 음, 속도, 지연) '과 같은 것' https://github.com/mudcube/MIDI.js#midipluginjs---controls-midi-output 또는 https : // github를 참조하십시오. co.kr/mudcube/MIDI.js/blob/master/examples/Basic.html –
선생님! const parsedMidi는 익명 함수 내에서 만들어지며 전역 범위에서 어떻게 액세스 할 수 있습니까? 그래서 나는 그것으로 일할 수있다. 나는 parsedMidi를 돌려 보았지만 didnt는 일했다. –
예 방법 – pokeybit