2025.06.24
ブラウザでソフト音源
Web MIDI APIというのを使うとJavascriptでMIDI入出力プログラムが作れるという話は前から知っていたんだけど,このAPIが出来てすぐにMIDIのSYSEXがセキュリティ的に危ないということでブラウザがMicr◎s◎ft GS Wavetable Synth(ソフト音源)をブロックするようになってしまった.この影響でハード音源は問題ないんだがソフト音源は検出自体ができない罠orz さすがにこれはどうしようもないのかなと諦めてずいぶんな年月が経ってしまったんだが,先日,ふとしたネットサーフィン(タヒ語)中に偶然,解決できそうな方法があることに気づいてしまったので実験してみたw(←仕事しる


仮想MIDIポートを設定できるloopMIDIというアプリを使うとハード音源があるかのようなMIDIポートができあがるw


MIDIポートを列挙できるJavascriptコードを実行したら無事loopMIDIを取得できたw


さらに,MIDIberryというアプリを使うと設定された入力ポートと出力ポートをつないでくれるので,入力ポートにloopMIDIを選択し,出力ポートにMicr◎s◎ft GS Wavetable Synthを選択したw

window.navigator.requestMIDIAccess().then( midi =>
{
var outputs = Array.from( midi.outputs ); // MIDI出力ポート情報
if ( outputs.length ) // 出力ポートが1つ以上存在するとき
{
outputs[0][1].send( [ 0x90, 0x45, 0x7f ] ); // ノートオン
setTimeout( () =>
{
outputs[0][1].send( [ 0x80, 0x45, 0x00 ] ); // ノートオフ
}, 1000 ); // 1秒遅延実行
}
} );
で,このJavascriptコードを実行したらブラウザ上でMicr◎s◎ft GS Wavetable Synthの音が鳴ったw(←はいはいヨカッタでちゅねーw
コメント一覧
コメント投稿

名前

URL

メッセージ

- CafeLog -