この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "スタンダードMIDIファイル"
スタンダードMIDIファイル(Standard MIDI File、SMF)は、MIDI用ファイルフォーマットの一つである[1][2][3][4]。Format0/Format1/Format2の3タイプが存在する。一般的に用いられている拡張子は .mid。標準MIDIファイルとも呼ばれる。 MIDIの演奏データを記録するための基本ファイルフォーマットとして、Opcode社のDave Oppenheimが提唱し、デファクトスタンダードとなった。1991年にはMIDIの推奨実施例 (Recommended Practice) の第1号 (RP-001) として承認された。 バイト (情報)単位で記述されたコンピュータ等で演奏が可能なバイナリファイルである。記述内容は通常、2桁毎の16進法で解説されることが一般的である。ミュージックシーケンサーのような専門ソフトで作成・編集・演奏できるほか、バイナリエディタでも作成・修正・編集することが可能である。また、Windowsに附属するWindows Media Playerなどの音楽再生ソフトでも演奏できる。 SMFはチャンクと呼ばれるデータブロックから構成される。ファイルの先頭にあるチャンクはヘッダチャンク、それに続く演奏データが入るチャンクはトラックチャンクと呼ばれる。 SMFファイルはチャンク構造の違いで3つのフォーマットに分類される。ヘッダチャンクとトラックチャンク1つのみで構成されるフォーマット0、複数トラックを持つフォーマット1、 マルチシーケンスでシーケンスパターンを指定するフォーマット2の3種類である。このうちフォーマット2は、現在ほとんど使われていない。 ヘッダチャンクには がこの順序で、ビッグエンディアン形式で格納されている。データ長はそれ以降のヘッダチャンクの長さを示すもので、拡張用に用意されている。 複数トラックを使用する場合には、フォーマット1を意味する「00 01」を指定し、使用するトラック数を記載する。 (カッコの中はそれぞれのデータ長を8bit-byte数で示す) 文字列情報は、16進法で記述されたアスキーコードで、次表の形式で記述できる。すべて省略しても演奏には差し支えない。 表示項目コード文字列データ数内容 トラックチャンクには、実際の演奏データが格納される。それぞれのチャンクには が格納される。データセクションの長さはデータ長で示される。データ長を数え誤って入力するなどデータ構成の整合性を欠くと標準MIDIファイルは演奏されない。 音色は、「00 C0 XX」によって指定する。XXには、0から127を意味する「00」から「7F」までの128種類の値が入る。何も音色を指定しなければ、「00」としてピアノの音色で演奏される。音色の一覧はGeneral MIDI#Melodic soundsを参照のこと。 音の高さ(ノートナンバー)、音量(ベロシティ値)については、以下を参照のこと。 タイムベース(4分音符あたりの分解能)を「01 E0」(10進法で480)とした場合の可変長数値表現音符10進法可変長音符10進法可変長
概要
フォーマット
ヘッダチャンク
ヘッダチャンクであることを示す"MThd"という4文字のアスキーコード 「4D 54 68 64」(4バイト)
ヘッダチャンクのデータ長 「00 00 00 06」(4バイト)
フォーマット「00 00」(フォーマットタイプが0の場合) (2バイト)
トラック数 「00 01」(トラック数が1個の場合)(2バイト)
時間単位 「01 E0」(タイムベース(4分音符あたりの分解能)が、例えば16進で1E0で、10進法で480の値。)(2バイト)
文字列情報
テキストFF 01n任意のテキスト(文字列)をSMF内に記載するために使う。
著作権表示FF 02n著作権表示用のテキスト文字列。トラックチャンクの先頭イベント(タイム0)とする。
シーケンス名/トラック名FF 03nシーケンス/トラック名を記述するテキスト文字列。シーケンス名はフォーマット0のトラック内か、 フォーマット1の最初のトラック内に記載する。その他の場合は、トラック名として扱う。
楽器名FF 04n各チャンネルに対応する楽器名を記述する。
歌詞FF 05n歌詞を記述する場合に使用するテキスト文字列。
マーカFF 06nフォーマット0/1の最初のトラックで使用し、シーケンス内のポイント名を記述するテキスト文字列。
キューポイントFF 07nビデオなどに対して指示を出すときに使う。テキスト文字列。
MIDIノートナンバー(音域)と音名、周波数の対応表
トラックチャンク
トラックチャンクであることを示す識別子"MTrk" 「4D 54 72 6B」(4バイト)
データ長(このトラックに入っているデータセクションのデータの長さ(16進法データの個数)。) (4バイト)
データセクション(可変長)
データセクション
音色の指定
ノートナンバー、ベロシティ
4倍全音符7680BC 00付点4倍全音符11520DA 00
倍全音符38409E 00付点倍全音符5760AD 00
全音符19208F 00付点全音符288096 40
2分音符96087 40付点2分音符14408B 20
4分音符48083 60付点4分音符72085 50
Size:13 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef