Author: edenlukejeffrey

  • Over the last 3 years using FMOD I’ve always looked for ways to refine and improve my workflow. A part of how I was able to achieve this was creating custom automation scripts for various common tasks. Below I have listed a few of these so that anyone reading may improve their workflows similarly. To…

  • Transformation For my transformation piece I wanted to create the entire track from a single sample. I drew inspiration from Artists such as “KOAN Sound” and “Johann Johannsson”, their works reflect the transformative and inventive qualities I wished to replicate within my own piece. For the core element of my track, I created a wavetable…

  • Project Breakdown This project was submitted for a module assignment in my first year of University, I had a great time creating it so have decided to do a write up here for anyone who may be interested. After coming across the subject video (Tremblay, 2023) for this re-design I came up with a spotting…

  • Post-mortem & references

    Post-mortem & references

    Post Mortem This post-mortem will provide a breakdown of the project’s milestones, highlighting its successes and areas where improvements can be made. This breakdown will serve as a valuable learning opportunity to identify shortcomings to be avoided in future projects. In short, I feel that this project was a success, aided significantly by the amount…

  • Obstruction Optimization While many of the optimizations created for occlusion are shared with the obstruction system, there are some obstruction-specific optimizations that had to be made to reduce unnecessary overhead. Like occlusion, a movement check is performed before obstruction is calculated to determine whether the player or emitter has moved a greater amount than the…

  • After gathering all the relevant data from both the occlusion and obstruction systems, the next step is to interpret this data for use with FMOD parameters. The values used to modify occlusion and obstruction processing effects are calculated using various metrics obtained from the previously discussed ‘update’ functions. To calculate the occlusion value, a ratio…

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

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

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