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
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
The UI in the bottom left of the screen shows wind direction, reverb properties, and keybinds

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
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

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
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
If you're facing issues running the demo, please send me your log files from this folder. You can reach me via email at mitchell@vercidium.com, 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)
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
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
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
Apermesa
2025-05-24 08:11:08 +0000 UTCVercidium
2025-04-30 00:41:10 +0000 UTCKyleRoxy
2025-04-29 23:06:36 +0000 UTC