1

私は自分のプロジェクトで 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 プレーヤー関数を使用する方法がわかりません。ガイドしてください。

4

2 に答える 2

1

MIDI.js の代わりにhttps://github.com/surikov/SSSynthesiser.jsを使用してください。

SSSynthesiser.js は、何を再生しているかを完全に制御します。すべての楽器サンプル、メロディーなどをリアルタイムで変更できます。

アップデート

これは古い答えです。

代わりにhttps://github.com/surikov/webaudiofontを使用してください。

ドキュメントを読み、例を見てください。ここで MIDI プレーヤーの例を参照してください https://surikov.github.io/webaudiofont/examples/midiplayer.html

于 2015-09-03T19:07:35.300 に答える
0

MIDIプレーヤーを一連の音符に直接実装することはできないと思うので、私が得た解決策は、一連の音符をMIDIファイルに変換する必要があり、その後MIDIファイルをプレーヤーに入力できることです。MIDIファイルの変換の詳細を提供するリンクは次のとおりです

http://mudcu.be/journal/2011/11/base64-soundfonts/

MIDI ファイルの音符のシーケンスを変換するのに役立つライブラリ https://github.com/sergi/jsmidi

于 2015-07-07T09:30:20.230 に答える