================================================================================
  mruopus.dll v1.0.0.0
  Copyright (C) 2025 ALC Software Laboratory. All rights reserved.
================================================================================


【概要】

  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)
      Ogg Opus ファイルの再生（ファイルパス / メモリバッファ対応）。
      ループ / A-B リピート / シームレスループ、音量・ミュート・パン制御、
      フェードイン / アウト（Linear / EaseIn / EaseOut）、
      再生速度変更（Simple / WSOLA / PhaseVocoder の 3 モード）、
      ミリ秒 / サンプル単位シーク、再生イベントコールバック、
      キューポイント通知、OpusTags 読み取りに対応。

  ・クロスフェード (OpusCrossfade)
      2 トラック間のシームレスなクロスフェード切り替え。
      フェード時間をミリ秒単位で指定可能。
      専用スレッドによる線形補間音量制御。

  ・効果音プール (OpusSePool)
      複数の効果音を同時再生するボイスプール。
      優先度付き割り当て（空きなし時は最低優先度ボイスを置き換え）。
      ボイス単位の音量制御。

  ・エンコード (OpusEncoder)
      float PCM → Ogg Opus パケットへのエンコード。
      OpusHead + OpusTags ヘッダパケット生成。
      Ogg ファイルへの直接書き出し (Opus_WriteOggFileFromPacketsW)。
      ビットレート・フレームサイズ・アプリモード設定。

  ・出力デバイス
      WASAPI 共有モード（優先）/ 排他モード（オプション）、
      WaveOut（フォールバック）、デフォルトデバイス切替時の自動再初期化。

  ・SIMD 最適化
      CPU 自動検出（Scalar / MMX / SSE2 / AVX2 / AVX512）。
      PCM 音量適用・float→int16 変換の SIMD 高速化。


【動作環境】

  OS      : Windows 7 / 8 / 8.1 / 10 / 11 (x86 / x64)
  ランタイム: Visual C++ 再頒布可能パッケージ 2022 (vcredist)
  配置場所 : 呼び出し元 EXE と同じフォルダ（または検索パス上）


【同梱ファイル】

  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        起動バッチ（ドラッグ&ドロップ対応）
  │
  │  ── サンプルプロジェクト ──────────────────────────────────
  └── 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
              └── ...


【使用ライブラリ】

  libopus     1.5.x   BSD 3-Clause   Xiph.Org Foundation and contributors
  libopusfile 0.12.x  BSD 3-Clause   Xiph.Org Foundation and contributors
  libogg      1.3.x   BSD 3-Clause   Xiph.Org Foundation


【注意事項】

  ・mruopus.dll は呼び出し元 EXE と同じフォルダに配置してください。
    DLL が見つからない場合、LoadLibrary が失敗します。

  ・EXE と DLL のビット数 (x86 / x64) を必ず一致させてください。

  ・Opus は常に 48,000 Hz で出力されます。
    入力サンプルレートが異なる場合は事前にリサンプリングしてください。

  ・Opus は最大 2 チャンネル (ステレオ) に対応しています。

  ・DLL 使用開始時に Opus_InternalInit() を、
    アンロード前に Opus_FinalizeAll() を必ず呼び出してください。
    FreeLibrary() 前に呼ばないと内部スレッドが join されずクラッシュします。


【バージョン履歴】

  v1.0.0.0 (2025)   初版リリース


================================================================================
  ALC Software Laboratory
  Copyright (C) 2025 ALC Software Laboratory. All rights reserved.
================================================================================
