自前で.oggをループ加工するメモ

ツクールXP以降やWolf RPGエディターなど、
いくつかのソフトは.oggに埋め込まれた情報を元に
イントロ→ループ、という風に再生することができます。

戦闘曲をヘビロテするならイントロは一度だけがいい、
ならちょっと頑張って加工しちゃえ!
今回はそんな感じのメモ記事です。

※あくまで個人で楽しむ為のメモです。
 メモ通りにやって何か起きても責任は取れません。念の為。


ループ位置を示すもの

調べた過程はスッパリとすっ飛ばして。
.oggにおけるループの開始位置は"LOOPSTART"で、
ループする範囲の指定は"LOOPLENGTH"で示すのが一般的っぽいです。

前者だけ指定すると「"LOOPSTART"の位置~曲の最後」でぐるぐるします。
後者だけ指定すると「曲の最初~最後」でごく普通にぐるぐるします。
両方指定すると「"LOOPSTART"の位置~"LOOPLENGTH"の長さ分まで」をぐるぐるします。
めんどくさがりな私は、後ろをバッサリとカットした上で
"LOOPSTART"だけ指定してます。

この2つはWindowsエクスプローラ等では見れない編集できないシロモノ。
また、ミリ秒単位ではなく、サンプル数での指定となっています。
どうにかループ位置を調べて、どうにか書き込む必要があるわけです。

編集手順

ループ加工する/ループ位置を調べる

先に"LOOPSTART"を見たり書き換えたりできるようにしといた方が
色々と良いんでしょうけど、先にループ位置から。

さすがにこれは波形を見ながらしっかりやりたい所です。
SoundEngine Freeを使って、
どこからどこまでが1ループか頑張って探しましょう。

SoundEngine君は、範囲選択した状態でループ再生すると
範囲の最後から最初へと切れ目なく再生してくれます。
こういうのをギャップレス再生と呼ぶのです。バシバシ確かめよう。

前述したように、ループ位置の指定は"サンプル数"です。
ここ(↓赤枠のとこ)で時分秒の表示からサンプル数に表示を切り替えて、
ループの開始位置をメモっときましょう。

f:id:Tappi:20181206220844p:plain

ループの開始位置を書き込む

ループ位置が定まったので、次はそれを書き込む番。
mp3infpを使えば、
.oggに埋め込まれた"LOOPSTART"を見たり書き換えたりできます。

右クリックからプロパティを開くと、
"mp3infp"のタブが増えているので、ここで編集します。

その他欄の下にある[追加]を押して
名前に"LOOPSTART"、値にさっき調べたサンプル数。
後はそのまま[OK]で保存すれば、
対応するソフトがこの情報を読み取って再生してくれるはずです。
めでたしめでたし。

f:id:Tappi:20181206220852p:plain

おわりに

で。どのソフトが対応してんのって話になるんですが、
ツクールXP以降とWolf RPGエディターが対応しています。
foobar2000も(別拡張子で)対応するプラグインがあります。

手前味噌ですが、以前私がWolf RPGエディターでこしらた
ウディタ製ミュージックプレイヤー2
元々この"LOOPSTART"を埋め込んだ.oggをヘビロテする為に作ったものです。
選択肢の1つにどうぞ。


……。…………。
よくよく考えると、サントラを買って、PCに取り込んで、
ループ加工して、ループ位置の情報を書き込んで、
それらを再生する為にウディタをいじって、としてるわけで……。
……普通の人なら途中でゲーム起動してサウンドテスト行きそう。