Previous Post

Raytraced Audio - Interactive Demo

Next Post
Raytraced Audio - Interactive Demo
1 / 13
DESCRIPTION

The first version of the Raytraced Audio Demo can be downloaded here.

This demo is only available to Patrons at the moment. Testers who signed up via https://vercidium.com/audio will gain access next week.

Download and extract the zip file above, then run sectorsedge.exe. This demo is built using my old game Sector's Edge, hence the file name.

Edit: the texture issues on AMD cards has been fixed and a new version uploaded to the Dropbox folder above

Setup

The game will prompt you to select a graphics preset when you first run it. If you're facing crashes or performance issues, select ' Toaster'.

Settings are saved to AppData / Roaming / vercidiumaudio

You'll then be dropped straight into the level. The controls are:

WASD to move around

Shift to sprint

Space to jump

Q, E to build and destroy blocks

Z to place walls/floors

Right click to rotate structures

1, 2 to change weapons

Left click to shoot

G to throw a grenade

Controls can be changed in Settings > Keybinds in the top right

Debug UI

The UI in the bottom left of the screen shows wind direction, reverb properties, and keybinds

Voices

A voice is a sound 'trigger' or 'spawner'. Press F2 to create one where your character is currently standing.

Then click the UI popup and press any key on your keyboard.

If you need to release your mouse cursor, press escape

Then select a sound type, e.g. ExplosionGrenade from the dropdown menu.

Now you can press N (or the key you chose) to play a sound at this location. You can change the keybind or select a different sound at any time.

When a sound is playing, click the lock icon on the right to view stats

LOS = line-of-sight. Each vertical green bar represents how much energy each ray has when it discovered this voice

PER = permeation. Each vertical orange bar represents how much energy each ray has left after travelling directly through walls to the voice.

The VercidiumVoice sound plays for about 8 minutes. If you want to stop it, click the pause icon on the top-left of the voice

Settings

Press escape to show the top-left settings menus. Here you can change between maps, alter the weather, change reverb parameters, and alter formulas (more on this below).

The reverb settings allow you to adjust the room size, and select different reverb presets. To mute all sounds and hear only the reverb, enable the 'Reverb Only' setting

Formulas

If you click the Variables tab in the top left, you'll see these two graphs:

These graphs are controlled by the voice_formulas.cs file, which is in the same folder as sectorsedge.exe:

These formula files allow you to directly change some of the C# code within the raytraced audio system. This is only available for developers, and will not be shipped with your actual products. As an example, this code changes the muffle graph to be a sin wave (unrealistic but demonstrates how the graph works):

For reverb_formulas.cs, you MUST write to these 5 variables:

averageReturningRayLength

roomSizePercent

returningRayPercent

outdoorLerp

reverbLerpSpeed

Any syntax or runtime errors will be saved to these files:

voice_formulas_error.txt

reverb_formulas_error.txt

Variable Reference

Within both files, you have access to these variables:

RAY_COUNT - the number of rays that are cast outwards. At the moment this is 960 and can't be changed (yet)

MAX_RAY_BOUNCES - the number of times that a ray can bounce. At the moment this is 8 and can't be changed (yet)

Within voice_formulas.cs, you have access to these variables:

OCCLUSION_TOTAL - the total amount of times that all rays obtained line of sight with the voice. Ranges from 0.0 to (RAY_COUNT * MAX_RAY_BOUNCES)

PERMEATION_TOTAL - the total amount of voxels that all rays passed through. Ranges from 0.0 to infinite

Within voice_reverb.cs, you have access to these variables:

DISTANCE_TOTAL - the accumulated distance of all returning rays. Ranges from 0.0 to infinite

RETURNED_TOTAL - the total amount of times that all rays obtained line of sight with the listener. Ranges from 0.0 to (RAY_COUNT * MAX_RAY_BOUNCES)

OUTSIDE_TOTAL - the total number of rays that escaped. Ranges from 0.0 to (RAY_BOUNCE * MAX_BOUNCES)

If a ray escapes without bouncing, it adds MAX_RAY_BOUNCES to this number

If a ray escapes after bouncing once, it adds MAX_RAY_BOUNCES - 1 to this number

If a ray escapes after bouncing twice, it adds MAX_RAY_BOUNCES - 2 to this number

If a ray never escapes, it adds 0 to this number

ROOM_SIZE_MIN - the smallest a room can be, e.g. 400.0

ROOM_SIZE_MAX - the largest a room can be, e.g. 1600.0

ELAPSED_MILLISECONDS - the number of milliseconds that passed since the last time this formula ran, e.g. 16.6

Tech Support

If you're facing issues running the demo, please send me your log files from this folder. You can reach me via email at [email protected], via our Discord server, or send me a message here on Patreon.

I've only tested this demo on Windows, but it may run on Linux under Wine/Proton. A native Linux version is on my roadmap, it should be pretty simple now that everything is cross platform (.NET 8, Silk.NET, etc)

Demo V2 Roadmap

This is version 1 of the demo and is missing a few features like Deaf Visualisation.

Version 2 of the demo will be released some time this week and will contain:

Deaf visualisation

Ambient directions - they aren't working correctly in V1, they seem to drop off very quickly when entering buildings

Microphone input - hear your voice in the current environment

Custom sound files (MP3/WAV/OGG)

More variables to adjust - ray count, max bounces, etc

Ability to change sample rate. Currently it's forced to 48000Hz

View all reverb parameters in real time (decay, delay, density, diffusion, etc)

Ability to create custom reverb presets

Godot Roadmap

The last two weeks - create an interactive Raytraced Audio demo that lets you position sound sources around an environment, tweak the variables and formulas behind muffling/permeation/reverb, and hear the audio update in real time

Today - release the demo for Patrons, to get early feedback

Next week - release the demo for testers (those who submitted the sign-up form)

Next few weeks - create a C# SDK for Raytraced Audio and release it for testers and Patrons

Next few months - create the Godot plugin, iterate and improve the C# SDK

Milestone 1 - release the paid Godot plugin

Next few weeks/months - tech support for Godot devs

Unreal Roadmap

A couple weeks - Convert C# SDK to C SDK and release it for Patrons and testers to get early feedback

Next few weeks - iterate and improve the C SDK based on feedback

Next few weeks/months - create Unreal plugin, iterate and improve the C SDK

Milestone 2 - release the paid Unreal plugin

Next few weeks/months - tech support for Unreal devs

vercidium PATREON 2 favs
VIEWS1
FILES13 files
POSTEDApr 26, 2025
ARCHIVEDJun 10, 2026