Udostępnij za pośrednictwem


XAudio2 Audio Graph

Zestaw wszystkich głosów, z ich zawarte efekty i ich wzajemne połączenia, jest określany jako graf przetwarzania dźwięku. Wykres pobiera zestaw strumieni audio od klienta jako dane wejściowe, przetwarza je i dostarcza końcowy wynik do urządzenia audio. Wszystkie operacje przetwarzania dźwięku odbywają się w osobnym wątku z okresowością zdefiniowaną przez kwantowy grafu (obecnie 10 milisekund w systemie Microsoft Windows i 5 1/3 milisekund na konsoli Xbox 360). Każdy milisekund kwantowy wybudza i rozprasza milisekundy kwantowe danych dźwiękowych przez cały graf. Przykład tworzenia podstawowego grafu audio można znaleźć w temacie How to: Build a Basic Audio Processing Graph (Instrukcje: tworzenie podstawowego grafu przetwarzania dźwięku).

Prosty wykres dźwiękowy:

prostego grafu audio

Klient może kontrolować stan grafu dynamicznie podczas jego działania. Akcje sterujące mogą obejmować dodawanie i usuwanie danych wejściowych i wyjściowych, zmienianie efektów wewnętrznych i połączeń, ustawianie parametrów efektów, włączanie i wyłączanie części grafu itd. Aby zapoznać się z przykładem dynamicznego zmieniania grafu audio, zobacz Instrukcje: Dynamiczne dodawanie lub usuwanie głosów z grafu audio.

Przetwarzanie grafu

Każde wywołanie metody, które wpływa na dowolny obiekt na grafie, jest uznawane za mające wpływ na zmianę stanu grafu. Zmiany stanu grafu obejmują następujące elementy:

  • Tworzenie i niszczenie głosów
  • Uruchamianie lub zatrzymywanie głosów
  • Zmienianie miejsc docelowych głosu
  • Modyfikowanie łańcuchów efektów
  • Włączanie lub wyłączanie efektów
  • Ustawianie parametrów efektów lub wbudowanych kontrolerów SRC, filtrów, woluminów i mikserów

Każdy zestaw zmian stanu grafu może być połączony i wykonywany jako transakcja niepodzielna. Te operacje niepodzielne są nazywane zestawami operacji. Zostały one omówione w XAudio2 Operation Sets omówienie.

Reprezentacja danych wewnętrznych

Dane audio w grafie XAudio2 są zawsze przechowywane i przetwarzane w 32-bitowym formacie PCM. Jednak liczba kanałów i częstotliwość próbkowania mogą się różnić w obrębie grafu. Format, w którym dany głos przetwarza dźwięk, jest określany przez typ głosu i parametry używane do tworzenia głosu.

Typ głosu Parametry
IXAudio2SourceVoice Liczba kanałów i częstotliwość próbkowania głosów, do których głos źródłowy wysyła dźwięk.
IXAudio2SubmixVoice i IXAudio2MasteringVoice Argumenty InputChannels i InputSampleRate używane do tworzenia głosu podrzędnego/wzorca.

 

Konwersja formatu

XAudio2 obsługuje wszelkie konwersje częstotliwości próbkowania lub kanału, które są wymagane podczas podróży audio z jednego głosu do drugiego, z następującymi ograniczeniami:

  • Wszystkie głosy docelowe dla określonego głosu muszą być uruchomione z taką samą częstotliwością próbkowania
  • Efekty w łańcuchu efektu mogą zmieniać liczbę kanałów audio, ale nie jej częstotliwość próbkowania
  • Liczba kanałów wyjściowych łańcucha efektu musi być zgodna z liczbami głosów, do których wysyła
  • Nie można wprowadzić żadnych dynamicznych zmian grafu, które mogłyby spowodować przerwanie powyższych reguł

Po stronie danych wejściowych głosy źródłowe mogą odczytywać dane w dowolnym prawidłowym formacie PCM lub w dowolnym ze skompresowanych formatów obsługiwanych przez XAudio2. Jeśli dane wejściowe są kompresowane, są dekodowane do zmiennoprzecinkowych PCM przed zakończeniem dalszego przetwarzania.

Po stronie danych wyjściowych głosy mistrzowskie mogą generować tylko dane PCM. Te dane zawsze spełniają te same ograniczenia opisane powyżej dla danych wejściowych PCM.

Audio Graphs

przewodnik programowania XAudio2

Instrukcje: tworzenie podstawowego grafu przetwarzania dźwięku

Instrukcje: dynamiczne dodawanie lub usuwanie głosów z programu Audio Graph

Instrukcje: używanie głosów podrzędnych

Instrukcje: tworzenie łańcucha efektu