Bagikan melalui


Konversi Laju Sampel XAudio2

Suara XAudio2 dapat melakukan konversi laju sampel otomatis jika laju sampel inputnya berbeda dari laju sampel input suara output mereka.

Konversi laju sampel mengikuti aturan berikut:

  • Laju sampel input suara diperbaiki.

    Suara hanya dapat menangani laju sampel input yang ditentukan saat dibuat. Untuk menguasai suara dan suara submix, laju sampel input ditentukan dengan argumen InputSampleRate ke fungsi IXAudio2::CreateMasteringVoice dan IXAudio2::CreateSubmixVoice . Untuk suara sumber, laju sampel input suara ditentukan oleh argumen pSourceFormat ke fungsi IXAudio2::CreateSourceVoice .

  • Semua suara output suara harus memiliki laju sampel input yang sama.

    Suara dapat dikonversi dari laju sampel inputnya ke laju sampel output apa pun, tetapi semua suara output suara harus memiliki laju sampel input yang sama. Misalnya, suara dapat menghasilkan sejumlah suara dengan laju sampel input 22 kHz. Namun, jika suara yang sama memiliki beberapa suara output, yang masing-masing memiliki laju sampel input yang berbeda, grafik audio tidak akan valid.

  • Pemrosesan konversi laju sampel hanya terjadi jika diperlukan.

    Mengonversi data audio ke laju sampel yang berbeda menimbulkan lebih banyak overhead pemrosesan, yang lebih disukai untuk dihindari. Jika laju sampel input suara cocok dengan laju sampel input suara outputnya, konversi ini tidak dilakukan dan waktu pemrosesan dipersingkat.

  • Laju sampel output dapat bervariasi selama masa pakai suara.

    Laju sampel output suara tidak diperbaiki. Selama semua suara outputnya memiliki laju sampel input yang sama, grafik audio akan valid. Jika suara diubah menjadi output ke suara baru dengan laju sampel input yang berbeda, suara akan dikonversi ke laju sampel input suara baru.

Ada beberapa skenario di mana perlu menambahkan suara submix untuk melakukan konversi laju sampel antar suara. Jika suara perlu menghasilkan suara dengan berbagai laju sampel input, hanya salah satu suara yang dapat menjadi output langsung dari suara asli. Karena semua suara output suara harus memiliki laju sampel input yang sama, suara lain menerima output secara tidak langsung. Harus ada suara submix dengan laju sampel input yang benar yang datang antara suara asli dan suara output yang dimaksudkan.

Misalnya, pertimbangkan suara sumber dengan laju sampel input 22 kHz, yang perlu menghasilkan suara submix dengan laju sampel input 11 kHz dan suara mastering dengan laju sampel input 44,1 kHz. Karena dua suara output memiliki laju sampel input yang berbeda, Anda perlu menyisipkan lebih banyak suara submix antara suara asli dan suara output yang dimaksudkan. Untuk mempertahankan keakuratan suara sumber dan menghindari konversi mahal yang tidak perlu ke tingkat sampel yang lebih tinggi, Anda perlu memasukkan dua suara submix dengan laju input sampel 22 khz ke dalam grafik. Satu suara submix akan menghasilkan 11 khz ke suara submix dengan efek reverb, dan suara submix lainnya akan menghasilkan suara mastering pada 44,1 khz.

Contoh Konversi Laju Sampel dalam Grafik Audio

Semua suara memiliki laju input sampel yang sama; tidak ada konversi laju sampel yang dilakukan dalam grafik audio. tidak ada konversi laju sampel yang dilakukan dalam grafik audio.

Semua suara memiliki laju input sampel yang sama kecuali suara master; konversi laju sampel hanya dilakukan pada data yang masuk ke suara master. konversi laju sampel hanya dilakukan pada data yang masuk ke suara master.

Suara memiliki laju input sampel yang berbeda dan memerlukan lebih banyak suara submix untuk melakukan konversi laju sampel; konversi laju sampel dilakukan di beberapa tempat dalam grafik audio. konversi laju sampel dilakukan di beberapa tempat dalam grafik audio.

Suara

Panduan Pemrograman XAudio2