MIDIについての基礎知識(少し上級編)

第7幕

サンプル・ダンプ・スタンダード
 デジタル・サンプラーは、メーカーが違っても、生楽器の音をデジタル化してメモリーし、それを自由なタイミングで再生する基本原理は同じだ。簡単に言えば、CDはメーカーは違っても再生できると言うことだ。では、違うところは。メモリーした波形を読み出したあとに、フィルターやエンベロープなどの処理を行い。音を作っていく部分だ。その波形を利用して新たな音を合成(シンセサイズ)する機能を持つサンプラーも多い。このような、シンセサイズする機能は共通化できないとしても、元となるデータ波形は共通に利用できる。
 そこで、この波形データをMIDIで送ろうと言うのがサンプル・ダンプ・スタンダードである。ただし、サンプリングした波形データは小さくても数10Kバイトあり、サンプルのクオリティーが向上して年々データ量が増えている。現実としてMIDIで波形データを送ることはほとんど無いと思われる。むしろ、PCMシンセサイザーなどの内部波形のやりとりに威力を発揮するかも知れない。
 なお、サンプル・ダンプ・スタンダードの各メッセージは、ノンリアルタイム・ユニバーサル・エクスクルーシブに定義されている。
サンプル・ダンプ・リクエスト F0 7E <ID> 03 〜 F7
 サンプル番号によってサンプリング・データを相手に要求するメッセージ。ただし、データの管理方法はサンプラーによって異なる。
ダンプ・ヘッダー F0 7E <ID> 01 〜 F7

 波形データそのものを送る前にサンプリング形式(リニアなサンプル・ビット数8〜28)、周波数(サンプリング・レート336〜1ギガの逆数で、31.25Kならば1/31.25=7D00H、7ビット有効に転回すると”00 1A 03”)、データ量、サスティーン・ループ・ポイント(0〜2097151ワード)を伝えるメッセージだ。サンプラーがダンプ・リクエスト受信したときや、バルク・ダンプ操作をしたときにダンプ・ヘッダーが送信される。ループ・ポイントは、スタート・ポイントとエンド・ポイントを指定し、ループ・タイプはフォワード/バック&フォワード/オフを指定する。

データ・パケット F0 7E <ID> 02 〜 F7

 波形データは、127バイト(ヘッダー6+120バイト・データ+チェクサム+F7)単位のデータ・パケットに分割されて送信される。データ・パケットにはパケット番号があり、これで何個目のデータか管理している。なお、カウンターは”F7”でリセットされて再カウントされる。また、最後のパケットでデータが120バイトに満たない場合は、ダミーとして”00”が入れられ計127バイトのパケットとして送られる。
 エラー・チェックを行うチェックサムがデータの最後に送られる。チェックサムの計算方法は、”7E”からチェックサムの前のデータ・バイトまでをXOR(排他的論理和)したものだ。
 データ・パケットのデータバイトは、7ビット有効なので、1バイトでは7ビット・クオリティーの波形データしか送れない。従って12ビットのデータなら2バイトで1ワード、16ビットならば3バイトが1ワードとなる。

ウエイト F0 7E <ID> 7C <パケット番号> F7
 受信処理などの都合上、送信の一時保留を求める場合に送られる。なお、送信を再開するときはアクノリッジが送られる。
キャンセル F0 7E <ID> 7D <パケット番号> F7
 ダンプ・ヘッダーを受信したとき、受信不可能と判断したときや、波形メモリーがいっぱいになったなどの理由から受信を中断したい場合に送られる。
ノット・アクノリッジ F0 7E <ID> 7E <パケット番号> F7
 データ・パケットを受信したとき、チェックサムが一致しなかった場合など、正しく受信できなかったことを送信側に知らせる。
アクノリッジ F0 7E <ID> 7F <パケット番号> F7
 ダンプ・ヘッダーやデータ・パケットを受信したとき、うまく受信できて次を受ける準備が出来ていることを送信側に知らせる。



HOMEはMIDIのMENUに戻ります

Copyright (C) 2002-2003 Kawahagi-3-Cycle