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 : 32;
UINT32 eqDelayElements3 : 32;
UINT32 eqDelayElements4 : 32;
UINT32 eqDelayElements5 : 32;
UINT32 eqDelayElements6 : 32;
UINT32 eqDelayElements7 : 32;
UINT32 compInputLevel : 32;
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;
};
timestamp
Read: Timestamp context processing was completed.
reserved0
Reserved.
internalSaturate
Read: 1 if EQ/Comp saturated, 0 otherwise.
mixBufPeakMag
Read: Peak Magnitude of output mix buffer.
peakMag
Read: Peak Magnitude of output.
eqAB0
Read/write: EQ A b0 coefficient.
eqAB1_L
Read/write: EQ A b1 coefficient (low 8 bits).
eqAB1_H
Read/write: EQ A b1 coefficient (high 16 bits).
eqAB2_L
Read/write: EQ A b2 coefficient (low 16 bits).
eqAB2_H
Read/write: EQ A b2 coefficient (high 8 bits)
eqAA1
Read/write: EQ A a1 coefficient.
eqAA2
Read/write: EQ A a2 coefficient.
eqBB0_L
Read/write: EQ B b0 coefficient (low 8 bits).
eqBB0_H
Read/write: EQ B b0 coefficient (high 16 bits).
eqBB1_L
Read/write: EQ B b1 coefficient (low 16 bits).
eqBB1_H
Read/write: EQ B b1 coefficient (high 8 bits).
eqBB2
Read/write: EQ B b2 coefficient.
eqBA1
Read/write: EQ B a1 coefficient.
eqBA2_L
Read/write: EQ B a2 coefficient (low 8 bits).
eqBA2_H
Read/write: EQ B a2 coefficient (high 16 bits).
eqCB0_L
Read/write: EQ C b0 coefficient (low 16 bits).
eqCB0_H
Read/write: EQ C b0 coefficient (high 8 bits).
eqCB1
Read/write: EQ C b1 coefficient.
eqCB2
Read/write: EQ C b2 coefficient.
eqCA1_L
Read/write: EQ C a1 coefficient (low 8 bits).
eqCA1_H
Read/write: EQ C a1 coefficient (high 16 bits).
eqCA2_L
Read/write: EQ C a2 coefficient (low 16 bits).
eqCA2_H
Read/write: EQ C a2 coefficient (high 8 bits).
reserved1
Reserved.
eqAInputDelay0
Read: Delay Element.
reserved2
Reserved.
eqAInputDelay1
Read: Delay Element.
reserved3
Reserved.
eqDelayElements2
Read: Delay Element.
eqDelayElements3
Read: Delay Element.
eqDelayElements4
Read: Delay Element.
eqDelayElements5
Read: Delay Element.
eqDelayElements6
Read: Delay Element.
eqDelayElements7
Read: Delay Element.
compInputLevel
Read: InputLevel as calculated for the input to the compressor in u8.23 format—0x0000_0000 to 0x7FFF_FFFF. The 8 integer bits allow for the equalizer section to have up to 48 dB gain prior to the compressor without clipping.
compGainReduction
Read: Calculated attenuation for the compressor in u1.23 format—0x00_0000 to 0x80_0000. This is a linear multiplier; a value of 0x40_0000, corresponding to 0.5 is a gain of -6 dB or a gain reduction of 6 dB.
reserved4
Reserved.
compGain
Read/write: Current output (makeup) gain value in u3.13 format—0x0000 to 0xFFFF.
reserved5
Reserved.
eqAB0Target
Read/write: EQ A b0 coefficient target.
eqAB1Target_L
Read/write: EQ A b1 coefficient target (low 8 bits).
eqAB1Target_H
Read/write: EQ A b1 coefficient target (high 16 bits).
eqAB2Target_L
Read/write: EQ A b2 coefficient target (low 16 bits).
eqAB2Target_H
Read/write: EQ A b2 coefficient target (high 8 bits).
eqAA1Target
Read/write: EQ A a1 coefficient target.
eqAA2Target
Read/write: EQ A a2 coefficient target.
eqBB0Target_L
Read/write: EQ B b0 coefficient target (low 8 bits).
eqBB0Target_H
Read/write: EQ B b0 coefficient target (high 16 bits).
eqBB1Target_L
Read/write: EQ B b1 coefficient target (low 16 bits).
eqBB1Target_H
Read/write: EQ B b1 coefficient target (high 8 bits).
eqBB2Target
Read/write: EQ B b2 coefficient target.
eqBA1Target
Read/write: EQ B a1 coefficient target.
eqBA2Target_L
Read/write: EQ B a2 coefficient target (low 8 bits).
eqBA2Target_H
Read/write: EQ B a2 coefficient target (high 16 bits).
eqCB0Target_L
Read/write: EQ C b0 coefficient target (low 16 bits).
eqCB0Target_H
Read/write: EQ C b0 coefficient target (high 8 bits).
eqCB1Target
Read/write: EQ C b1 coefficient target.
eqCB2Target
Read/write: EQ C b2 coefficient target.
eqCA1Target_L
Read/write: EQ C a1 coefficient target (low 8 bits).
eqCA1Target_H
Read/write: EQ C a1 coefficient target (high 16 bits).
eqCA2Target_L
Read/write: EQ C a2 coefficient target (low 16 bits).
eqCA2Target_H
Read/write: EQ C a2 coefficient target (high 8 bits)
reserved6
Reserved.
compRelease
Write: Release rate for the compressor in u1.23 format—0x00_0001 to 0x80_0000. This is the amount by which the GainReduction field is incremented on each sample period when the compressor/expander is in the release phase. If LogGain is set, the Release field is shifted right so bit 23 is aligned with the most significant bit of the current value of GainReduction, causing the increment to be exponential. The value 0 is illegal for this field and will cause incorrect operation.
reserved7
Reserved.
compExpand
Write: Refer to SHAPE_EQCOMP_EXPAND_MODE.
compLogGain
Write: Refer to SHAPE_EQCOMP_LOG_GAIN. This causes the attack and release phases to decrement and increment the gain reduction in an exponential fashion such that it will be linear in logarithmic space (that is, linear in dB).
compSidechainMode
Write: Refer to SHAPE_EQCOMP_SIDECHAIN_MODE.
compMode
Write: Refer to SHAPE_EQCOMP_COMPRESSOR_MODE.
compEnable
Write: 1 enabled, 0 disabled.
compThreshold
Write: Threshold value in u1.23 format—0x00_0000 to 0x80_0000.
reserved8
Reserved.
compAttack
Write: Attack rate for the compressor in u1.23 format—0x00_0001 to 0x80_0000. This is the amount by which the GainReduction field is decremented on each sample period when the compressor/expander is in the attack phase. If LogGain is set, the Attack field is shifted right so bit 23 is aligned with the most significant bit of the current value of GainReduction, causing the increment to be exponential. The value 0 is illegal for this field and will cause incorrect operation.
reserved9
Reserved.
compOneOverRatio
Write: Slope for the compressor in u1.15 format—0x0000 to 0x8000. This is the reciprocal of the traditional ratio control on compressors. For a ratio of 1:1, set OneOverRatio to 0x8000. For a ratio of 4:1, set OneOverRatio to 0x2000. The value 0x0000 is a ratio of Infinite:1.
compGainTarget
Write: User settable target for output (makeup) gain. During one audio frame, the gain will ramp from the current value to the GainTarget in u3.13 format—0x0000 to 0xFFFF.
The fields marked as Read: are written to by the ACP library and should only be read by your application. The fields marked Write: are set by your application and not changed by the ACP library. The fields marked Read:write are set by your application but can be changed by the ACP library.
The Delay Element fields are set by the EQCOMP filters and should not be modified by a title.
Refer to the SHAPE Overview for a description of peak magnitude.
Header: Declared in shapeeqcompcontext.h.
Library: Use acphal.lib.