mruvorbis.dll 変更の履歴
ALC Software Laboratory
v1.0.2.0(2026-10-25)
前の版: v1.0.0.0(2026-03-20 公開)
<機能追加・改良等の項目>
- ループの始点・終点を曲のサンプル数で指定する関数 VorbisPlayer_SetLoopPoints(h, start, end) を追加。(LoadFile の後・Play の前に呼ぶ。曲のタグより優先)
- 再生速度と音の高さを別々に変更する関数 VorbisPlayer_SetTempoPitch(h, tempo, semitones) を追加。
<仕様変更等の項目>
- ループ再生(SetLoop(TRUE))のとき、曲のコメント LOOPSTART・LOOPLENGTH・LOOPEND があれば、その範囲でくり返すように仕様変更。
(タグを持つ曲だけ、くり返す範囲が「曲全体」から「タグの範囲」に変わる。タグの無い曲は今までどおり) - C ランタイムを静的リンクに変更。別途 Visual C++ 再頒布可能パッケージを入れなくても動作するようにした。
- バージョン情報の説明・製品名を LUMINA Engine のものに変更。Vorbis_GetVersionString は "v1.0.2.0" を返す。
<バグ修正等の項目>
- StartFadeIn / StartFadeOut が音量に反映されていなかったのを修正。(フェードアウトしても音が小さくならなかった)
- WASAPI 共有モードで曲と機器の周波数が違うとき(例: 44.1kHz の曲を 48kHz の機器で)、約 9% 速く・高く再生されていたのを修正。
- VorbisPlayer_GetPositionMs が先へ進みすぎ、ときどき 90ms ほど飛んでいたのを修正。(実際に鳴った位置を返す)
- 一時停止しても、溜めてあった分の音が鳴り続けていたのを修正。
- シーク時に前の位置の音が残ったり、継ぎ目で「ぷつっ」と鳴ったりしていたのを修正。
- 再生中にシークすると強制終了することがあったのを修正。(繋がった Ogg でチャンネル数が変わると範囲外を読んでいた)
- 壊れたファイルを読み込むと、読み直しをくり返して処理が止まらなくなっていたのを修正。
- エンコーダのヘッダの取り出しで、メモリの確保に失敗すると強制終了していたのを修正。
<説明書の修正>
- USAGE の表に、載っていなかった関数(GetTotalSamples・クロスフェードの Pause / SetVolume / GetVolume / GetPositionMs・SePool の SetVolume / GetVolume・Encoder の FreeBuffer / GetLastError / DumpState・デバッグ用の関数)を追加。
- VorbisPlayer_IsPaused の説明を「停止中」から「一時停止中」に修正。
<既知の不具合>
- Vorbis_WriteOggFileFromPacketsW は C++ の名前で書き出されているため、GetProcAddress で名前から取得できません。(1.0.0.0 から同じ)
<今までの使い方のままで動くか>
- 1.0.0.0 にあった関数は、名前・引数・戻り値の型がすべてそのままです。(追加のみ。削除した関数・形を変えた関数はありません)
- GetProcAddress で名前から取得する使い方(見本と同じ使い方)は、そのまま動作します。1.0.0.0 の見本の exe を 1.0.2.0 の DLL で動かして確認しました。
- 関数の並び(序数)は名前の順のため、追加した関数より後ろの序数がずれています。序数で取得している場合だけ、取得し直しが必要です。
- DLL は x64 のみです。(1.0.0.0 も x64 のみでした。説明書の「x86」の記述を修正)
v1.0.0.0(2026-03-20)
- 初版公開。