Skip to content
Snippets Groups Projects

VAServer Launcher

This holds prebuild VAServers for Windows which can be launched from Unreal using a python script. Additionally, this allows to specify all rendering settings for VA within the Unreal project, while costumizing the hardware and reproduction settings on the target machine running the VAServer.

Requiremirents

Quick guide for local usage

VAServer and Unreal project are running on same computer

VAServer Launcher:

  • Checkout this repository to your computer, use the default folder name VAServer

Unreal project:

  • Your project (e.g. this demo-project) should be placed next to the VAServer folder
  • Make sure the Use VAServer Launcher option of your VAReceiverActor is enabled
  • Run the project: The VAServer Launcher should be automatically started launching a VAServer instance. Unreal connets to this instance and an audio stream should be audible (default output should be headphones on channels 1 & 2).

Quick guide for remote usage

VAServer and Unreal project on different computers

Computer running VAServer:

  • Checkout this repository
  • Manually start the VAServer Launcher by running ./LaunchScripts/VirtualAcousticsStarterServer.py via python

Computer running Unreal:

  • Make sure the Use VAServer Launcher option of your VAReceiverActor is enabled
  • Run the project: The VAServer Launcher should start a VAServer instance. Unreal connets to this instance and an audio stream should be audible (default output should be headphones on channels 1 & 2).

Launcher configuration

The VAServer Launcher can be configured by adjusting the settings in ./LaunchScripts/VirtualAcousticStarterConfig.json.

Setting Description Default
sLocalIP IP of this computer. Specify for remote usage "localhost"
nLauncherPort Port used for communication with launcher 41578
nVAServerPort Port used for communication with VAServer 12340
nWaitForVAServerStart Time to wait for VAServer to start [seconds] 3
lsDefaultReproductionModules Reproduction modules used if Reproduction input signal type is not specified by client (Unreal) ["TalkthroughHP", "CTC"]
lsBinauralReproductionModules Reproduction modules used for binaural input signals ["TalkthroughHP"]
lsAmbisonicsReproductionModules Reproduction modules used for ambisonics input signals ["AmbisonicsBinauralMixdown"]
lsCustomReproductionModules Reproduction modules used for custom purposes (e.g. multiple renderers with different signal types) e.g. ["TalkthroughHP", "AmbisonicsBinauralMixdown"]
dVAServerDirectories Dictionary connecting a VAServer Version ID with the respective directory e.g. "2022.a": "../v2022.a"

If you want to use other VAServer versions than provided, you can extend the dVAServerDirectories dictionary.

VAServer configuration

A set of .ini files is provided in the ./conf directory. The VAServer launcher will automatically combine them before starting the VAServer. For this to work, you should not change those files with the following exceptions.

Audio hardware

The audio hardware settings are specific to each computer and typically have to be modified in the VASetup.Launcher.ini. Those include audio driver and output device settings including the respective channels (e.g. headphones on channels 1 & 2).

Audio reproduction

The audio reproduction settings can to be modified in the VAReproduction.Prototype.ini. VA uses reproduction modules to specify how the audio stream is processed before being sent to the output devices. For examples binaural signals can be reproduced using a direct routing to headphones or using cross-talk cancellation (CTC) and loudspeakers.

Per default the following reproduction modules are defined

  • TalkthroughHP
  • Headphones
  • CTC
  • TalkthroughLS
  • AmbisonicsLS
  • AmbisonicsBinauralMixdown

You can add additional modules, if you want. However, you should not rename the existing ones. Furthermore, all modules must be disbaled [Enabled = false]. The VAServer Launcher will automatically enable the reproduction modules specified in the VirtualAcousticStarterConfig.json (see Launcher configuration) when starting the VAServer.

In any case, especially for the loudspeaker-based modules, you will have to update the Outputs setting according to what you defined in the VASetup.Launcher.ini.

Audio rendering

The rendering settings specify, how audio is rendered based on the virtual sources and the receiver in your scene. Typically, this should live in your Unreal project (see Unreal project configuration). However, the file VARendering.Default.ini is provided in case the Unreal project does not provide such a file.

Unreal project configuration

When working with the Unreal VA plugin, all settings regarding the VAServer Launcher can be found in the VAReceiverActor under the VAServer Launcher category.

Setting Description Default
Use VAServer Launcher Switch to de-/activate usage True
VAServer Launcher Port Port used for communication with launcher 41578
VAServer Version ID ID used to specify which VAServer version should be started. This must match a value in the dictionary dVAServerDirectories in the Launcher config. "2022.a"
VARenderer.ini file Filename of the ini file including the audio rendering settings for this project. If specified, the file will be sent to the VAServer Launcher on startup. ""
Reproduction input signal type Depending on this setting a different set of reproduction modules (see Launcher config) is used by the VAServer Launcher, the group [Default / Binaural / Ambisonics / Custom] Binaural