> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XMA2 エンコーダー ツール

> XMA2 エンコーダー ツール

XMA2 コマンド ライン エンコーダー ツール (XMA2Encode) は、一連の Pulse Code Modulation (PCM) ファイルを XMA2 フォーマットに変換したり、XMA2 ファイルを PCM フォーマットに変換したりします。

このツールは XBOX 360 と XBOX One の両方で使用できます。XBOX 360 の場合、ツールの出力を変更なしで使用できます。XBOX One の場合、`seek` テーブルをバイト スワップする必要があるかもしれません。これを行うコードは、このトピックの [XBOX One フォーマット](#ID4E2DAC)セクションにあります。

* [XMA2Encode の使用](#ID4E1)
* [XBOX One フォーマット](#ID4E2DAC)
* [独自の XMA エンコーダー ツールの作成](#ID4EPEAC)

## XMA2Encode の使用

以下のコードと表は、XMA2Encode の使用方法を説明しています。

| 列 1 |
| - |
| `XMA2Encode file [/TargetFile xmafile][/PCMOutputFile pcmfile][/DecodeToPCM pcmfile][/BlockSize][/Quality value][/FilterHighFrequencies][/LoopWholeFile][/UseLoopPoints][/Speaker pos][/MeasureTime][/Verbose][/Help]` |

| オプション | 説明 |
| - | - |
| `file` | 変換するファイルのファイル名を指定します。複数のファイル/スピーカー位置のペアを指定できます: `XMA2ENCODE pcmfile [/Speaker pos ...] [pcmfile [/Speaker pos ...] ...] [options]`。複数のファイルをエンコードする場合、XMA2Encode では、入力ファイルがすべてシングル チャネルであるか、すべてステレオで、最後のストリームがエンコードされるチャネル数に応じてモノラルまたはステレオのいずれかである必要があります。 **注意:** XMA2Encode は、PCM フォーマットまたは XMA2 フォーマット (`/DecodeToPCM` あり) のオーディオ ファイルのみをサポートします。 |
| `/TargetFile xmafile` | `xmafile` にエンコードします (許可されるターゲット ファイルは 1 つのみ)。 |
| `/PCMOutputFile pcmfile` | 生成された XMA2 ファイルを `pcmfile` にデコードして戻します。このオプションを使用すると、ツールは 2 つの出力ファイル (XMA2 エンコードされたオーディオ ファイルと、作成したばかりの XMA2 ファイルをデコードした結果である PCM ファイル) を生成します。結果として得られる PCM ファイルは、新しい XMA2 ファイルと同じオーディオ品質を持ちます。Windows 上で XMA2 ファイルの品質をプレビューできます。 |
| `/DecodeToPCM pcmfile` | 既存の XMA2 ファイルを `pcmfile` にデコードします。 |
| `/BlockSize` | 使用する XMA2 圧縮ブロック サイズを指定します (2 KB から 8,190 KB)。既定のブロック サイズは 64 KB です。 |
| `/Quality value` | 使用する XMA2 圧縮品質レベルを指定します (1 から 100)。品質の既定値は 60 です。 |
| `/FilterHighFrequencies` | ソース ファイルの高周波数をフィルター アウトします。 |
| `/LoopWholeFile` | ループ ポイントが既に存在していても、ファイル全体をループします。`LoopWholeFile` と `UseLoopPoints` は相互に排他的です。`LoopWholeFile` と `UseLoopPoints` の引数のいずれも指定されない場合、ループ ポイントが存在していてもファイルはループしません。 |
| `/UseLoopPoints` | 既存のループ ポイントがあればそれを使用します。ない場合はループしません。`LoopWholeFile` と `UseLoopPoints` は相互に排他的です。`LoopWholeFile` と `UseLoopPoints` の引数のいずれも指定されない場合、ループ ポイントが存在していてもファイルはループしません。 |
| `/Speaker pos` | ソース ファイルのチャネルのスピーカー割り当てを指定します。このオプションは、ファイル名の直後に配置する必要があります。`pos` は `L`、`R`、`C`、`LFE`、`LS`、`RS`、`LB`、または `RB` のいずれかです。`L` = フロント左、`R` = フロント右、`C` = フロント センター、`LFE` = 低周波数、`LS` = 左サラウンド、`RS` = 右サラウンド、`LB` = 左バック、`RB` = 右バックを表します。 **注意:** 入力ファイルにチャネル マスクがないか、ファイルのチャネル数と一致しない設定ビット数のチャネル マスクを持ち、`Speaker` オプションでスピーカー割り当てが指定されていない場合、結果として得られる XMA ファイルはチャネル マスク 0 を持ちます。 |
| `/MeasureTime` | エンコードに費やした時間を表示します。 |
| `/Verbose` | 詳細出力を有効にします。 |
| `/Help` | この使用情報を表示します。 |

### 備考

すべてのオプションは、その先頭の文字に省略できます。

以下の表は、XMA2Encode がエンコードの問題を示すために出力できるエラー コードを一覧表示しています。

| エラー コード | 説明 |
| - | - |
| 0x88890001 | 指定されたループ ポイントが無効です。 |
| 0x88890002 | 指定されたフォーマットが無効です。 |
| 0x88890003 | パラメーターが範囲外です。 |
| 0x88890004 | 読み取り操作が失敗しました。 |
| 0x88890005 | 無効な XMA フレームがありました。 |
| 0x88890006 | 不完全な XMA フレームがありました。 |
| 0x88890007 | スタッフィング ビットがゼロでした。 |
| 0x88890008 | データの取得が失敗しました。 |

## XBOX One フォーマット

XMA2Encode の出力は、XBOX One 用に `ULONG` バイト スワップする必要があります。入力が .wav ファイルの場合、出力は変更なしで使用できます。

`seek` テーブルをバイト スワップするには、次のコード行を使用します。

```cpp theme={null}
for(UINT32 i = 0;(i < xmaformat->BlockCount);i++)
    {
       rgpXMASeekTable[i] = _byteswap_ulong(rgpXMASeekTable[i]);
    }  
```

まずこのコード行をアプリに追加して機能をテストし、次にアプリで前処理が不要になるようにスワップを実行する別のツールを作成することを検討してください。

## 独自の XMA エンコーダー ツールの作成

*xmaencoder.h* で定義され、*xmaencoder.lib* で実装されているメソッドを使用して、独自のエンコーダー ツールを作成することが可能です。*xmaencoder.h* ファイルは既定で *C:\Program Files (x86)\Microsoft GDK\191100\GXDK\toolKit\include* フォルダーにあります。*xmaencoder.lib* ファイルは既定で *C:\Program Files (x86)\Microsoft GDK\191100\GXDK\toolKit\lib\amd64* フォルダーにあります。

ヘッダーとライブラリで利用可能な唯一のメソッドは [XAudio2XMAEncoder](https://docs.xbox.com/ja-jp/build/console-features/audio/tools/xma2encoder/methods/xaudio2xmaencoder-xmaencoder-xbox-microsoft-m.md) です。

ヘッダーで定義されている `XMA2InMemoryEncoder` および `XMAInMemoryEncoder` メソッド (レガシー) は使用しないでください。

## このセクションの内容

[XMA2 エンコーダー リファレンス](https://docs.xbox.com/ja-jp/build/console-features/audio/tools/xma2encoder/atoc-xmaencoder.md)
*xmaencoder.lib* で使用可能な関数について説明します。

## 関連項目

[XMA2 の概要](https://docs.xbox.com/ja-jp/build/console-features/audio/overviews/xma2-overview.md)


## Related topics

- [ツール](https://docs.xbox.com/ja-jp/build/console-features/audio/tools/index.md)
- [XMA2 の概要](https://docs.xbox.com/ja-jp/build/console-features/audio/overviews/xma2-overview.md)
- [XAudio2XMAEncoder](https://docs.xbox.com/ja-jp/build/console-features/audio/tools/xma2encoder/methods/xaudio2xmaencoder-xmaencoder-xbox-microsoft-m.md)
- [XMA2 エンコーダー ライブラリおよびコマンド ライン ツール](https://docs.xbox.com/ja-jp/build/console-features/audio/tools/xma2encoder/index.md)
- [xWMA エンコーダー ライブラリおよびコマンド ライン ツール](https://docs.xbox.com/ja-jp/build/console-features/audio/tools/xwmaencoder/index.md)
