ノートでMIDIファイルを再生する方法はありますか?例えばキーが押されたときのように、それはMIDIファイルの最初の音符だけを再生します。midiファイルを非同期で再生しますか?
Iveはmidi.jsを試しましたが、再生、一時停止、再開しかできません。
ノートでMIDIファイルを再生する方法はありますか?例えばキーが押されたときのように、それはMIDIファイルの最初の音符だけを再生します。midiファイルを非同期で再生しますか?
Iveはmidi.jsを試しましたが、再生、一時停止、再開しかできません。
私は現在、midiイベントリスナーで作業していますので、簡単なMIDIパーサーを作成しました。 hereプロジェクトをダウンロードし、MidiParser.jsファイルを/ buildからプロジェクトにコピーすることができます。
あなたは(完全な例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[yourIndex]
)でアクセスするためにvar event = parsedMidi.shift()
を使用できます。
サウンドを再生する場合は、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
おかげであります!本当に役に立ちました。私はパースされたミディをするのに少し問題があります。どのくらい正確に私はmidi jsプレーヤーにイベントを渡すことができます。私はキー入力が検出されたときにノートで全MIDIノートを進めようとしています。 さらなる助けをいただき、ありがとうございます。 –
'MIDI.noteOn(チャンネル、音符、ベロシティ、ディレイ)のようなもの ' https://github.com/mudcube/MIDI.js#midipluginjs---controls-midi-output またはhttps:// githubを参照してください。 com/mudcube/MIDI.js/blob/master/examples/Basic.html –
サー! const parsedMidiは無名関数の内部で作成され、どのようにグローバルスコープでそれにアクセスできますか?だから私はそれで動作することができます。私はparsedMidiを返そうとしましたが、うまくいきませんでした。 –
はい方法 – pokeybit