Oggのマルチストリーム

昨日のBGMループがおかしかった件で、Ogg Vorbisでループ情報を保存する方法を考えていました。


日本ファルコムセガのゲームではVorbisコメントにループ情報を書いているんですが、Vorbisコメントはメモの用途に使うもので、メタ情報を埋め込むものではありません。
ドキュメントによると、メタデータは別ストリームにXMLで記録するものらしいです。
で、別ストリームの作り方が分からなくて調べていました。
とりあえずOggの仕組みから勉強しようと思い、OggRFCを日本語に訳しているところです。


翻訳作業中にYs6のBGMを聞いていて、ループ後のノイズが気になったので直しておきました。
falcom_play.cppの差分
Ys6のoggはファイルの末尾(ループの後)にノイズが入っているので、この部分を演奏しないオプションを追加しました。
ちなみにED6以降のBGMではループの後ろにゲーム中では使われないのにフェードアウトするパートが続いているんですが、これはファンサービスでしょうね。