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.
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
- pMatrixCoefficients
- pDelayTimes
- LPFDirectCoefficient
- LPFReverbCoefficient
- ReverbLevel
- DopplerFactor
- EmitterToListenerAngle
- EmitterToListenerDistance
- EmitterVelocityComponent
- ListenerVelocityComponent
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 |