日本語

MIDIのMSBとLSBとは?

Mac App StoreでInputConfigをダウンロードこのアプリは完全に無料です。アカウントを作る必要はありません。サブスクリプションも面倒なダウンロードもなく、ロックされた機能もありません。Appleシリコンに最適化されています。

MSBとLSBは、MIDIのデータバイト1つに収まらない数を2つに分けた半分ずつです。データバイトが持てるのは0から127です。2つ合わせると、0から16,383まで持てます。MSB(最上位バイト)が粗い半分で、LSB(最下位バイト)が細かい半分です。全体の値は、MSBに128を掛けて、LSBを足したものです。

この組み合わせはMIDI規格の一部で、4か所に出てきます。バンクセレクト、ピッチベンド、CCの細かい制御、そしてRPNとNRPNと呼ばれるパラメーター番号です。

値を計算する

MSBLSB値
000
0127127
10128
6408,192、中央
12712716,383、最大

MSBの1ステップは、LSBの128ステップに相当します。多くの機器はMSBだけを送受信します。そのため、ほとんどの操作部は128段階で動きます。

バンクセレクトで使う

プログラムチェンジで選べる音色は128個です。それ以上を選ぶために、機器は音色をバンクに分け、バンクセレクトで先にバンクを選びます。

順番メッセージチャンネル1のバイト(16進数)
1CC 0、バンクセレクトMSBB0 00、続いてMSB
2CC 32、バンクセレクトLSBB0 20、続いてLSB
3プログラムチェンジC0、続いてプログラム

バンクは、プログラムチェンジが届くまで切り替わりません。マニュアルがバンクを1つの数で示しているときは、MSB×128にLSBを足した値です。先にバンクを送り、プログラムは最後に送ります。残りはMIDIプログラムチェンジで説明しています。

InputConfigのエディタに2つのD-pad行があり、それぞれCC 0、CC 32、続けてProgram Changeを送ります。
図1:CC 0でBank MSB、CC 32でBank LSB、そのあとにProgram Change。D-padの各行が、この順に3つを送ります。

ピッチベンドで見つける

ピッチベンドは、いつも両方の半分を1つのメッセージで運びます。細かい半分が先で、E0、LSB、MSBの順です。中央、つまりベンドなしは、LSBが0でMSBが64、値は8,192です。ピッチベンドは、毎回16,384段階をすべて使う、数少ない一般的なメッセージです。範囲はMIDIピッチベンドで説明しています。

CCと細かい半分を組にする

コントローラー0から31には、それぞれ32大きい番号に、細かい半分を運ぶ相手がいます。モジュレーションホイールのCC 1は、CC 33と組になります。ボリュームのCC 7は、CC 39と組です。細かい制御が欲しい機器は両方を送り、そうでない機器は最初の1つだけを読みます。CC 32から63は、CC 0から31の細かい半分です。すべての組は、MIDI CC一覧で見られます。

RPNとNRPNで見る

パラメーター番号では、パラメーターを選ぶのに2つ、値を設定するのにさらに2つが必要です。CC 101と100、またはCC 99と98が選択を行い、CC 6とCC 38が値のMSBとLSBを運びます。NRPNは、MSBとLSBの組を2つ、続けて送ったものです。例は、MIDI NRPNとRPNで順に追えます。

バイトを確かめる

このサイトのMIDIメッセージデコーダーは、1つの値からピッチベンドを組み立て、両方の半分を16進数、10進数、2進数で表示します。貼り付けたバンクセレクトとプログラムチェンジのバイトも、言葉に読み戻します。機器が違うバンクに着いたときは、マニュアルがCC 0とCC 32のどちらにどの半分を求めているかを確かめてください。私は、ゲームコントローラーからコントロールチェンジとプログラムチェンジを送る無料のMacアプリInputConfigを作っています。送る内容はMIDI出力のページに一覧があります。

MIDIビューのInputConfigのLive Visualizer。ノブを回すと、そのCC番号と値が変わる様子が見えます。
図2:InputConfigのLive Visualizerは、ノブを回すとそのCC番号と値が変わる様子を表示します。

短くまとめると

  • MSB。粗い半分で、1ステップが128に相当します。
  • LSB。細かい半分で、1ステップが1に相当します。
  • 値。MSBに128を掛けてLSBを足すと、0から16,383の数になります。

7ビットのバイト2つで、14ビットの数が1つできます。

よくある質問

MIDIのMSBとLSBは何の略ですか?

最上位バイト(most significant byte)と最下位バイト(least significant byte)の略です。7ビットのデータバイト2つに分けた、14ビット値の粗い半分と細かい半分です。

MSBとLSBからMIDI値を計算するには?

MSBに128を掛けて、LSBを足します。MSB 1、LSB 0なら128です。MSB 127、LSB 127なら16,383です。

2つのバンクセレクトのコントローラーのうち、最上位バイト(MSB)と呼ばれるのはどちらですか?

CC 0がバンクセレクトのMSBで、CC 32がバンクセレクトのLSBです。最初の128個より先のバンクにある音色を選ぶには、先にCC 0、次にCC 32を送り、そのあとプログラムチェンジを送ります。

LSBは必ず送る必要がありますか?

必要ないことも多いです。多くの機器はMSBだけを使います。バンクセレクトはマニュアルで確かめてください。両方が必要な機器も、片方だけでよい機器もあり、どちらが必要かも機器によって違います。

MSBとLSBはどちらが先ですか?

バンクセレクトとパラメーター番号では、通常、MSBが独立したメッセージとして先に送られます。ピッチベンドのメッセージの中では、LSBが先です。

MIDIのバイトはなぜ7ビットだけなのですか?

最上位のビットは、メッセージの始まりであるステータスバイトの印です。データバイトはそのビットを0にしておくので、残りは7ビットで、範囲は0から127になります。

日本語のページ

日本語のページ

くわしいガイド(英語)

このページを書いた人。 Ryleigh NewmanはInputConfigを開発しています。手がうまく動かないため、毎日コントローラーで自分のMacを操作しています。このページは英語から翻訳したものです。Macの言語が日本語のとき、InputConfigは日本語で表示されます。サイトの一部のページは英語のみです。

ほかの言語で読む: English

Mac App StoreでInputConfigをダウンロード無料。macOS 14以降。アカウント不要で、データがMacの外に出ることはありません。 ソースコードはGitHubにあります。