Zingabopp / MultiplayerExtensions.VoiceChat

Adds Voice Chat to MultiplayerExtensions for Beat Saber.
Other
5 stars 0 forks source link

MultiplayerExtensions.VoiceChat

Adds Voice Chat to MultiplayerExtensions for Beat Saber.

Packet Information

All packets for this mod use MessageType 128. Current flow is Player n joins lobby -> Players in the lobby send Player n VoiceInfoRequestpackets -> Player n responds to each with VoiceMetadata packets -> Players can then send VoiceData packets to eachother.

SubTypes

Name Type Description
VoiceData 0 Contains the encoded audio data.
InfoRequest 1 Not currently used. Intended for requesting the data encoding information (codec, channel count, sample rate, etc)
VoiceMetaData 2 Not currently used. Intended for describing the data encoding (codec, channel count, sample rate, etc)

Packet Structure

VoiceData v1

Packets containing the encoded voice data. Name Type Description
PacketVersion byte Version of the VoiceData packet.
Index int Index of the packet.
Checksum int Sum of the bytes in the data (overflow wraps).
DataLength int Length of the data in bytes.
Data byte[DataLength] Encoded audio data.

VoiceInfoRequest v1

Packet sent by the receiver requesting the sender's codec information. Name Type Description
PacketVersion byte Version of the VoiceData packet.
PreferredCodec string CodecId of the codec preferred by the receiver.
SupportedCodecs string[] Codecs supported by the receiver.

VoiceMetadata v1

Packet sent by the voice sender in response to a VoiceInfoRequest. Name Type Description
PacketVersion byte Version of the VoiceData packet.
SampleRate int SampleRate (in Hz) used by the voice sender.
Channels byte Number of channels in the voice sender's encoded packets.
Codec string CodecId of the codec used by the sender. Empty string if the sender doesn't support any codecs in the receiver's VoiceInfoRequest.