Pengantar XAudio2
XAudio2 adalah API audio tingkat rendah. Ini menyediakan fondasi pemrosesan dan pencampuran sinyal untuk game yang mirip dengan pendahulunya, DirectSound dan XAudio.
XAudio2 adalah pengganti DirectSound yang telah lama ditunggu-tunggu. Ini mengatasi beberapa masalah dan permintaan fitur yang luar biasa.
Fitur XAudio2
Berikut ini adalah daftar fitur XAudio2 dan fungsionalitas baru yang memungkinkan pengembang untuk meningkatkan performa dalam game mereka.
Efek DSP dan Pemfilteran Per Suara
Efek Pemrosesan Sinyal Digital (DSP) adalah shader piksel audio. Mereka menangani segala sesuatu mulai dari mengubah suara—mengubah derit babi menjadi suara monster yang rendah dan menakutkan—hingga menempatkan suara di lingkungan permainan menggunakan gaung dan oklusi atau pemfilteran penghalang. XAudio2 menyediakan kerangka kerja DSP yang fleksibel dan kuat. Ini juga menyediakan filter bawaan pada setiap suara, untuk efek pemfilteran rendah/tinggi/band-pass yang efisien.
Lihat Efek Audio XAudio2 dan IXAudio2Voice::SetFilterParameters untuk informasi selengkapnya tentang efek DSP dan per pemfilteran suara.
Submixing
Submixing menggabungkan beberapa suara ke dalam aliran audio tunggal—misalnya, suara mesin yang terdiri dari bagian komposit, yang semuanya diputar secara bersamaan. Selain itu, Anda dapat menggunakan submixing untuk memproses dan menggabungkan bagian serupa dari permainan. Misalnya, Anda dapat menggabungkan semua efek suara game untuk memungkinkan pengaturan volume pengguna diterapkan sementara pengaturan terpisah mengontrol volume musik. Dikombinasikan dengan DSP, submixing menyediakan jenis perutean dan pemrosesan data yang diperlukan untuk game saat ini. XAudio2 memungkinkan tingkat submixing arbitrer, memungkinkan pembuatan suara kompleks dan campuran game.
Lihat XAudio2 Audio Graph dan XAudio2 Voices untuk informasi selengkapnya tentang submixing.
Dukungan Audio Terkompresi
Salah satu permintaan fitur utama untuk DirectSound adalah untuk dukungan audio terkompresi. XAudio2 mendukung format terkompresi—ADPCM—secara asli dengan dekompresi run-time.
Dukungan Multisaluran dan Suara Surround yang Disempurnakan
Dukungan suara multisaluran, 3D, dan surround diperluas. Suara 3D dan surround sekarang jauh lebih fleksibel dan transparan. XAudio2 menghapus batas 6 saluran pada suara multisaluran, dan mendukung audio multisaluran pada kartu audio berkemampuan multisaluran. Kartu tidak perlu dipercepat perangkat keras.
Pemrosesan Multirate
Untuk membantu meminimalkan penggunaan CPU, XAudio2 menyediakan teknologi untuk membuat beberapa grafik pemrosesan audio tingkat rendah. Ini dapat secara signifikan mengurangi penggunaan CPU dengan memungkinkan game memproses audio pada tingkat bahan sumber jika lajunya kurang dari 48 kHz.
Nonblocking API Model
Dengan beberapa pengecualian, panggilan metode XAudio2 tidak akan memblokir mesin pemrosesan audio. Ini berarti bahwa klien dapat dengan aman melakukan serangkaian panggilan metode kapan saja tanpa memblokir panggilan jangka panjang yang menyebabkan penundaan. Pengecualiannya adalah metode IXAudio2Voice::D estroyVoice (yang dapat memblokir mesin hingga suara yang dihancurkan selesai diproses) dan metode yang mengakhiri utas audio: IXAudio2::StopEngine dan IXAudio2::Release. Perhatikan bahwa meskipun panggilan metode XAudio2 tidak akan memblokir mesin pemrosesan audio, metode XAudio2 berisi bagian penting dan mungkin sendiri diblokir dalam beberapa keadaan.
Kapan menggunakan XAudio2
XAudio2 terutama ditujukan untuk mengembangkan mesin audio berkinerja tinggi untuk game. Untuk pengembang game yang ingin menambahkan efek suara dan musik latar belakang ke game modern mereka, XAudio2 menawarkan grafik audio dan mesin pencampuran dengan latensi rendah dan dukungan untuk buffer dinamis, pemutaran sampel yang akurat sinkron, dan konversi laju sumber implisit. Dibandingkan dengan WASAPI, XAudio2 hanya memerlukan jumlah kode minimum bahkan untuk solusi audio yang kompleks. Dibandingkan dengan mesin Media Foundation, XAudio2 adalah API C++ latensi rendah tingkat rendah yang dirancang untuk digunakan dalam game.
Untuk aplikasi yang hanya membutuhkan pemutaran musik reguler, mesin Media Foundation mungkin lebih cocok dengan persyaratan aplikasi.
Topik terkait