MIDI Outputの実装

公開:2010-12-14 05:55
更新:2020-02-15 04:36
カテゴリ:windows,マルチメディア,midi,audio

続いてMIDI Outputも実装してみた。とりあえずはデバイスの列挙・オープン・クローズのみである
MIDI Outにソフトシンセ(Microsoft GS Wavetable SW Synth)を選んで、昨日作ったMIDI Inputクラスと::midiConnectしてみた。MIDIキーボードを押すと発音はした。
まだMIDIメッセージを送信する部分はつくっていない。このあたりはデータフォーマットをある程度固めてから進めようと思う。

ソースコード

ソフトシンセは発音までのレイテンシが200ms-300msくらいある。レイテンシが10ms以下でVSTiを弾く感覚に慣れてしまったのでかなり遅く感じる(私はキーボードは弾けないので遅れても全然問題はないが)。

この発音の遅さはWave出力のレイテンシそのものだと思われるので、WASAPIで作りなおせばこのもたりは解消されそうだが、Windows 7になってもそのまま放置されている。WASAPIの良いデモになりそうなんだけどね。つくり直すとなると音色データの作り直しとエフェクた機能の付加は必須だろうけど。

このMIDI Outデバイスタイプのソフトシンセは廃れてしまったように見える。RolandからVSCが発売され、YAMAHAからも発売されたときは未来を感じたのものだが。DAWのプラグインとして(VSTi)は盛況だけれど。廃れた原因はレイテンシだろう。弾ける人だと特に使いづらい。仮想MIDIインターフェース+VST Host+VstiでMIDIシーケンサからソフトシンセを使えるようにする情報もあるくらいなので、レイテンシさえ改善すればそこそこ需要はありそうなんだけれどどうだろう。

このMIDI Outデバイスに見えるソフトウェアってどうやって作るのだろうか。少し興味が出てきたので調べてみることにしよう。