v1.0.0.0 Windows 10 / 11 x86 / x64 C / C++ / LoadLibrary

mruopus.dll

ALC Software Laboratory  |  Multimedia Runtime Utility for Opus

概要

mruopus.dll は、Ogg Opus 形式の音声ファイルを再生・エンコードするための Windows 用ダイナミックリンクライブラリ (DLL) です。

ゲーム・デスクトップアプリケーション・ツール等への組み込みを想定して設計されており、C ABI (extern "C") による呼び出しに対応しているため、C / C++ をはじめ LoadLibrary による動的ロードが可能な言語から幅広く利用できます。

デコード / 再生に libopus + libopusfile を、エンコードに libopus + libogg を使用し、RFC 3533 / RFC 7845 に準拠した Ogg Opus ストリームを扱います。SIMD 最適化(MMX / SSE2 / AVX2 / AVX512)により高効率な PCM 変換を実現します。

主な機能

🎵
再生 (OpusPlayer)
ファイルパス / メモリバッファ対応。ループ / A-B リピート / シームレスループ、音量・ミュート・パン制御、フェードイン / アウト(3 カーブ)、再生速度変更(WSOLA / PhaseVocoder)に対応。
🔀
クロスフェード (OpusCrossfade)
2 トラック間のシームレスなクロスフェード切り替え。フェード時間をミリ秒単位で指定。専用スレッドによる線形補間音量制御。
🎮
効果音プール (OpusSePool)
複数の効果音を同時再生するボイスプール。優先度付き割り当てで空きなし時は最低優先度ボイスを置き換え。ボイス単位の音量制御。
🎛️
エンコード (OpusEncoder)
float PCM → Ogg Opus パケット変換。OpusHead + OpusTags ヘッダ生成。Ogg ファイルへの直接書き出し。ビットレート / フレームサイズ / アプリモード設定。
🔊
出力デバイス (PcmOutput)
WASAPI 共有モード(優先)/ 排他モード(オプション)/ WaveOut(フォールバック)。デフォルトデバイス切替時の自動再初期化。
SIMD 最適化
CPU 自動検出(Scalar / MMX / SSE2 / AVX2 / AVX512)。PCM 音量適用・float→int16 変換の SIMD 高速化。

動作環境

項目要件
OSWindows 10 / 11 (x86 / x64)
ランタイムVisual C++ 再頒布可能パッケージ 2022 (vcredist)
配置場所呼び出し元 EXE と同じフォルダ(または検索パス上)
ビット数EXE と DLL のビット数 (x86 / x64) を一致させること

同梱ファイル

mruopus_v1.0.0.0/
├── README.html / .txt← このファイル(スタート地点)
│ ── ドキュメント ────────────────────────────────────────────────
├── html/
│ ├── USAGE.html / .txt← 使い方ガイド(API 早見表・サンプル実行方法)
│ └── LICENSE.html / .txt← ライセンス・サードパーティ表記
│ ── 実行用環境 ──────────────────────────────────────────────────
├── bin/
│ ├── mruopus.dll← 本体 DLL(必須)
│ ├── mruopus_sample.exe← ビルド済みサンプル実行ファイル
│ ├── run_sample.bat← 起動バッチ(D&D 対応)
│ ├── bgm.opus← サンプル BGM(Pixel Adventure)
│ ├── se.opus← サンプル SE(Hit)
│ └── next.opus← クロスフェード先 BGM(Pixel Quest)
│ ── サンプルプロジェクト ────────────────────────────────────────
└── sample/
├── include/
│ └── OpusDllExports.h← 公開 C API ヘッダ
├── src/
│ └── mruopus_sample.cpp← サンプルソース
└── project/
├── VC2022/← Visual Studio 2022 用
│ ├── mruopus_sample.sln
│ ├── mruopus_sample.vcxproj
│ └── ...
└── VC2026/← Visual Studio 2026 用
├── mruopus_sample.slnx
├── mruopus_sample.vcxproj
└── ...

注意事項

⚠️
mruopus.dll は呼び出し元 EXE と同じフォルダに配置してください。
DLL が見つからない場合、LoadLibrary が失敗します。EXE と DLL のビット数 (x86 / x64) を必ず一致させてください。
⚠️
Opus は常に 48,000 Hz で出力されます。入力サンプルレートが異なる場合は事前にリサンプリングしてください。
Opus は最大 2 チャンネル(ステレオ)に対応しています。
DLL 使用開始時に Opus_InternalInit() を、アンロード前に Opus_FinalizeAll() を必ず呼び出してください。

使用ライブラリ

バージョン履歴

バージョン日付変更内容
v1.0.0.02026初版リリース