Bagikan melalui


struktur X3DAUDIO_DSP_SETTINGS (x3daudio.h)

Menerima hasil dari panggilan ke X3DAudioCalculate.

Sintaks

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;

Anggota

pMatrixCoefficients

Pemanggil menyediakan array yang akan diinisialisasi dengan tingkat volume setiap saluran sumber yang ada di setiap saluran tujuan. Array harus memiliki setidaknya elemen (SrcChannelCount × DstChannelCount). Array disusun dengan saluran sumber sebagai indeks kolom array dan saluran tujuan sebagai indeks baris array. Misalnya, saat merender input stereo dua saluran ke dalam output 5,1 yang tertimbang terhadap saluran depan—tetapi tidak ada dari saluran tengah dan frekuensi rendah—matriks mungkin seperti yang ditunjukkan dalam tabel berikut.

Output Input Kiri Input Kanan
Left 1,0 0.0
Hak 0.0 1,0
Tengah Depan 0.0 0.0
LFE 0.0 0.0
Kiri Belakang 0.8 0.0
Kanan Belakang 0.0 0.8
 

Perhatikan bahwa saluran kiri dan kanan sepenuhnya dipetakan ke saluran kiri dan kanan output; 80 persen input kiri dan kanan dipetakan ke saluran kiri dan kanan belakang.

Anggota pMatrixCoefficients dapat berupa NULL jika bendera X3DAUDIO_CALCULATE_MATRIX tidak ditentukan saat memanggil X3DAudioCalculate.

Saat menggunakan X3DAudio dengan XAudio2, nilai yang dikembalikan dalam anggota pMatrixCoefficients akan diterapkan ke suara dengan IXAudio2Voice::SetOutputMatrix.

pDelayTimes

Pemanggil menyediakan array waktu penundaan, yang menerima penundaan untuk setiap saluran tujuan dalam milidetik. Array ini harus memiliki setidaknya elemen DstChannelCount . X3DAudio sebenarnya tidak melakukan penundaan. Ini hanya mengembalikan koefisien yang dapat digunakan untuk menyesuaikan efek DSP penundaan yang ditempatkan dalam rantai efek. Anggota pDelayTimes dapat berupa NULL jika bendera X3DAUDIO_CALCULATE_DELAY tidak ditentukan saat memanggil X3DAudioCalculate.

Catatan Anggota ini hanya dikembalikan ketika X3DAudio diinisialisasi untuk output stereo. Untuk penggunaan Xbox 360 yang khas, itu tidak akan mengembalikan data sama sekali.
 

SrcChannelCount

Jumlah saluran sumber. Ini harus diinisialisasi ke jumlah saluran pemancar sebelum memanggil X3DAudioCalculate.

DstChannelCount

Jumlah saluran sumber. Ini harus diinisialisasi ke jumlah saluran pemancar sebelum memanggil X3DAudioCalculate.

LPFDirectCoefficient

Koefisien jalur langsung LPF. Hanya dihitung jika bendera X3DAUDIO_CALCULATE_LPF_DIRECT ditentukan saat memanggil X3DAudioCalculate.

Saat menggunakan X3DAudio dengan XAudio2, nilai yang dikembalikan dalam anggota LPFDirectCoefficient akan diterapkan ke filter pass rendah pada suara sumber dengan IXAudio2Voice::SetFilterParameters.

LPFReverbCoefficient

Koefisien jalur reverb LPF.

Hanya dihitung jika bendera X3DAUDIO_CALCULATE_LPF_REVERB ditentukan saat memanggil X3DAudioCalculate.

ReverbLevel

Tingkat pengiriman Reverb. Hanya dihitung jika bendera X3DAUDIO_CALCULATE_REVERB ditentukan saat memanggil X3DAudioCalculate.

DopplerFactor

Faktor pergeseran Doppler. Menskalakan rasio resampler untuk efek pergeseran Doppler, di mana:

effective_frequency = DopplerFactor × original_frequency

Hanya dihitung jika bendera X3DAUDIO_CALCULATE_DOPPLER ditentukan saat memanggil X3DAudioCalculate.

Saat menggunakan X3DAudio dengan XAudio2, nilai yang dikembalikan di DopplerFactor akan diterapkan ke suara sumber dengan IXAudio2SourceVoice::SetFrequencyRatio.

EmitterToListenerAngle

Sudut interior emiter-ke-listener, dinyatakan dalam radian sehubungan dengan orientasi depan emiter.

Hanya dihitung jika bendera X3DAUDIO_CALCULATE_EMITTER_ANGLE ditentukan saat memanggil X3DAudioCalculate.

EmitterToListenerDistance

Jarak dalam unit dunia yang ditentukan pengguna dari pendengar ke posisi dasar emiter.

EmitterVelocityComponent

Komponen vektor kecepatan emitor yang diproyeksikan ke vektor emitor-ke-listener dalam unit dunia yang ditentukan pengguna per detik.

Hanya dihitung jika bendera X3DAUDIO_CALCULATE_DOPPLER ditentukan saat memanggil X3DAudioCalculate.

ListenerVelocityComponent

Komponen vektor kecepatan pendengar yang diproyeksikan ke vektor pendengar emitor> dalam unit dunia yang ditentukan pengguna per detik. Hanya dihitung jika bendera X3DAUDIO_CALCULATE_DOPPLER ditentukan saat memanggil X3DAudioCalculate.

Keterangan

Anggota berikut harus diinisialisasi sebelum meneruskan struktur ini ke fungsi X3DAudioCalculate :

  • pMatrixCoefficients

  • pDelayTimes
  • SrcChannelCount

  • DstChannelCount
Anggota berikut dikembalikan dengan meneruskan struktur ini ke fungsi X3DAudioCalculate :
  • pMatrixCoefficients

  • pDelayTimes

  • LPFDirectCoefficient

  • LPFReverbCoefficient
  • ReverbLevel

  • DopplerFactor

  • EmitterToListenerAngle
  • EmitterToListenerDistance

  • EmitterVelocityComponent

  • ListenerVelocityComponent
Catatan Untuk pMatrixCoefficients dan pDelayTimes, X3DAudioCalculate tidak mengalokasikan memori tambahan. X3DAudioCalculate hanya memodifikasi nilai di lokasi memori yang dialokasikan untuk pointer ini.
 

Persyaratan Platform

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)

Persyaratan

Persyaratan Nilai
Header x3daudio.h

Lihat juga

Struktur