各タイムベースでのティック値一覧表
説明
MIDIの打ち込みの際に使われるタイムベースとティック値の関係を表にまとめてみました。
右端の「式」の列は、任意のタイムベース(tb)からティック値を求める計算式です。
| - | 48 | 96 | 120 | 240 | 480 | 960 | 式 |
|---|---|---|---|---|---|---|---|
![]() |
6 | 12 | 15 | 30 | 60 | 120 | tb / 8 |
![]() |
9 | 18 | ※23 | 45 | 90 | 180 | tb / 8 + tb / 16 |
![]() |
12 | 24 | 30 | 60 | 120 | 240 | tb / 4 |
![]() |
18 | 36 | 45 | 90 | 180 | 360 | tb / 4 + tb / 8 |
![]() |
24 | 48 | 60 | 120 | 240 | 480 | tb / 2 |
![]() |
36 | 72 | 90 | 180 | 360 | 720 | tb / 2 + tb / 4 |
![]() |
48 | 96 | 120 | 240 | 480 | 960 | tb |
![]() |
72 | 144 | 180 | 360 | 720 | 1440 | tb+ tb / 2 |
![]() |
96 | 192 | 240 | 480 | 960 | 1920 | tb * 2 |
![]() |
144 | 288 | 360 | 720 | 1440 | 2880 | tb * 3 |
![]() |
192 | 384 | 480 | 960 | 1920 | 3840 | tb * 4 |
![]() |
288 | 576 | 720 | 1440 | 2880 | 5760 | tb * 6 |
三連符
| - | 48 | 96 | 120 | 240 | 480 | 960 | 式 |
|---|---|---|---|---|---|---|---|
![]() |
4 | 8 | 10 | 20 | 40 | 80 | tb / 4 / 3 |
![]() |
8 | 16 | 20 | 40 | 80 | 160 | tb / 2 / 3 |
![]() |
16 | 32 | 40 | 80 | 160 | 320 | tb / 3 |
![]() |
32 | 64 | 80 | 160 | 320 | 640 | tb * 2 / 3 |
![]() |
64 | 128 | 160 | 320 | 640 | 1280 | tb * 4 / 3 |
補足:SMFでのタイムベースの取り扱い(バイナリデータの説明)
SMF(スタンダードMIDIファイル)では、ヘッダの中にタイムベースについての情報が記録されています。
ヘッダーチャンクの構成
SMFのヘッダ領域は「ヘッダーチャンク」と呼ばれ、MThdという文字列から始まり、続いてヘッダのサイズ、SMFのフォーマット(0、1、2のどれか)、SMFのトラック数、最後にディビジョン、という順番でヘッダデータが構成されています。
ヘッダのサイズを指定するようになっていますが、いずれのパラメータも固定長であり、基本的には以下のように全部で14バイトです。なお、SMFのバイトオーダーはすべてビッグエンディアンであることに注意してください。
このうちの「ディビジョン」がタイムベースについての情報です。ただし、必ずタイムベースの値が書かれているとは限らず、タイムコードという違った形式の時間管理方法を指定することもできる仕様になっています。
ディビジョンの値には2つの種類がある
ディビジョンは16ビットからなるパラメータですが、そのうちの最上位ビットがフラグになっています。このビットは、通常のタイムベースとデルタタイムによる時間管理の場合は0、タイムコードによる時間管理の場合は1になります。
よく使われるタイムベースとディビジョンの対応
| time base | 48 | 96 | 120 | 192 | 240 | 480 | 960 |
|---|---|---|---|---|---|---|---|
| division | 00 30h | 00 60h | 00 78h | 00 C0h | 00 F0h | 01 E0h | 03 C0h |
以上、補足としてSMFのヘッダでタイムベースをどのように記録しているかを簡単にまとめてみました。なお、タイムベースに関する資料ということで、タイムコードについては省略しています。


















