Augmented Reality in MaxMSP

The augmented reality system being used to provide the virtual acoustic environments in Architexture III is being developed in Max 7. This platform allows for complex signal processing to be performed in real time, as well as providing an easy way to interface with Ableton Live, a DAW tailored towards live sound.

This system is being implemented using real-time convolution methods with impulse responses of real life acoustic spaces. The convolution is performed with a Max object using a blend of time domain convolution for the beginning of the impulse response and a partitioned FFT (Fast Fourier Transform) based convolution method for the rest. Partitioned FFT based convolution is significantly less computationally demanding than unpartitioned FFT based convolution or time domain convolution, and loses only a minimal amount of quality. Using this method allows for the system to work with extremely low latency, which is essential for a device being used to provide a virtual acoustic in real-time at a live performance.

Each impulse response used within the convolution system was recorded as a b-format ambisonic audio file, and the input is convolved as such. This therefore creates a b-format ambisonic output to the convolution, which is decoded and then encoded into binaural format, using panning and HRTF based filtering. This provides the listener with a sense of the 3-Dimensional space of the acoustic when simply listening over headphones, a necessary feature when trying to create a sense of realism within the performance.

The Max application has also been developed to allow smooth blending between multiple impulse responses. This has been done to allow the acoustic space to naturally evolve and develop hand-in-hand with the composition, as well as providing an even wider range of acoustic textures than possible with simply hard-switching between impulse responses. The blending was done using 3 overlapping quadratic equations to have a continuous blend between the signals. An input switching system blocking the input from reaching entirely unused impulse responses was also implemented to minimise the potential for unrealistic reverberation tails occurring when switching from a small acoustic space to a large acoustic space. This also served a secondary purpose of improving the computational efficiency of the application.