はじめに
ここではスタンダードMIDIファイル(.smf)のフォーマットの説明と簡単な読込サンプルについて解説しています。
スタンダードMIDIファイルについては、「smfフォーマット」などで検索するとすでに他のサイトでも解説されていますので、簡単に説明します。
このサイトでは「わいやぎのwebページ」に記載されている内容をもとに作成しています。
スタンダードMIDIファイルのフォーマット
スタンダードMIDIファイルはRIFFファイル形式に似た形式をとっています。
RIFFファイル形式は、そのファイルに必要なデータをチャンクと呼ばれるブロックに分けて保存し、チャンクにFourCCと呼ばれる4Byteの識別子(ID)を付けて管理するファイル形式です。
RIFFファイルについては下記に簡単に記載しております。スタンダードMIDIファイルは上記のRIFFファイル形式に似た形式のファイルのため、必要に応じてご参照ください。
今回作成するスタンダードMIDIファイルの読み込み関数のサンプルはこちらからダウンロードできます。 → riffsample_20231210
※スタンダードMIDIファイル以外にもwavファイルやSoundfontファイル読込サンプルなども同梱されています。
スタンダードMIDIファイルのチャンク
スタンダードMIDIファイルのチャンクと階層構造は下記となっています。各チャンクの詳細は後述します。
2つの必須チャンクがあります。
なお、スタンダードMIDIファイルはRIFFチャンクから始まっていないため、厳密にはRIFF形式のファイルではありません。