MIDIマシンコントロール

MIDI仕様のサブセットであるMIDIマシンコントロール(MMC)は、マルチトラックレコーダーなどの録音機器を制御するための特定のコマンドを提供します。MMCメッセージは標準MIDIケーブルを介して送信され、再生、早送り、巻き戻し、停止、一時停止、録音などの機能をリモート制御できます。これらは「システムエクスクルーシブ」(SysEx)メッセージ、具体的にはリアルタイムユニバーサルSysExメッセージです。

MIDIユニバーサルリアルタイムSysExメッセージフォーマット

MIDIには、MIDIメーカーが実装したMIDIフォーマットの拡張であるシステムエクスクルーシブメッセージが含まれています。これらの拡張の一部、いわゆる「ユニバーサル」メッセージは、同じ機能のセットですが、メーカーによって細部が異なる実装が可能です。一部の拡張は非リアルタイムで、配信タイミングが保証されません。一方、MMCを含む他の拡張はリアルタイムで、期待通りに確実に配信されます。SysExメッセージは(16進数の)F0で始まり、F7で終わります。ユニバーサルリアルタイムSysExメッセージは、F0で始まり、7Fが続き、その後に他のフィールドが続き、最後にF7が続きます。

以下は、Universal Real Time SysEx メッセージの形式 (すべての数字は 16 進数) を示しています。

F0 7F <Device-ID> <Sub-ID#1> [<Sub-ID#2> [<parameters>]] F7

どこDevice-IDですか:

MMC device's ID#; value 00-7F (7F = all devices); AKA "channel number"

Sub-ID#1:以下のいずれかの値です。太字の値はMIDIマシンコントロール関連です

01 = ロングフォームMTC
02 = MIDI ショーコントロール
03 = 表記情報
04 = デバイス制御
05 = リアルタイムMTCキューイング
06 = MIDIマシン制御コマンド
07 = MIDIマシンコントロールレスポンス
08 = シングルノートリチューン

MMCメッセージ形式

MMCメッセージは、MMCコマンド(サブID#1=06)またはMMCレスポンス(サブID#1=07)のいずれかです。SysExメッセージとして、以下の形式でフォーマットされます(すべての数値は16進数です)。

F0 7F <Device-ID> <06|07> [<Sub-ID#2> [<parameters>]] F7
Device-ID: MMC device's ID#; value 00-7F (7F = all devices); AKA "channel number"
サブID#1: 06 = コマンド サブID#2: 01 停止 02 プレイ 03 遅延再生(ビジー状態が解消された後に再生) 04 早送り 05 巻き戻し 06 レコードストロボ(別名[[パンチイン/アウト|パンチイン]]) 07 レコード終了(別名[[パンチアウト(音楽)|パンチアウト]]) 08 録音一時停止 09 一時停止(再生を一時停止) 0A イジェクト(MMCデバイスからメディアコンテナを取り外す) 0Bチェイス 0D MMC リセット (デフォルト/起動状態へ) 40 書き込み(別名:録音準備、別名:トラックのアーム) パラメータ: <長さ1> 4F <長さ2> <トラックビットマップバイト> 44 Goto(別名Locate) パラメータ: <長さ>=06 01 <時間> <分> <秒> <フレーム> <サブフレーム> 47 シャトル パラメータ: <length>=03 <sh> <sm> <sl> (MIDI標準スピードコード)
サブID#1: 07 = 応答 サブID#2: 応答状態 パラメータ: 応答状態の詳細を示す値

MMCコマンド

MMCコマンドは、コマンドを表す1バイトを含むMMCトランスポートメッセージ、またはコマンドバイトに続いてパラメータバイトを含む他の種類のメッセージです。パラメータには、メッセージ内のバイト集合の長さを表すもの、コマンドに関連付けられた定数、コマンドの実行を指定する可変データ値などがあります。

記録準備完了

録音準備完了(トラックアーム)メッセージは、トラックを録音可能にします。形式は次のとおりです(すべての数字は16進数です)。

F0 7F <デバイスID> 06 40 <長さ1> 4F <長さ2> <トラックビットマップ> F7
length1: length1とF7の間のバイト数length2: トラックビットマップ内のバイト数トラック ビットマップ: 各トラックには、トラック ビットマップ内のビットが割り当てられます。

トラックを設定するには、そのトラックのビットが格納されているバイトと、そのトラックに対応するビットの両方を知る必要があります。各バイトには7つのトラックしか格納できないことに注意してください。

トラック1: バイト1 + 0x20トラック2: バイト1 + 0x40トラック3: バイト2 + 0x01トラック4: バイト2 + 0x02トラック5: バイト2 + 0x04トラック6: バイト2 + 0x08トラック7: バイト2 + 0x10トラック8: バイト2 + 0x20トラック9: バイト2 + 0x40トラック10: バイト3 + 0x01等々。

移動/位置検索

Goto(別名Locate)メッセージは、SMPTE時間(特定の時、分、秒、SMPTEフレーム番号、サブフレームコード)に録音または再生を指示します。フォーマットは以下のとおりです(すべての数値は16進数です)。

F0 7F <デバイスID> 06 44 <長さ>=06 01 <時間> <分> <秒> <fr> <ff> F7
サブID#2 =44: LOCATEコマンド長さ: 06 データバイト数(常に6バイト)サブコマンド: 01 ターゲットhr: 時間とタイプ(MTC Fullframeと同様); 値は0~17(10進数では0~23)mn: 分; 値は 0 ~ 3B (= 10 進数で 0 ~ 59)sc: 秒; 値 0~3B (= 10進数で 0~59)fr: フレーム; 値 0-1D (= 10進数で 0-29)ff: サブフレーム / 小数フレーム(不明な場合はゼロのままにしてください); 値は 0 ~ 63(10 進数では 0 ~ 99)

(一部のメーカーは、サブフレーム0を示すために、異なるフレームレートでサブフレーム値を異なる方法でエンコードします)

シャトル

順方向と逆方向のシャトルは同じMMCメッセージを共有します。方向は符号値として​​エンコードされます。フォーマットは以下のとおりです(すべての数値は16進数です)。

F0 7F <デバイス0ID> 06 47 <長さ=03> <sh> <sm> <sl> F7注: sh、sm、sl は、MIDI 1.0 推奨プラクティス RP-013 で標準速度として定義されています。sh = 速度値の公称整数部分: 0 g sss ppp g = 符号(1 = 逆) sss = 左シフトカウント(下記参照) ppp = 再生速度の整数倍の最上位ビットsm = 速度値の公称小数部のMSB: 0 qqqqqqqsl = 速度値の公称小数部の LSB: 0 rrrrrrrrシフト左カウントごとの速度値:バイナリ表現の使用可能範囲(10進数)整数倍数 小数部分 整数 小数再生速度のsss、再生速度の範囲の解像度000 ppp - qqqqqqqrrrrrrr 0-7 1/16384001 pppq - qqqqqqrrrrrrr 0-15 1/8192010 pppqq - qqqqqrrrrrrr 0-31 1/4096011 pppqqq - qqqqrrrrrrrr 0-63 1/2048100 pppqqqq - qqqrrrrrrrr 0-127 1/1024101 pppqqqqq - qqrrrrrrrr 0-255 1/512110 pppqqqqqq - qrrrrrrr 0-511 1/256111 pppqqqqqqq - rrrrrrrr 0-1023 1/128
「https://en.wikipedia.org/w/index.php?title=MIDI_Machine_Control&oldid=1261146626」から取得