mruopus.dll 変更の履歴
ALC Software Laboratory
v1.0.2.0(2026-10-25)
前の版: v1.0.0.0(2026-03-20 公開)
<機能追加・改良等の項目>
- 再生中の音の大きさ(0.0〜1.0)を取得する関数 OpusPlayer_GetLevel(h) を追加。(口パクなどに利用可能)
- ループの始点・終点を 48kHz のサンプル数で指定する関数 OpusPlayer_SetLoopPoints(h, start, end) を追加。(LoadFile の後・Play の前に呼ぶ。曲のタグより優先)
- 再生速度と音の高さを別々に変更する関数 OpusPlayer_SetTempoPitch(h, tempo, semitones) を追加。
- メモリ上の Ogg Opus を 16bit PCM(48000Hz)に変換する関数 Opus_DecodeMemoryToPcm16 と、解放する関数 Opus_FreePcm16 を追加。
<仕様変更等の項目>
- ループ再生(SetLoop(TRUE))のとき、曲のタグ LOOPSTART・LOOPLENGTH・LOOPEND があれば、その範囲でくり返すように仕様変更。
(タグを持つ曲だけ、くり返す範囲が「曲全体」から「タグの範囲」に変わる。タグの無い曲は今までどおり) - C ランタイムを静的リンクに変更。別途 Visual C++ 再頒布可能パッケージを入れなくても動作するようにした。
- バージョン情報の説明・製品名を LUMINA Engine のものに変更。
<バグ修正等の項目>
- OpusPlayer_GetPositionMs が、再生直後から曲の終わりを返すことがあったのを修正。(書き込んだ位置ではなく、実際に鳴った位置を返す)
※値が先へ進みすぎる前提で書いた処理がある場合は、見直しが必要です。 - 鳴り終わる前に「停止」と判定されていたのを修正。(IsPlaying・終端と停止の通知が、実際に鳴り終わったときに届く。以前より遅く届く)
- 一時停止・再生速度の変更・フェードがすぐに反映されなかったのを修正。(先へ書き込む量を約 0.3 秒にした。一時停止で出力も止まる)
- シーク時に前の位置の音が残ったり、継ぎ目で「ぷつっ」と鳴ったりしていたのを修正。
- WASAPI 共有モードで機器の周波数が 48kHz でないとき、速さ・高さがずれて再生されていたのを修正。
- 再生中にシークすると強制終了することがあったのを修正。(繋がった Ogg で途中からチャンネル数が変わると範囲外を読んでいた)
<説明書の修正>
- USAGE の表に、載っていなかった関数(DumpState・SetTryExclusive・SetForceUnityRate・OpusCrossfade_GetVolume / GetPositionMs・OpusEncoder_GetLastError / DumpState)を追加。
- Opus_DebugDumpAll の引数(h)が抜けていたのを修正。デバッグ用の関数が文字列(char*)を返すことを追記。
<今までの使い方のままで動くか>
- 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)
- 初版公開。