はじめに
複数回にわたってSoundFontファイル(.sf2ファイル)を読み込んでシンセサイザーなどに使えるようにパラメーターを組み立てる方法を説明しています。
ここではSoundFontの概要と仕様書・参考資料について説明します。
各説明のリンクはこちらにまとめております → SoundFontの読み込みと組み立て
SoundFontとは
SoundFontとはE-MU Systems社のウェーブテーブル音源チップ EMU8000シリーズ用に開発された規格です。
音色ファイル(SoundFontファイル)をEMU8000シリーズに読み込ませることで、サンプラーのように音色を自由に追加・変更できる規格です。
SoundFont規格は内容が公開されており、さまざまなソフトウェアシンセサイザー(音源)やサンプラーで利用できるようになっています。
EMU8000シリーズは1990年代のCreative社製サウンドカード Sound Blasterシリーズに搭載されていました。
コンピューターの性能が貧弱でmp3やwav、ソフトウェア音源(MIDI音源)を十分に扱えなかった時代に、Sound Blasterだけで外部MIDI音源なしにいい音が扱え、さらにSoundFontで好みに合わせて自由に音色を追加・変更できるという画期的な製品でした。
しかし、Sound Blasterシリーズはゲームでの利用を想定していたためDTMなどのMIDI音源としてはあまり普及せず、現在(2018年6月頃)のSound BlasterシリーズにはEMU8000シリーズを含めMIDI音源機能は搭載されなくなっているようです。
対象としているEMU8000シリーズ自体はなくなりましたが、現在でも「規格内容が公開されている」「過去に作られたSoundFontファイルがそのまま使える」「ソフトウェア音源の性能が向上しDTMで使いやすくなった」などの点から、利用されている規格になります。
SoundFontを取り扱うための前提知識
SoundFontの規格ではウェーブテーブル音源やサンプラー、シンセサイザーなどのデジタル楽器・音源の知識が必要となります。
MIDIに関する簡単な知識(Note On/Off、ベロシティ、Control Change、ピッチベンド程度)やサンプルループや音量・フィルタ・エンベロープ(ADSR)・LFOなど音色を作成するための用語や仕組みについてはご理解していただいている前提となります。
また、SoundFontファイルはRIFFファイルというファイルの形式が基となっており、このファイルフォーマットの知識が必要となります。
RIFFファイル形式については下記で簡単に説明しておりますので、必要に応じてご参照ください。
SoundFontの仕様書
SoundFontの仕様書は下記で公開されています。
(E-MU Systems社やCreative社の公式ページではないと思われますのでご注意ください。)
SoundFont 2.04 仕様書には下記の内容が記載されています。
仕様書はSoundFontファイル(.sf2ファイル)の説明を多く記載しております。
- SoundFontファイル(.sf2ファイル)の構造
- RIFFフォーマットとチャンク
- チャンクのデータ形式(構造体の内容)
- SoundFontファイルの内容
- ファイル情報部分の内容
- 音声波形部分の内容
- 音色情報部分(Hydra)の内容
- SoundFontファイルの組み立て方法
- SoundFont規格で想定しているウェーブテーブル音源の構成
なお、SoundFontファイルとして「.sf3」「.sfArk」「.sfpack」「sfz」といった形式のファイルも紹介されるようですが、それぞれの別物であったり、開発者が独自に拡張を加えたものですのでここでは取り扱いません
SoundFontの参考資料など
SoundFontの読み込みや組み立てなどを行う際の参考資料やツールになります。
下記はSoundFontファイル(.sf2ファイル)を編集するためのソフトウェアです。自作プログラムの読み込み結果との比較などに利用できます。
また、日本語の情報として下記にSoundFontの仕様や実際に読み込んだソースコード情報(JavaScript)があります。
- Qiita – SoundFont 2.04 仕様の概要まとめ
- Qiita – JavaScriptでSoundFont2を解析
- Qiita – JavaScriptでSound fontをチェックして鳴らす。
最後に
次回はSoundFontファイルの構造と概要についての説明をいたします。
説明はRIFFファイルをご理解いただいている前提になっていますので必要に応じて、RIFFファイルの説明もご参照ください。
各説明のリンクはこちらにまとめております → SoundFontの読み込みと組み立て
質問はコメント欄や掲示板、Twitterでいただけばとおもいます。
また、「この部分を詳しく」などの要望も掲示板やTwitterでいただければと思います。
■掲示板
■Twitterアカウント:@vstcpp URL:https://twitter.com/vstcpp