ゲーム音楽を作るのに MIDI 音源を使っているのですが、「 MIDI はもたる」というのをどこかで聞いて気になっておりました。ゲームを作る際に問題に遭遇しないために調査した思考の記録を残したいと思います。
ちょっと前に、ドラびでおさんというアーティストの方が、ドラムとコンピュータを MIDI ケーブルで繋ぎ、ドラムを叩いてリアルタイムに MAD 映像を操作するというパフォーマンスをされているのをテレビで目にしました。そこで MIDI ケーブルに流れるのは波形ではなく何かの信号なのだと気がつきます。
そこでわかったのが MIDI 機器、特に音源は信号を受信した段階ですぐに音を鳴らすという点です。つまり、曲を演奏しようと思ったら、音を鳴らすタイミングは信号を送る側が調整しなければならないのです。昔の Cakewalk のようなソフトウェアを MIDI シーケンサーと呼んだのはそういった理由からだそうです。ピアノロールで設定したタイミングに合わせて MIDI 信号を送るのが役割だったようです。
…となると当然の疑問が湧いてきます。 MIDI 機器は一度にどれだけの信号を処理できるのでしょうか。処理性能はハードウェアによって異なるでしょうが、ケーブルに流せる量は決まっているはずです(仕様が変わってないとどこかで聞いたような)。
で、調べてみました。規格を見ればわかるだろうとインターネットの世界に繰り出します。
ここによると…
BAUD : A measurement of speed at which serial data is transmitted. MIDI operates at 31.25 kBaud, i.e. data can be transferred at a speed of 31250 bits per second.
…だ、そうで、あんまし転送量は多くないことが分かります。
ノート(音符の情報)の量を送るには十分かもしれませんが、その他の情報をあわせて送る際に問題に遭遇した場合はこのあたりに着目しようと思います。
ちなみに、未確認なのですが USB 接続するととんでもない転送量を実現できるようです。こちらもかなり興味あるのですが、前述の通り、受け側の性能以上のことはできませんのであんまり期待してないです。
Contributions