SHroom: A Python Framework for Ambisonics Room Acoustics Simulation and Binaural Rendering
Organizations: Ben Gurion University of the Negev
Abstract
Spatial audio research for virtual and augmented reality, teleconferencing and hearing devices often represents sound fields in the Spherical Harmonics (SH) domain, known as Ambisonics. A typical study simulates a room, renders what a listener or a microphone array would capture in it, and processes those signals in the SH domain. We present SHroom (Spherical Harmonics ROOM), an open-source Python library that performs this whole workflow in one package, from room simulation to binaural rendering, head rotation, microphone-array simulation and Ambisonics encoding. Existing tools cover either the room simulation or the downstream processing, so researchers bridge them with ad-hoc code that is hard to reproduce and compare. In SHroom, every step operates on one shared signal type through one processing interface, so a simulated room flows through the complete chain without format conversions. Built on the image-source engine of pyroomacoustics, SHroom reproduces the Ambisonic Room Impulse Response (ARIR) of its spherical-harmonic receivers while computing it about 3x faster for SH orders 4 to 12. SHroom is available at 'https://github.com/Yhonatangayer/shroom' and installable via pip install pyshroom.
Figures & tables
| Software | Language | Room sim. & ARIR | SH domain ATF processing | MagLS | SH rotation | SH array simulation | Array encoding |
|---|---|---|---|---|---|---|---|
| pyroomacoustics | Python | ✓(ISM) | - | - | - | - | - |
| GSound-SIR | Python | ✓(RT) | - | - | - | - | - |
| MASP | Python | ✓(ISM) | ✓ | - | - | ✓ | ✓ |
| shoebox-roomsim | MATLAB | ✓(ISM) | - | - | - | - | - |
| MCRoomSim | MATLAB | ✓(ISM) | - | - | - | - | - |
| SAF | C / C++ | ✓(ISM) | ✓ | ✓ | ✓ | ✓ | ✓ |
Spatial Audio
Spatial audio studies how sound is captured, represented, generated, and perceived with direction, distance, motion, and room acoustics.
See all 100 papers