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

# SHAPE_EQCOMP_CONTEXT

> SHAPE_EQCOMP_CONTEXT

# SHAPE\_EQCOMP\_CONTEXT

イコライザーおよびコンプレッサー (EQComp) コンテキスト。

## Syntax

```cpp theme={null}
typedef struct SHAPE_EQCOMP_CONTEXT {  
    UINT32 timestamp : 21;  
    UINT32 reserved0 : 2;  
    UINT32 internalSaturate : 1;  
    UINT32 mixBufPeakMag : 4;  
    UINT32 peakMag : 4;  
    UINT32 eqAB0 : 24;  
    UINT32 eqAB1_L : 8;  
    UINT32 eqAB1_H : 16;  
    UINT32 eqAB2_L : 16;  
    UINT32 eqAB2_H : 8;  
    UINT32 eqAA1 : 24;  
    UINT32 eqAA2 : 24;  
    UINT32 eqBB0_L : 8;  
    UINT32 eqBB0_H : 16;  
    UINT32 eqBB1_L : 16;  
    UINT32 eqBB1_H : 8;  
    UINT32 eqBB2 : 24;  
    UINT32 eqBA1 : 24;  
    UINT32 eqBA2_L : 8;  
    UINT32 eqBA2_H : 16;  
    UINT32 eqCB0_L : 16;  
    UINT32 eqCB0_H : 8;  
    UINT32 eqCB1 : 24;  
    UINT32 eqCB2 : 24;  
    UINT32 eqCA1_L : 8;  
    UINT32 eqCA1_H : 16;  
    UINT32 eqCA2_L : 16;  
    UINT32 eqCA2_H : 8;  
    UINT32 reserved1 : 24;  
    UINT32 eqAInputDelay0 : 24;  
    UINT32 reserved2 : 8;  
    UINT32 eqAInputDelay1 : 24;  
    UINT32 reserved3 : 8;  
    UINT32 eqDelayElements2;  
    UINT32 eqDelayElements3;  
    UINT32 eqDelayElements4;  
    UINT32 eqDelayElements5;  
    UINT32 eqDelayElements6;  
    UINT32 eqDelayElements7;  
    UINT32 compInputLevel;  
    UINT32 compGainReduction : 24;  
    UINT32 reserved4 : 8;  
    UINT32 compGain : 16;  
    UINT32 reserved5 : 16;  
    UINT32 eqAB0Target : 24;  
    UINT32 eqAB1Target_L : 8;  
    UINT32 eqAB1Target_H : 16;  
    UINT32 eqAB2Target_L : 16;  
    UINT32 eqAB2Target_H : 8;  
    UINT32 eqAA1Target : 24;  
    UINT32 eqAA2Target : 24;  
    UINT32 eqBB0Target_L : 8;  
    UINT32 eqBB0Target_H : 16;  
    UINT32 eqBB1Target_L : 16;  
    UINT32 eqBB1Target_H : 8;  
    UINT32 eqBB2Target : 24;  
    UINT32 eqBA1Target : 24;  
    UINT32 eqBA2Target_L : 8;  
    UINT32 eqBA2Target_H : 16;  
    UINT32 eqCB0Target_L : 16;  
    UINT32 eqCB0Target_H : 8;  
    UINT32 eqCB1Target : 24;  
    UINT32 eqCB2Target : 24;  
    UINT32 eqCA1Target_L : 8;  
    UINT32 eqCA1Target_H : 16;  
    UINT32 eqCA2Target_L : 16;  
    UINT32 eqCA2Target_H : 8;  
    UINT32 reserved6 : 24;  
    UINT32 compRelease : 24;  
    UINT32 reserved7 : 2;  
    UINT32 compExpand : 1;  
    UINT32 compLogGain : 1;  
    UINT32 compSidechainMode : 2;  
    UINT32 compMode : 1;  
    UINT32 compEnable : 1;  
    UINT32 compThreshold : 24;  
    UINT32 reserved8 : 8;  
    UINT32 compAttack : 24;  
    UINT32 reserved9 : 8;  
    UINT32 compOneOverRatio : 16;  
    UINT32 compGainTarget : 16;  
} SHAPE_EQCOMP_CONTEXT  
```

### Members

*timestamp*\
Type: UINT32

Read: コンテキスト処理の完了時のタイムスタンプ。

*Reserved0*\
Type: UINT32

予約済み。

*internalSaturate*\
Type: UINT32

Read: EQ/Comp が飽和している場合は 1、そうでない場合は 0。

*mixBufPeakMag*\
Type: UINT32

Read: 出力ミックスバッファーのピーク振幅。

*peakMag*\
Type: UINT32

Read: 出力のピーク振幅。

*eqAB0*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数 b0。

*eqAB1\_L*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数 b1、下位 8 ビット。

*eqAB1\_H*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数 b1、上位 16 ビット。

*eqAB2\_L*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数 b2、下位 16 ビット。

*eqAB2\_H*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数 b2、上位 8 ビット。

*eqAA1*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数 a1。

*eqAA2*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数 a2。

*eqBB0\_L*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数 b0、下位 8 ビット。

*eqBB0\_H*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数 b0、上位 16 ビット。

*eqBB1\_L*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数 b1、下位 16 ビット。

*eqBB1\_H*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数 b1、上位 8 ビット。

*eqBB2*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数 b2。

*eqBA1*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数 a1。

*eqBA2\_L*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数 a2、下位 8 ビット。

*eqBA2\_H*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数 a2、上位 16 ビット。

*eqCB0\_L*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数 b0、下位 16 ビット。

*eqCB0\_H*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数 b0、上位 8 ビット。

*eqCB1*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数 b1。

*eqCB2*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数 b2。

*eqCA1\_L*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数 a1、下位 8 ビット。

*eqCA1\_H*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数 a1、上位 16 ビット。

*eqCA2\_L*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数 a2、下位 16 ビット。

*eqCA2\_H*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数 a2、上位 8 ビット。

*Reserved1*\
Type: UINT32

予約済み。

*eqAInputDelay0*\
Type: UINT32

Read: 左チャンネルの入力遅延。

*Reserved2*\
Type: UINT32

予約済み。

*eqAInputDelay1*\
Type: UINT32

Read: 右チャンネルの入力遅延。

*Reserved*\
Type: UINT32

予約済み。

*eqDelayElements2*\
Type: UINT32

Read: 遅延要素。

*eqDelayElements3*\
Type: UINT32

Read: 遅延要素。

*eqDelayElements4*\
Type: UINT32

Read: 遅延要素。

*eqDelayElements5*\
Type: UINT32

Read: 遅延要素。

*eqDelayElements6*\
Type: UINT32

Read: 遅延要素。

*eqDelayElements7*\
Type: UINT32

Read: 遅延要素。

*compInputLevel*\
Type: UINT32

Read: コンプレッサーへの入力に対して計算された InputLevel。u8.23 形式 (-0x0000\_0000 ～ 0x7FFF\_FFFF)。8 つの整数ビットにより、コンプレッサーの前段でクリッピングせずに最大 48 dB のゲインを持つイコライザーセクションが可能になります。

*compGainReduction*\
Type: UINT32

Read: コンプレッサーの計算済み減衰。u1.23 形式 (-0x00\_0000 ～ 0x80\_0000)。これは線形の乗数であり、0.5 に相当する値 0x40\_0000 は -6 dB のゲイン、または 6 dB のゲインリダクションを意味します。

*Reserved4*\
Type: UINT32

予約済み。

*compGain*\
Type: UINT32

Read/Write: 現在の出力 (メイクアップ) ゲイン値。u3.13 形式 (-0x0000 ～ 0xFFFF)。

*Reserved5*\
Type: UINT32

予約済み。

*eqAB0Target*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数ターゲット b0。

*eqAB1Target\_L*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数ターゲット b1、下位 8 ビット。

*eqAB1Target\_H*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数ターゲット b1、上位 16 ビット。

*eqAB2Target\_L*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数ターゲット b2、下位 16 ビット。

*eqAB2Target\_H*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数ターゲット b2、上位 8 ビット。

*eqAA1Target*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数ターゲット a1。

*eqAA2Target*\
Type: UINT32

Read/Write: イコライザーフィルター A の係数ターゲット a2。

*eqBB0Target\_L*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数ターゲット b0、下位 8 ビット。

*eqBB0Target\_H*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数ターゲット b0、上位 16 ビット。

*eqBB1Target\_L*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数ターゲット b1、下位 16 ビット。

*eqBB1Target\_H*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数ターゲット b1、上位 8 ビット。

*eqBB2Target*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数ターゲット b2。

*eqBA1Target*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数ターゲット a1。

*eqBA2Target\_L*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数ターゲット a2、下位 8 ビット。

*eqBA2Target\_H*\
Type: UINT32

Read/Write: イコライザーフィルター B の係数ターゲット a2、上位 16 ビット。

*eqCB0Target\_L*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数ターゲット b0、下位 16 ビット。

*eqCB0Target\_H*\
Type: UINT32

Read/Write: イコライザーフィルター C の EQ 係数ターゲット b0、上位 8 ビット。

*eqCB1Target*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数ターゲット b1。

*eqCB2Target*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数ターゲット b2。

*eqCA1Target\_L*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数ターゲット a1、下位 8 ビット。

*eqCA1Target\_H*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数ターゲット a1、上位 16 ビット。

*eqCA2Target\_L*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数ターゲット a2、下位 16 ビット。

*eqCA2Target\_H*\
Type: UINT32

Read/Write: イコライザーフィルター C の係数ターゲット a2、上位 8 ビット。

*Reserved6*\
Type: UINT32

予約済み。

*compRelease*\
Type: UINT32

Write: コンプレッサーのリリースレート。u1.23 形式 (-0x00\_0001 ～ 0x80\_0000)。コンプレッサー/エキスパンダーがリリースフェーズにあるときに、サンプル期間ごとに *compGainReduction* に加算される値です。*compLogGain* が設定されている場合、*compRelease* はビット 23 が *compGainReduction* の現在値の最上位ビットに揃うように右シフトされ、加算量が指数関数的になります。値 0 はこのメンバーに対して有効ではなく、正しく動作しなくなります。

*Reserved7*\
Type: UINT32

予約済み。

*compExpand*\
Type: UINT32

Write: SHAPE\_EQCOMP\_EXPAND\_MODE を参照してください。

*compLogGain*\
Type: UINT32

Write: SHAPE\_EQCOMP\_LOG\_GAIN を参照してください。これにより、アタックフェーズおよびリリースフェーズでゲインリダクションが指数関数的に減増され、対数空間での線形性 (すなわち dB 単位での線形性) が得られます。

*compSidechainMode*\
Type: UINT32

Write: SHAPE\_EQCOMP\_SIDECHAIN\_MODE を参照してください。

*compMode*\
Type: UINT32

Write: SHAPE\_EQCOMP\_COMPRESSOR\_MODE を参照してください。

*compEnable*\
Type: UINT32

Write: 1 == 有効、0 == 無効。

*compThreshold*\
Type: UINT32

Write: しきい値。u1.23 形式 (-0x00\_0000 ～ 0x80\_0000)。

*Reserved8*\
Type: UINT32

予約済み。

*compAttack*\
Type: UINT32

Write: コンプレッサーのアタックレート。u1.23 形式 (-0x00\_0001 ～ 0x80\_0000)。コンプレッサー/エキスパンダーがアタックフェーズにあるときに、サンプル期間ごとに *compGainReduction* から減算される値です。*compLogGain* が設定されている場合、*compAttack* はビット 23 が *compGainReduction* の現在値の最上位ビットに揃うように右シフトされ、加算量が指数関数的になります。値 0 はこのメンバーに対して有効ではなく、正しく動作しなくなります。

*Reserved9*\
Type: UINT32

予約済み。

*compOneOverRatio*\
Type: UINT32

Write: コンプレッサーのスロープ。u1.15 形式 (-0x0000 ～ 0x8000)。これは、従来のコンプレッサーにおける比率コントロールの逆数です。比率 1:1 の場合、*compOneOverRatio* を 0x8000 に設定します。比率 4:1 の場合、*compOneOverRatio* を 0x2000 に設定します。値 0x0000 は無限大:1 の比率です。

*compGainTarget*\
Type: UINT32

Write: 出力 (メイクアップ) ゲインに対するユーザー設定可能なターゲット。1 オーディオフレームの間に、ゲインは現在の値から *compGainTarget* までランプします。u3.13 形式 (-0x0000 ～ 0xFFFF)。

## Remarks

この構造体は、イコライザー (EQ) およびコンプレッサーのコンテキストを保持します。Scalable Hardware Audio Processing Engine (SHAPE) は、1 オーディオフレームあたり最大 512 個の EQComp コンテキストを処理できます。

詳細については、[SHAPE の概要](/build/console-features/audio/overviews/shape-overview) の [イコライゼーションと圧縮](/build/console-features/audio/overviews/shape-overview#ID4ECF) を参照してください。

## Requirements

**Header:** shapeeqcompcontext.h

**Supported platforms:** XBOX One ファミリー本体および XBOX Series 本体

## Conceptual documentation

* [ACP の概要](/build/console-features/audio/overviews/acp-overview)

## See also

[ShapeEqCompContext](/reference/audio/shapeeqcompcontext/shapeeqcompcontext_members)


## Related topics

- [ShapeEqCompContext](/ja-jp/reference/audio/shapeeqcompcontext/shapeeqcompcontext_members.md)
- [SHAPE_EQCOMP_COMPRESSOR_MODE](/ja-jp/reference/audio/shapeeqcompcontext/enums/shape_eqcomp_compressor_mode.md)
- [SHAPE_EQCOMP_FILTER_INDEX](/ja-jp/reference/audio/shapeeqcompcontext/enums/shape_eqcomp_filter_index.md)
- [ACP_COMMAND_UPDATE_EQCOMP_CONTEXT_ENTRY](/ja-jp/reference/audio/acphal/structs/acp_command_update_eqcomp_context_entry.md)
- [SetShapeEqCompSidechainMode](/ja-jp/reference/audio/shapeeqcompcontext/functions/setshapeeqcompsidechainmode.md)
