Bagikan melalui


Kontrol Volume dan Pitch XAudio2

Topik ini menjelaskan volume XAudio2 dan kontrol pitch.

Kontrol Volume

Tingkat volume dinyatakan sebagai pengali amplitude floating-point antara -XAUDIO2_MAX_VOLUME_LEVEL dan XAUDIO2_MAX_VOLUME_LEVEL (-224 hingga 224), dengan perolehan maksimum 144,5 dB. Volume 1,0 berarti tidak ada redaman atau keuntungan; 0 berarti keheningan; dan tingkat negatif dapat digunakan untuk menginversi fase audio. Dua fungsi sebaris disediakan dalam XAudio2.h untuk mengonversi antara unit volume: XAudio2DecibelsToAmplitudeRatio dan XAudio2AmplitudeRatioToDecibels.

Anda dapat menerapkan tingkat volume ke audio di beberapa titik saat mengalir melalui grafik XAudio2:

  • Semua jenis suara menerapkan tingkat volume keseluruhan ke inputnya, yang mereka kontrol menggunakan metode IXAudio2Voice::SetVolume . Dalam submix dan suara penguasaan, tingkat volume keseluruhan diterapkan tepat sebelum filter dan rantai efek bawaan suara. Dalam suara sumber, tingkat volume keseluruhan diterapkan setelah filter dan rantai efek bawaan suara.
  • Suara menerapkan tingkat volume per saluran ke outputnya, yang mereka kontrol menggunakan metode IXAudio2Voice::SetChannelVolumes . Tingkat volume per saluran diterapkan tepat setelah konversi laju sampel akhir suara, dan sebelum dikirim ke suara lain.
  • Setiap koneksi antara satu suara dan yang lain memiliki tabel tingkat yang digunakan untuk mengirim audio dari setiap saluran sumber ke setiap saluran target, yang dikontrol menggunakan metode IXAudio2Voice::SetOutputMatrix .

Semua volume keseluruhan dan volume saluran default ke 1.0 pada awalnya. Semua matriks tingkat kirim default ke nilai yang sesuai yang mempertahankan daya sinyal dan pemosisian saluran seakurat mungkin. Lihat gambaran umum Pemetaan Saluran Default XAudio2 untuk detailnya.

Catatan

XAudio2 secara otomatis menyesuaikan tingkat volume berdasarkan pengaturan speaker pengguna untuk mempertahankan tingkat volume yang konsisten di seluruh konfigurasi. Jika pengaturan pengguna tidak cocok dengan konfigurasi fisik mereka, volume akan terlalu keras atau terlalu lunak dibandingkan dengan sistem dengan pengaturan yang akurat. Misalnya, sistem yang dikonfigurasi untuk speaker suara surround 5.1 yang hanya memiliki dua speaker yang terhubung akan terdengar terlalu lembut. XAudio2 tidak dapat mendeteksi apakah pengaturan speaker pengguna cocok dengan pengaturan fisik mereka dengan benar.

 

Kontrol Pitch

Pitch dinyatakan sebagai rasio laju input/laju output antara 1/1.024 dan 1.024/1, inklusif. Rasio 1/1.024 menurunkan nada sebesar 10 oktaf, sementara rasio 1.024/1 meningkatkannya sebesar 10 oktaf. Anda hanya dapat menggunakan metode IXAudio2SourceVoice::SetFrequencyRatio untuk menerapkan penyesuaian nada pada suara sumber, dan hanya jika tidak dibuat dengan bendera XAUDIO2_VOICE_NOPITCH. Rasio frekuensi default adalah 1/1: yaitu, tidak ada perubahan nada. Dua fungsi sebaris disediakan dalam XAudio2.h untuk mengonversi antara rasio frekuensi dan semitone: XAudio2FrequencyRatioToSemitones dan XAudio2SemitonesToFrequencyRatio.

Kontrol Volume dan Pitch

Panduan Pemrograman XAudio2

Cara: Mengubah Voice Pitch

Cara: Mengubah Volume Suara