Category: Personal Projects

Personal projects from C++ to experimental sound design

  • Obstruction core functionality

    Obstruction core functionality

    When an important audio source is completely occluded from a listener, it is often due to the emitter being located in a different room or being obstructed in some way. However, occlusion alone does not always produce convincing results when this is not the case. To remedy this, an obstruction value must be calculated to…

  • Optimizing occlusion

    Optimizing occlusion

    When designing the occlusion subsystem, optimization was a constant consideration, integral to every feature. A primary goal was to reduce the number of unnecessary line-cast calls as much as possible. This was achieved through the use of multiple pre-occlusion checks, determining the state of the ‘Dynamic Occlusion State‘. The second and fourth images below depict…

  • Occlusion core functionality

    Occlusion core functionality

    One of the challenges of creating immersive audio propagation is handling occlusion – when the path from an emitter to a listener is blocked. Occlusion can add realism and depth to soundscapes, but it can also be computationally expensive at scale. This scalable audio propagation system aims to be a flexible solution for occlusion, allowing…

  • Core component development

    Core component development

    At the core of the audio propagation system, there are two essential components: the emitter and the director. The emitter is responsible for defining user parameters and calculating instance-specific values needed for occlusion and obstruction. The director is responsible for controlling how the sound sources are processed by the audio engine and contains the majority…

  • Test environment creation

    Test environment creation

    When developing any type of system or feature, creating a good testing environment is essential to allow for rapid iteration (West, 2021) and debugging. I needed a controlled space for experimenting with different parameters, scenarios, and inputs. Although not comprehensive, this test environment covers the most common geometric layouts, allowing me to quickly test and…

  • Scalable Audio Propagation for UE5 | Introduction

    Scalable Audio Propagation for UE5 | Introduction

    Demonstration Video Spoilers! Overview This series of blog posts will document the development process of my GAM230 specialist practice project, “Scalable Audio Propagation.” I will break down the steps involved and explain my rationale for key development decisions. Additionally, I will discuss any issues encountered, how I overcame them, or how I plan to address…