> ## 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의 목표 계수 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: 출력(메이크업) 게인의 사용자 설정 목표값입니다. 한 오디오 프레임 동안 게인은 현재 값에서 *compGainTarget*까지 램프되며, u3.13 형식(-0x0000 \~ 0xFFFF)으로 표현됩니다.

## Remarks

이 구조체는 이퀄라이저(EQ)와 컴프레서의 컨텍스트를 포함합니다. Scalable Hardware Audio Processing Engine(SHAPE)은 오디오 프레임당 최대 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](/ko/reference/audio/shapeeqcompcontext/shapeeqcompcontext_members.md)
- [ACP_COMMAND_UPDATE_EQCOMP_CONTEXT_ENTRY](/ko/reference/audio/acphal/structs/acp_command_update_eqcomp_context_entry.md)
- [SHAPE_EQCOMP_COMPRESSOR_MODE](/ko/reference/audio/shapeeqcompcontext/enums/shape_eqcomp_compressor_mode.md)
- [SHAPE_EQCOMP_FILTER_INDEX](/ko/reference/audio/shapeeqcompcontext/enums/shape_eqcomp_filter_index.md)
- [SetShapeEqCompCompressorMode](/ko/reference/audio/shapeeqcompcontext/functions/setshapeeqcompcompressormode.md)
