Zvukový graf XAudio2
Sada všech hlasů s jejich obsaženými efekty a jejich propojeními se označuje jako graf zpracování zvuku. Graf přebírá sadu zvukových streamů z klienta jako vstup, zpracovává je a doručuje konečný výsledek do zvukového zařízení. Veškeré zpracování zvuku probíhá v samostatném vlákně s periodikou definovanou kvantovým grafem (aktuálně 10 milisekund v Microsoft Windows a 5 1/3 milisekund na Xboxu 360). Každé kvantové milisekundy se vlákno probudí a rozptýlí kvantové milisekundy zvukových dat v celém grafu. Příklad vytvoření základního zvukového grafu najdete v tématu Postupy: Sestavení základního grafu zpracování zvuku.
Jednoduchý zvukový graf:
Klient může dynamicky řídit stav grafu během běhu. Mezi řídicí akce může patřit přidání a odebrání vstupů a výstupů, změna vnitřních efektů a propojení, nastavení parametrů na efekty, povolení a zakázání částí grafu atd. Příklad dynamické změny zvukového grafu najdete v tématu Postupy: Dynamické přidávání nebo odebírání hlasů ze zvukového grafu.
Zpracování grafu
Jakékoli volání metody, které ovlivňuje jakýkoli objekt v grafu, se považuje za účinek změny stavu grafu. Změny stavu grafu zahrnují následující:
- Vytváření a zničení hlasů
- Spouštění nebo zastavování hlasů
- Změna cílů hlasu
- Úprava řetězů efektů
- Povolení nebo zakázání efektů
- Nastavení parametrů pro efekty nebo integrované řadiče obrazovky, filtry, svazky a mixéry
Libovolnou sadu změn stavu grafu lze kombinovat a provádět jako atomické transakce. Tyto atomické operace se označují jako sady operací. Jsou popsány v přehledu sad operací XAudio2.
Interní reprezentace dat
Zvuková data v grafu XAudio2 se vždy ukládají a zpracovávají ve 32bitové podobě PCM s plovoucí desetinou čárkou. Počet kanálů a vzorkovací frekvence se ale v grafu můžou lišit. Formát, ve kterém daný hlas zpracovává zvuk, je určen typem hlasu a parametry použitými k vytvoření hlasu.
Typ hlasu | Parametry |
---|---|
IXAudio2SourceVoice | Počet kanálů a vzorkovací frekvence hlasů, do kterých zdrojový hlas odesílá zvuk. |
IXAudio2SubmixVoice a IXAudio2MasteringVoice | InputChannels a inputSampleRate argumenty použité k vytvoření hlasu submix/mastering. |
Převod formátu
XAudio2 zpracovává všechny vzorkovací frekvence nebo převody kanálů, které se vyžadují při přenosu zvuku z jednoho hlasu do druhého, s následujícími omezeními:
- Všechny cílové hlasy pro určitý hlas musí běžet ve stejné vzorkovací frekvenci.
- Efekty v řetězu efektů můžou změnit počet kanálů zvuku, ale ne její vzorkovací frekvence.
- Počet výstupních kanálů řetězu efektů se musí shodovat s hlasy, na které odesílá.
- Nelze provést žádnou změnu dynamického grafu, která by porušila výše uvedená pravidla.
Na vstupní straně můžou zdrojové hlasy číst data v libovolném platném formátu PCM nebo v libovolném komprimovaném formátu podporovaném XAudio2. Pokud jsou vstupní data komprimovaná, před provedením dalšího zpracování se dekóduje do PCM s plovoucí desetinou čárkou.
Na straně výstupu můžou hlavní hlasy vytvářet pouze data PCM. Tato data vždy vyhovují stejným omezením popsaným výše pro vstupní data PCM.
Související témata
-
Postupy: Vytvoření grafu základního zpracování zvuku
-
Postupy: Dynamické přidávání nebo odebírání hlasů ze zvukového grafu
-
Postupy: Použití Submix Voices
-
Postupy: Vytvoření řetězu efektů