XAudio2 Ses Grafı
İçerdiği efektler ve bağlantıları olan tüm seslerin kümesi, ses işleme grafı olarak adlandırılır. Grafik, giriş olarak istemciden bir dizi ses akışı alır, bunları işler ve son sonucu bir ses cihazına sunar. Tüm ses işleme, grafın kuantumu tarafından tanımlanan bir periyodiklik ile ayrı bir yazışmada gerçekleşir (şu anda Microsoft Windows'ta 10 milisaniye ve Xbox 360'ta 5 1/3 milisaniye). Her kuantum milisaniyesi, iş parçacığı uyanır ve ses verilerinin kuantum milisaniyesini grafın tamamında dağıtır. Temel bir ses grafı oluşturma örneği için bkz. Nasıl yapılır: Temel Ses İşleme Grafı Oluşturma.
Basit bir ses grafiği:
Basit bir ses grafiği
İstemci, çalışırken grafiğin durumunu dinamik olarak denetleyebiliyor. Denetim eylemleri arasında giriş ve çıkış ekleme ve kaldırma, iç efektleri ve ara bağlantıları değiştirme, efektler üzerinde parametre ayarlama, grafın bölümlerini etkinleştirme ve devre dışı bırakma gibi işlemler yer alabilir. Ses grafiğini dinamik olarak değiştirme örneği için bkz. Nasıl yapılır: Ses GrafıDinamik Olarak Ses Ekleme veya Kaldırma.
Grafı İşleme
Grafikteki herhangi bir nesneyi etkileyen herhangi bir yöntem çağrısının grafik durumu değişikliğini etkilediği kabul edilir. Grafik durumu değişiklikleri şunları içerir:
- Sesleri oluşturma ve yok etme
- Sesleri başlatma veya durdurma
- Sesin hedeflerini değiştirme
- Efekt zincirlerini değiştirme
- Efektleri etkinleştirme veya devre dışı bırakma
- Efektler veya yerleşik SRC'ler, filtreler, birimler ve karıştırıcılar üzerinde parametreleri ayarlama
Herhangi bir grafik durumu değişikliği kümesi birleştirilebilir ve atomik işlem olarak gerçekleştirilebilir. Bu atomik işlemler, işlem kümeleri olarak bilinir. Bunlar XAudio2 İşlem Kümeleri genel bakış bölümünde ele alınıyor.
İç Veri Gösterimi
XAudio2 grafı içindeki ses verileri her zaman 32 bit kayan nokta PCM biçiminde depolanır ve işlenir. Ancak kanal sayısı ve örnek oranı grafın içinde farklılık gösterebilir. Belirli bir sesin sesi işlediği biçim, sesi oluşturmak için kullanılan ses türüne ve parametrelere göre belirlenir.
Ses Türü | Parametre |
---|---|
IXAudio2SourceVoice | Kaynak sesin ses gönderdiği seslerin kanal sayısı ve örnek oranı. |
IXAudio2SubmixVoice ve IXAudio2MasteringVoice | InputChannels ve InputSampleRate bağımsız değişkenleri alt miks/ana ses oluşturmak için kullanılır. |
Biçim Dönüştürme
XAudio2, ses bir sesten diğerine hareket ettikçe gerekli olan tüm örnek hızları veya kanal dönüşümlerini aşağıdaki sınırlamalarla işler:
- Belirli bir ses için tüm hedef sesler aynı örnek hızında çalışıyor olmalıdır
- Efekt zincirindeki efektler sesin kanal sayısını değiştirebilir, ancak örnek hızını değiştiremez
- Efekt zincirinin çıkış kanalı sayısı, gönderdiği seslerle eşleşmelidir
- Yukarıdaki kuralları bozacak dinamik grafik değişikliği yapılamaz
Giriş tarafında, kaynak sesler verileri geçerli herhangi bir PCM biçiminde veya XAudio2 tarafından desteklenen sıkıştırılmış biçimlerden herhangi birinde okuyabilir. Giriş verileri sıkıştırılırsa, daha fazla işlem yapılmadan önce kayan nokta PCM'ye çözülür.
Çıkış tarafında, ana seslerde ustalık yalnızca PCM verileri üretebilir. Bu veriler, giriş PCM verileri için yukarıda açıklanan kısıtlamaların aynısını her zaman karşılar.
İlgili konular
-
Nasıl yapılır: Ses Grafı Dinamik Olarak Ses Ekleme veya Kaldırma
-
Nasıl yapılır: Submix Voices Kullanma