Version 4.0.0

Critical Alert!

There is a critical bug which prevents this version from working on all non-Windows platforms. Dissonance 4.0.1 is now available on the asset store with a fix for this issue, please upgrade as soon as possible.



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.

Integrations

SALSA Lip Sync
Upgrade Available!
Realtime automatic lip synchronisation for Dissonance speaking using SALSA.
Playmaker
Upgrade Available!
Adds support for controlling channels (who is speaking to whom) using Playmaker.
Forge Remastered
Upgrade Available!
Use the Forge Remastered Networking system to host a Dissonance voice chat session.
Forge
Use the Forge Networking (Classic) system to host a Dissonance voice chat session.
Photon Unity Networking
Use the Photon Unity Networking system to host a Dissonance voice chat session.
UNet (HLAPI)
Use the Unity (UNet) High Level API Networking system to host a Dissonance voice chat session.
UNet (LLAPI)
Use the Unity (UNet) Low Level API Networking system. This hosts it's own LLAPI session and could potentially be used in conjunction with most other networking systems.
Photon Bolt
Upgrade Available!
Use the Photon Bolt Networking system to host a Dissonance voice chat session.

New Features

  • New Microphone API allows custom microphone capture scripts for interfacing with platform specific audio APIs
  • New remote Rooms API exposes which rooms remote players are listening to
  • Changed menu item from Windows > Dissonance > Welcome Window to Windows > Dissonance > Integrations
  • Added a new method for custom network scripts to signal fatal errors
  • Added VoicePlaybackState:SpeakerPriority which fetches the current priority a player is speaking with
  • Compiled iOS binaries with bitcode

Bug Fixes

  • Handling the case when a network client connects even when it is already connected with a different network connection
  • More robustly handling HLAPI clients timing out (preventing a potential server crash and restart)
  • Fixed UWP build not passing app store certification

Known Issues

  • Will not run on any non-windows platforms. Expect a runtime error for MacOS, Linux and Android. Expect a build error for iOS.
  • No Acoustic Echo Cancellation (Work in progress - Contact us if you're interested in testing this)