Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ psalm Public

Tools for viewing results of room acoustic simulations

License

jdginn/psalm

Repository files navigation

psalm

Visualization and optimization tools for recording studio acoustic simulations created with go-recording-studio.

What it does

This toolkit provides two main functionalities for acoustic studio design:

  1. 3D visualization of acoustic simulation results, helping studio designers:

    • View reflection paths and their interaction with room surfaces
    • Identify problematic reflection points
    • Visualize the Reflection-Free Zone (RFZ)
    • Analyze reflection patterns with reduced visual noise
  2. Bayesian optimization of studio parameters, enabling:

    • Automated search for optimal speaker and listening positions
    • Multi-process parameter optimization
    • Customizable optimization objectives
    • Constraint-based parameter exploration

How it works

Visualization (main.py)

The visualization tool processes simulation results from go-recording-studio and provides interactive 3D views using trimesh:

  1. Load simulation results from a go-recording-studio output directory
  2. Render the room geometry, reflection paths, and RFZ
  3. Support interactive viewing with zoom, pan, and rotate capabilities
  4. Provide specialized viewing modes:
    • Step mode (--step): View individual reflection paths sequentially
    • Culling mode (--cull): Group similar reflections for clearer visualization

Optimization (acoustic_optimizer.py)

The optimizer uses Bayesian optimization to find optimal studio configurations:

  1. Define parameter bounds and constraints
  2. Run parallel simulations across multiple processes
  3. Primary optimization goals:
    • Achieve minimum 30ms Initial Time Delay (ITD)
    • Minimize required absorptive surface area
  4. Support for custom optimization objectives
  • You'll have to do some hacking. The optimization code is functional for fellow hackers but really not polished enough for non-hackers.

Getting Started

Installation

  1. Create and activate a Python virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt

Prerequisites

Visualization Usage

Basic usage:

python main.py /path/to/experiment [options]

Available options:

--step         Step through reflections one at a time
--cull FLOAT   Cull very similar paths from the render
               (Values between 0.05 and 0.3 meters recommended)
--points       Show the location of the final reflection in each arrival

Visualization Features

For each reflection path, the visualization displays:

  • ITD (Initial Time Delay) in milliseconds
  • Path gain in dB
  • Shot gain in dB
  • Number of reflections
  • Surface name of last reflection

In step mode, navigation controls are:

  • 'n': next reflection
  • 'p': previous reflection
  • 'q': quit

File Format Documentation

The visualization tool reads three key files from the simulation output:

  • annotations.json: Contains reflection paths and geometry data (see annotations_schema.md)
  • summary.json: Contains acoustic parameters and results (see summary_schema.md)
  • room.stl: Contains acoustic parameters and results (see summary_schema.md)

Optimization Usage

  1. Create a configuration file based on the example config

  2. Run the optimizer:

python acoustic_optimizer.py config.yaml

License

MIT license. (See LICENSE file)

Acknowledgments

About

Tools for viewing results of room acoustic simulations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages