> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PartyChatControl::ConfigureAudioManipulationVoiceStream

> Queues an asynchronous operation to configure the audio manipulation voice stream associated with this chat control.

Queues an asynchronous operation to configure the audio manipulation voice stream associated with this chat control.

## Syntax

```cpp theme={null}
PartyError ConfigureAudioManipulationVoiceStream(  
    PartyAudioManipulationSourceStreamConfiguration* configuration,  
    void* asyncIdentifier  
)  
```

### Parameters

**`configuration`**   [PartyAudioManipulationSourceStreamConfiguration\*](/services/playfab/multiplayer/networking/reference/structs/partyaudiomanipulationsourcestreamconfiguration)\
*optional*

The stream configuration.

**`asyncIdentifier`**   void\*\
*optional*

An optional, app-defined, pointer-sized context value that can be used to associate the completion state change with this call.

### Return value

PartyError

`c_partyErrorSuccess` if the call succeeded or an error code otherwise. The human-readable form of the error code can be retrieved via [PartyManager::GetErrorMessage()](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_geterrormessage).

## Remarks

If the configuration is non-null, an audio manipulation voice stream will be created for this chat control. Such a stream redirects output for the voice audio associated with this chat control; instead of the library automatically handling the voice audio and routing it, the app can use the source stream to retrieve the voice audio and route it via game logic. If the configuration is null, and a voice stream has previously been configured, the voice stream will be destroyed. <br /><br /> Upon completion of the asynchronous operation, when a non-null configuration was specified, a voice stream for this chat control can be queried via [PartyChatControl::GetAudioManipulationVoiceStream()](/services/playfab/multiplayer/networking/reference/classes/PartyChatControl/methods/partychatcontrol_getaudiomanipulationvoicestream). Completion is indicated by a [PartyConfigureAudioManipulationVoiceStreamCompletedStateChange](/services/playfab/multiplayer/networking/reference/structs/partyconfigureaudiomanipulationvoicestreamcompletedstatechange).

### Platform support and supported formats

This function is only supported on Windows, XBOX, and PlayStation® 5. Calls on other platforms will fail.   <br /><br /> The following format options are supported for Windows and XBOX.   <br />

| Format option      | Supported value for local chat controls | Supported value for remote chat controls |
| ------------------ | --------------------------------------- | ---------------------------------------- |
| Samples per second | 24 kHz                                  | 24 kHz                                   |
| Channel mask       | 0                                       | 0                                        |
| Channel count      | 1                                       | 1                                        |
| Bits per sample    | 32                                      | 16                                       |
| Sample type        | `PartyAudioSampleType::Float`           | `PartyAudioSampleType::Integer`          |
| Interleaved        | false                                   | false                                    |

<br /><br /> For a list of supported format options for PlayStation® 5, please refer to the README-RealTimeAudioManipulation.md document distributed with the Party library package.

## Requirements

**Header:** Party.h

## See also

[PartyChatControl](/services/playfab/multiplayer/networking/reference/classes/PartyChatControl/partychatcontrol)


## Related topics

- [PartyConfigureAudioManipulationVoiceStreamCompletedStateChange](/services/playfab/multiplayer/networking/reference/structs/partyconfigureaudiomanipulationvoicestreamcompletedstatechange.md)
- [Apply custom voice effects with real-time audio manipulation](/services/playfab/community/voice-communications/concepts-realtime-audio-manipulation.md)
- [PartyAudioManipulationSourceStreamConfiguration](/services/playfab/multiplayer/networking/reference/structs/partyaudiomanipulationsourcestreamconfiguration.md)
- [PartyAudioManipulationSourceStream::GetConfiguration](/services/playfab/multiplayer/networking/reference/classes/PartyAudioManipulationSourceStream/methods/partyaudiomanipulationsourcestream_getconfiguration.md)
- [PartyAudioManipulationSourceStream::GetFormat](/services/playfab/multiplayer/networking/reference/classes/PartyAudioManipulationSourceStream/methods/partyaudiomanipulationsourcestream_getformat.md)
