Version 3.0.0

This release is biggest one yet with four big new changes to Dissonance!

Universal Windows Platform

First up is support for the Universal Windows Platform (also known as WSA). Now you can use Dissonance in apps targetting cool new platforms like the Windows mixed reality headsets and the Microsoft Hololens.

Note: Due to a mistake made during the release process you must delete the Assets/Plugins/Dissonance/Plugins/ARM directory before building for UWP

Forge Networking Remastered

A lot of people have been asking for this and it's finally here; we now have an integration available for the new Forge Networking Remastered asset. Big thanks to the Forge developers and everyone in the Forge Discord chat who have helped to make this happen. Download the package below and read the tutorial to get started.

Channel Volume And Soft Fading

Thirdly we've added support for changing the volume of each individual channel you are broadcasting on - giving you more control over how others hear you. We've used this to add faders to the VoiceBroadcastTrigger component - by default all voice will now fade out over 0.15 seconds instead of cutting off instantly. You can configure this and some other fader settings in the revamped inspector for the component. See more about channel volumes and the trigger fader settings here.

Peer-to-Peer Voice Routing

Finally, the largest change of all is the internal changes to how Dissonance networking works - it's now possible for voice packets to be sent directly from peer to peer when the undlerying network system supports it! This can significantly reduce latency and bandwidth usage. These changes involve one very small breaking change to custom network integrations which use the BaseClient, BaseServer and BaseCommsNetworkclasses, the TPeer generic parameter must be a struct. Besides this the change is completely backwards compatible and will continue working with your custom networking - see the documentation for custom network implementations for more details on how to enhance your integration to enable p2p routing.

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
Upgrade Available!
Use the Forge Networking (Classic) system to host a Dissonance voice chat session.
Photon Unity Networking
Upgrade Available!
Use the Photon Unity Networking system to host a Dissonance voice chat session.
UNet (HLAPI)
Upgrade Available!
Use the Unity (UNet) High Level API Networking system to host a Dissonance voice chat session.
UNet (LLAPI)
Upgrade Available!
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

  • UWP Support
    • Supported Architectures: x86, x86_64
  • Forge Networking Remastered integration
  • Volume can be set per channel
    • Added soft fade-in and fade-out to broadcast triggers
  • Totally rewritten the internals of the networking system to support direct peer-to-peer routing of voice
    • Halves latency and slightly reduces bandwidth usage
    • Currently only takes effect on the Photon Unity Networking integration
    • Very small breaking change for custom network integration. Generic TPeer parameter must be a struct
  • Added the ability to change the Microphone at runtime (#45)
    • Inspect the DissonanceComms component to see a list of available microphones
    • Or set the DissonanceComms:MicrophoneName property

Bug Fixes

  • Fixed a Mac specific crash when (un)plugging a headset (#33)
  • Fixed unsafe multithreaded accesses to preprocessor and codec (#44)
  • Prevented volume based comms trigger from attemtping to access dead objects if object is destroyed while inside the trigger volume
  • Fixed a null reference exception in HLAPI integration if HLAPI unexpectedly becomes null (e.g. due to a timeout)

Known Issues

  • UWP does not support ARM architecture
  • No Acoustic Echo Cancellation