Compartilhar via


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.

Nota Esse membro só é retornado quando X3DAudio é inicializado para saída estéreo. Para uso típico do Xbox 360, ele não retornará nenhum dado.
 

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
Os seguintes membros são retornados passando essa estrutura para a função X3DAudioCalculate :
  • pMatrixCoefficients

  • pDelayTimes

  • LPFDirectCoefficient

  • LPFReverbCoefficient
  • ReverbLevel

  • DopplerFactor

  • EmitterToListenerAngle
  • EmitterToListenerDistance

  • EmitterVelocityComponent

  • ListenerVelocityComponent
Nota Para pMatrixCoefficients e pDelayTimes, X3DAudioCalculate não aloca memória adicional. X3DAudioCalculate apenas modifica os valores nos locais de memória alocados para esses ponteiros.
 

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

Confira também

Estruturas