SMF (Standard MIDI File) のファイルフォーマットの概要について解説します。
SMFはチャンクと呼ばれるブロックで構成されています。チャンクにはヘッダチャンクとトラックチャンクの2つがあります。
また、フォーマット0/1/2の3パターンがあり、ほとんどのMIDIファイルが、フォーマット0か1です。
フォーマット2については、よく分かりません💦(詳しい人、コメントお願いします)
目次
ヘッダチャンク
ヘッダチャンクはMIDIファイルの先頭に必ず1つだけ存在しています。ヘッダチャンクを解析することで、どのフォーマットかがわかるようになっています。
トラックチャンク
フォーマット0の場合、トラックチャンクはヘッダチャンクに続き、1つだけ存在しています。(複数のチャネルが1つのトラックに集められている)
フォーマット1/2の場合は、トラックチャンクは複数存在します。(1つのチャネルにつき、1つのトラックがある)
※チャネルは、1つの楽器パートだと考えてOKだと思います。
フォーマットの全体像
こんな感じ。
コメント