single.php

C#で「Microsoft GS Wavetable Synth」のMIDIが再生されない場合の対処法

MIDIプログラミングをする際に遭遇した、「Microsoft GS Wavetable Synth」にNoteを送信しても音源が再生されない場合の対処方法について備忘録的に投稿しています。

Microsoft GS Wavetable Synthで再生されない

Windowsで利用できるMIDI音源の「Microsoft GS Wavetable Synth」にMIDI音源を扱えるWindows.Devices.MidiアセンブリからMidiNoteOnMessageでメッセージを送信しても再生されない場合がありました。

例えば、次のコードのようにして決め打ちで値を送信してもスピーカーから何も音が出ません。

IMidiMessage messageToSend = new MidiNoteOnMessage(0, 0, 80);
midioutPort.SendMessage(messageToSend);

Microsoft.General.MIDI DLSの追加

NuGetなどの外部ライブラリを追加した後などに遭遇するエラーなので、今回紹介するランタイム以外が必要になる場合も多いので注意してください。

具体的には次の手順で行います。

1.[ソリューション エクスプローラー]画面で、プロジェクトをマウスの右ボタンでクリックして表示されたポップアップメニューから[追加|参照]を選択します。

2. 表示された[参照マネージャー]画面で[Universal Windows]を選択して一覧から[Microsoft General MIDI DLS for Universal Windows Apps](複数ある場合は、サポートしているプラットフォームのバージョンに合わせる)左側のチェックを有効(付ける)にします。

3.[OK]をクリックします。

4.[ソリューション エクスプローラー]画面で[参照]ツリーに[Microsoft General MIDI DLS for Universal Windows Apps]が追加されます。

再度、メッセージを送信してスピーカーなどから音源が再生されるか確認します。

まとめ

今回は短い記事ですが、Visual StudioのC#で「Microsoft GS Wavetable Synth」でMIDI音源が再生されない場合の対処法について書きました。

C#などのアプリからNoteなどのメッセージを送信しても動作させるためには[Microsoft General MIDI DLS for Universal Windows Apps]への参照が必要のようです。

C#などから「Microsoft GS Wavetable Synth」にメッセージを送信しても再生されずに困っている人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です