| 分類 | 種別 | データ長 | 内容 |
|---|---|---|---|
| ヘッダ | ID | 4バイト | "MThd" アスキー・コード 'M','T','h','d' の 4バイト |
| サイズ | 4バイト | 以降のヘッダのバイト数をビッグエンディアンで格納
ヘッダの場合は値6固定なので、00,00,00,06 の4バイト | |
| フォーマットタイプ | 2バイト | 値0, 1, 2 のいづれかをビッグエンディアンで格納
ここではフォーマットタイプ 0 の SMF のみ扱うので、 00,00 の2バイト | |
| トラック数 | 2バイト | トラック数をビッグエンディアンで格納
フォーマットタイプが0の場合は、トラック数は1固定なので、 00,01 の2バイト | |
| 時間分解能 | 2バイト | 四分音符の分割数をビッグエンディアンで格納
四分音符1つをここで指定した値で分割した長さが、時間の最小単位 ただし1バイト目の最上位ビットが'1'の場合は、別の扱いとなる ここでは1バイト目の最上位ビットが'0'のSMFのみを扱う | |
| トラック | ID | 4バイト | "MTrk" アスキー・コード 'M','T','r','k' の 4バイト |
| サイズ | 4バイト | 以降のトラックのバイト数をビッグエンディアンで格納 | |
| デルタタイム | 可変長 | ||
| イベント | 可変長 | ||
| デルタタイム | 可変長 | ||
| イベント | 可変長 | ||
| : | |||
| デルタタイム | 可変長 | ||
| イベント | 可変長 | ||
簡単なテキストの表組みツール (C言語)
TXTBLCNT (簡単なテキストの表組みツールのためのさらなるツール)
| 関数名 | int foo_send(const unsigned char *buf, unsigned bytes) | |||
|---|---|---|---|---|
| 説明 | データ送信開始 | |||
| 引数 | ||||
| 項番 | 仮引数名 | 型 | 説明 | |
| 1 | buf | const unsigned char * | 送信するデータの先頭アドレス | |
| 2 | bytes | unsigned | 送信するデータのバイト数(最大4096*9=36Kバイトまで指定可能) | |
| 返却値 | ||||
| 項番 | 型 | 説明 | ||
| 1 | int | 0 | FOO_OK | 正常終了 |
| <0 | FOOO_EINVAL | パラメータの値が異常である | ||
| FOO_EBUSY | 現在送信中である | |||
| FOO_EIO | エラーが検出された | |||
| FOO_ETIMEDOUT | タイムアウト発生 | |||
| ||||