通信速度は31,250bpsで、1ビットを送信するのに必要な時間は32us。10ビット分でトータル320usかかることになります。
USARTが無い場合や320us以内に1オクテット分の処理が終わらない場合、受信バッファが必要になります。
MIDIのデータは基本的に上のような形式で表現されます。
まず「イベント」では、送られてくるデータがどういう種類のものなのか?と、何チャンネルで受信されるデータか?という2点の内容が入っています。それぞれ4ビットづつの内容なのでデータの種類は16通り、チャンネル指定も16通りしかありません。
続くパラメータで、実際のデータの内容を指定します。パラメータは1個または2個が付加されます。
MIDIの規格では「ランニングステータスルール」というものがあり、
先頭のイベント部分がまったく同じデータの場合には「イベントの1オクテットを省略できる」ことになっています。つまり、
というデータ列を、
として表現することができます。
比較的連続して送られてくるであろうピッチベンド奏法などをこの方式で転送すると、理論上転送速度が33%アップします。
ただし、リアルタイムメッセージが割り込んで来るので、前回のイベントを保持しておかないと正しく演奏できなくなります。