Dissonance 4.0.0 Release

This release brings two new features to Dissonance.

Custom Microphone Capture Scripts

With custom microphone capture scripts it's possible to write a new script which captures audio data and feeds it in to Dissonance. This allows platform specific microphone implementations which can access special features such as super low latency audio capture, special effects or acoustic echo cancellation. To write one of these scripts create a new MonoBehaviour which implements the IMicrophoneCapture interface and attach it to the same gameObject as the DissonanceComms component.

Remote Rooms API

We've added some new properties which expose which rooms remote players are listening to. There are several ways to acccess this data:

  • Access the VoicePlayerState:Rooms property for a list of which rooms that specific player is listening to
  • Subscribe to the VoicePlayerState:OnEnteredRooms and VoicePlayerState:OnExitedRoom events to receive an event when that specific player starts or stops listening to a room
  • Subscribe to the DissonanceComms:OnEnteredRooms and DissonanceComms:OnExitedRoom events to receive an event when any player starts or stops listening to a room

These changes involve two very small breaking changes to custom network scripts using the ICommsNetwork interface. The events Action<RoomEvent> PlayerEnteredRoom and Action<RoomEvent> PlayerExitedRoom have been added to the interface, these events should fire when a player starts and stops listening to a room. If your custom network layer does not support rooms simply never raise the events.

See the full release notes for this version here.