<MIDI2.0情報〜UMP>
こんにちは理事の上杉です。
みなさん確定申告は終わりましたか?
さて、久しぶりにMIDI2.0の話しに戻りたいと思います。
今日の話題はUMPについてです。
UMPとはUniversal MIDI Packetの頭文字をとった物で、MIDI2.0における転送方式のことだと考えていただければ良いと思います。
MIDI1.0では非同期式シリアル転送というのを使用していて8ビット(bit)ひとかたまりのデータを送るのに、頭にスタートビット、お尻にストップビットというモノを付加して10bit転送することで、
スタートビットとストップビットという一定の間隔に挟まれた8ビットをデータの中身として捉えるという方式で転送していました。
ビットって何?という人もいるかもしれないので、ちょっと説明すると、コンピューターの中では電気を流して動作しているのですが、電気そのもので「8」とか「100」みたいに数字を表現するのは若干工夫が必要なのです。
例えば電圧計で8Vと100Vを測って、直列に繋いだら108V・・・うーんこれで足し算できるぞ!!って考えると、電池が無くなってきたら計算結果が少なくなってしまったり、「10,000円お預かりしまーす」みたいなレジを作るのに10,000Vの高圧電源が必要なレジになっちゃったり・・・現実的では無いですよね?
そこで、電気を「ある」、「ない」の二つの状態に分け、それを連続して送ることで数字を表現するということをやっています。
例えば、「ない」は0、「ある」は1だとします。つぎに2を表現したいのですが、状態が「ある」と「ない」の2種類しか無いので、桁を増やして「ない」、「ない」(0)と「ない」、「ある」(1)と定義すれば、左側の「ある」or「ない」の桁を使って組み合わせが増えます。
「ある」、「ない」と「ある」、「ある」ですね。「ある」、「ない」を2、「ある」、「ある」を3と考えると、4以上を表現したいときにさらに桁を増やすことになります。この桁そのものがビットというもので、「ない」、「ない」~「ある」、「ある」は2ビット、「ない」、「ない」、「ない」~「ある」、「ある」、「ある」だと3ビットということになります。
「ない」とか「ある」とかだと書くのが面倒なので「ない」は0、「ある」は1と書けば、
「ない」、「ない」、「ない」=000
「ある」、「ある」、「ある」=111
と書くことができます。
すなわち4ビットだと0000~1111まで(10進数で書くと0から15)、8ビットだと0000 0000 ~ 1111 1111まで(10進数では0から255)となります。※桁が数えやすいように4桁ずつ区切って書くのが割と定番です。
MIDIに戻ると、実際にデータとして送れるのは8ビットなのですが、頭の1ビット分をデータの種類(ステータスなのかデータなのか)を識別するために使ってしまうので、実際には7ビット分のデータしか送れません。7ビットということはx000 0000~x111 1111までなので、10進数では0から127となります。
皆さんがご存じのプログラムチェンジが1番から128番だったり、ボリュームのデータが0~127だったりするのは7ビットで送られているからなんですね。
このようにMIDI1.0の世界ではこういった転送方式を使用しており、ピッチベンドの様に128段階では粗すぎて困るデータは、7ビットを二つ組み合わせて14ビットで送るという方式になっていました。それでも16,384段階しか細かくならないので、
16ビットだったり32ビットといった高精度のデータを送るためには転送方式そのものも見直さなくてはいけなくなったのです。
そこで登場したのがUMPというわけです。
UMPでは頭の数ビットをメッセージのタイプやグループなどの宣言に使用することにしていて、メッセージタイプによって32ビットから128ビットひとかたまりを自在に転送することができる様になっています。スタートビット、ストップビット方式だと、
一番長いビットに全部合わせないとどこが切れ目かわからなくなってしまうので、実際にはさほどビットが必要でないメッセージも長くなってしまうのですが、この方式だと大分無駄が省けます。
また、ビット数を増やして送れることで、今まで複数のメッセージを送らないと成り立たなかったメッセージも1メッセージで送れるようになります。たとえば、ピッチベンドレンジを変更するRPNメッセージ。コントロールチェンジの101の0を送り、
コントロールチェンジ100の0を送り、コントロールチェンジの6の12を送るとベンドレンジが1オクターブになる・・・なんていう設定も、32ビットの1メッセージで扱えるので無駄もミスも少なくなるという具合です。
実際の中身についてはまたの機会にしますが、UMPという転送方式でかなり複雑なMIDIデータを楽に転送できるようになったんだ~ぐらいのイメージでは覚えておいていただけると良いと思います。
ではまた!
Comentários