Dissonance 6.0.0 Release

This release brings two new features to Dissonance.

Acoustic Echo Cancellation

After many months of experimentation it's finally here! Acoustic Echo Cancellation (AEC) watches the audio coming out of the speakers and then removes that audio when it is recorded by the microphone a few milliseconds later. This prevents unbearable feedback loops, hearing your own voice sent back to you and even suppresses game sound effects from being transmitted.

At the moment AEC is experimental. Quality on desktop computers has generally been excellent but it can vary with a large number of factors such as microphone quality, speaker quality, size of the room and even the amount of soft furnishing nearby! On mobile phones AEC is significantly less well tested because we only have access to a limited number of devices to test with and so it's crucial that we get feedback - if you use AEC please contact us and tell us what does and does not work.

Flexible Encoding Settings

In previous version of Dissonance all clients in a session used the same audio encoding settings. With flexible encoding settings this is no longer required - each client transmits it's settings when it joins the session allowing you to choose the best settings for each platform.

Breaking Changes!

There are two breaking changes in this version.

If you are implementing a completely custom network integration (using ICommsNetwork) a new parameter has been added to two methods. Initialize receives a CodecSettings which indicates the codec settings being used locally. The PlayerJoined event now emits a CodecSettings which indicates the codec settings being used by the new remote player.

If you are bypassing Dissonance management of the voice playback AudioSource by accessing VoicePlayerState.Playback.AudioSource the return type of the Playback property has changed from VoicePlayback (which is tied specifically to Unity audio playback) to IVoicePlayback which generalises playback. You can still access the Unity AudioSource with: ((VoicePlayback)VoicePlayerState.Playback).AudioSource.

See the full release notes for this version here.