XAudio2-röster
Det finns tre typer av XAudio2-röstobjekt: källa, undermixoch mastering röster. Källröster fungerar på ljuddata som tillhandahålls av klienten. Käll- och undermixröster skickar sina utdata till en eller flera undermix- eller masterröster. Undermix- och masterröster blandar ljudet från alla röster som matar dem och fungerar på resultatet. Mastering-röster skriver ljuddata till en ljudenhet.
Åtgärder som utförs av alla röster
Alla röster utför följande åtgärder i ordning på ljudet som färdas genom dem.
- Total volymjustering som påverkar alla ljudkanaler. Se IXAudio2Voice::SetVolume.
- En valfri klientspecifik kedja med en eller flera DSP-effekter, till exempel den inbyggda reverb- eller användareffekten som definieras av IXAPO--gränssnittet. Se XAudio2 Ljudeffekter.
- Volymjustering per kanal för utdata. Se IXAudio2Voice::SetChannelVolumes.
- Separera matrisblandningen till var och en av målrösterna eller till ljudutdataenheten för att hantera röster. Den här mixen ändrar vid behov antalet kanaler i ljudet.
Källröster
Använd källröster för att skicka ljuddata till XAudio2-bearbetningspipelinen. De är startpunkterna i XAudio2 Audio Graph. Du måste skicka röstdata till en huvudröst för att höras, antingen direkt eller via mellanliggande undermixröster.
Förutom de åtgärder som utförs av alla röster utför källrösterna följande åtgärder.
- Vid behov körs en avkodare först för att konvertera kodade källdata till Pulse Code Modulation (PCM).
- En SRC (Variable Rate Sample Rate Conversion) konverterar röstkällans ljuddata till den exempelfrekvens som förväntas av dess målröster, om det behövs, och stöder även dynamiska tonhöjdsändringar.
- Ett valfritt tillståndsvariabelfilter kan användas för att färglägga ljudet på olika sätt. Se IXAudio2Voice::SetFilterParameters.
- Ett valfritt filter kan tillämpas på röstens utdata. Se IXAudio2Voice::SetOutputFilterParameters.
Undermixröster
En undermixröst används främst för prestandaförbättringar och effektbearbetning. Du kan inte skicka databuffertar direkt till undermixröster. Det kommer inte att höras om du inte skickar in det till en mastering röst. Du kan använda en undermixröst för att säkerställa att en viss uppsättning röstdata konverteras till samma format och att en viss effektkedja bearbetas på det kollektiva resultatet.
Förutom de åtgärder som utförs av alla röster utför undermixröster följande åtgärder.
- En SRC med fast hastighet körs på röstens utdata, om det behövs, för att konvertera ljudet till den exempelfrekvens som förväntas av dess målröster.
- Ett valfritt tillståndsvariabelfilter kan användas för att färglägga ljudet på olika sätt. Se IXAudio2Voice::SetFilterParameters.
- Ett valfritt filter kan tillämpas på röstens utdata. Se IXAudio2Voice::SetOutputFilterParameters.
Mastering Voices
Använd en huvudröst för att representera ljudutdataenheten. Du kan inte skicka databuffertar direkt till masterröster, men data som skickas till andra typer av röster måste gå till en huvudröst för att höras.
Förutom de åtgärder som utförs av alla röster utför mastering-röster följande åtgärder.
- Om du skapar mastering-rösten med en explicit InputSampleRate värde som inte stöds av ljudenheten, används en SRC med fast hastighet för att konvertera till den närmaste samplingsfrekvensen som stöds av enheten.
- Klipp ut det slutliga utdataljudet om det krävs av utdataenheten.
Relaterade ämnen