estrutura X3DAUDIO_DSP_SETTINGS (x3daudio.h)
Recebe os resultados de uma chamada para X3DAudioCalculate.
Sintaxe
typedef struct X3DAUDIO_DSP_SETTINGS {
FLOAT32 *pMatrixCoefficients;
FLOAT32 *pDelayTimes;
UINT32 SrcChannelCount;
UINT32 DstChannelCount;
FLOAT32 LPFDirectCoefficient;
FLOAT32 LPFReverbCoefficient;
FLOAT32 ReverbLevel;
FLOAT32 DopplerFactor;
FLOAT32 EmitterToListenerAngle;
FLOAT32 EmitterToListenerDistance;
FLOAT32 EmitterVelocityComponent;
FLOAT32 ListenerVelocityComponent;
} X3DAUDIO_DSP_SETTINGS, *LPX3DAUDIO_DSP_SETTINGS;
Membros
pMatrixCoefficients
Matriz fornecida pelo chamador que será inicializada com o nível de volume de cada canal de origem presente em cada canal de destino. A matriz deve ter pelo menos elementos (SrcChannelCount × DstChannelCount). A matriz é organizada com os canais de origem como o índice de coluna da matriz e os canais de destino como o índice de linha da matriz. Por exemplo, ao renderizar a entrada estéreo de dois canais em uma saída 5.1 ponderada para os canais frontais , mas ausente dos canais central e de baixa frequência, a matriz pode ser conforme mostrado na tabela a seguir.
Saída | Entrada à Esquerda | Entrada à direita |
---|---|---|
Esquerda | 1,0 | 0,0 |
Direita | 0.0 | 1.0 |
Front Center | 0,0 | 0,0 |
LFE | 0,0 | 0,0 |
Esquerda Traseira | 0,8 | 0,0 |
Direita Traseira | 0.0 | 0,8 |
Observe que os canais esquerdo e direito são totalmente mapeados para os canais esquerdo e direito de saída; 80% da entrada esquerda e direita é mapeada para os canais traseiro esquerdo e direito.
O membro pMatrixCoefficients poderá ser NULL se o sinalizador X3DAUDIO_CALCULATE_MATRIX não for especificado ao chamar X3DAudioCalculate.
Ao usar X3DAudio com XAudio2, o valor retornado no membro pMatrixCoefficients seria aplicado a uma voz com IXAudio2Voice::SetOutputMatrix.
pDelayTimes
O chamador forneceu uma matriz de tempo de atraso, que recebe atrasos para cada canal de destino em milissegundos. Essa matriz deve ter pelo menos elementos DstChannelCount . O X3DAudio realmente não executa o atraso. Ele simplesmente retorna os coeficientes que podem ser usados para ajustar um efeito DSP de atraso colocado na cadeia de efeitos. O membro pDelayTimes poderá ser NULL se o sinalizador X3DAUDIO_CALCULATE_DELAY não for especificado ao chamar X3DAudioCalculate.
SrcChannelCount
Número de canais de origem. Isso deve ser inicializado para o número de canais de emissor antes de chamar X3DAudioCalculate.
DstChannelCount
Número de canais de origem. Isso deve ser inicializado para o número de canais de emissor antes de chamar X3DAudioCalculate.
LPFDirectCoefficient
Coeficiente de caminho direto LPF. Calculado somente se o sinalizador X3DAUDIO_CALCULATE_LPF_DIRECT for especificado ao chamar X3DAudioCalculate.
Ao usar X3DAudio com XAudio2, o valor retornado no membro LPFDirectCoefficient seria aplicado a um filtro de passagem baixa em uma voz de origem com IXAudio2Voice::SetFilterParameters.
LPFReverbCoefficient
Coeficiente de reverb-path LPF.
Calculado somente se o sinalizador X3DAUDIO_CALCULATE_LPF_REVERB for especificado ao chamar X3DAudioCalculate.
ReverbLevel
Nível de envio do Reverb. Calculado somente se o sinalizador X3DAUDIO_CALCULATE_REVERB for especificado ao chamar X3DAudioCalculate.
DopplerFactor
Fator de deslocamento do Doppler. Dimensiona a taxa de resampler para o efeito de deslocamento do Doppler, em que:
effective_frequency = DopplerFactor × original_frequency
Calculado somente se o sinalizador X3DAUDIO_CALCULATE_DOPPLER for especificado ao chamar X3DAudioCalculate.
Ao usar X3DAudio com XAudio2, o valor retornado no DopplerFactor seria aplicado a uma voz de origem com IXAudio2SourceVoice::SetFrequencyRatio.
EmitterToListenerAngle
Ângulo interior de emissor para ouvinte, expresso em radianos em relação à orientação frontal do emissor.
Calculado somente se o sinalizador X3DAUDIO_CALCULATE_EMITTER_ANGLE for especificado ao chamar X3DAudioCalculate.
EmitterToListenerDistance
Distância em unidades mundiais definidas pelo usuário do ouvinte até a posição base do emissor.
EmitterVelocityComponent
Componente do vetor de velocidade do emissor projetado no vetor emitter-to-listener em unidades mundiais definidas pelo usuário por segundo.
Calculado somente se o sinalizador X3DAUDIO_CALCULATE_DOPPLER for especificado ao chamar X3DAudioCalculate.
ListenerVelocityComponent
Componente do vetor de velocidade do ouvinte projetado no vetor emitter-listener> em unidades de mundo definidas pelo usuário por segundo. Calculado somente se o sinalizador X3DAUDIO_CALCULATE_DOPPLER for especificado ao chamar X3DAudioCalculate.
Comentários
Os seguintes membros devem ser inicializados antes de passar essa estrutura para a função X3DAudioCalculate :
- pMatrixCoefficients
- pDelayTimes
- SrcChannelCount
- DstChannelCount
- pMatrixCoefficients
- pDelayTimes
- LPFDirectCoefficient
- LPFReverbCoefficient
- ReverbLevel
- DopplerFactor
- EmitterToListenerAngle
- EmitterToListenerDistance
- EmitterVelocityComponent
- ListenerVelocityComponent
Requisitos de plataforma
Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); SDK do DirectX (XAudio 2.7)Requisitos
Requisito | Valor |
---|---|
Cabeçalho | x3daudio.h |