Skip to main content
Glama
tudadada

acoustic-room-mode-radar

README.md
# acoustic-room-mode-radar

[![npm version](https://img.shields.io/npm/v/acoustic-room-mode-radar.svg)](https://www.npmjs.com/package/acoustic-room-mode-radar)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)

**Acoustic Room Mode Radar (`acoustic-room-mode-radar`)** is a deterministic Model Context Protocol (MCP) server engineered for room acoustics, home studio design, podcast vocal booths, and audio monitoring environments. It provides zero-hallucination mathematical engines for standing wave room modes (Axial, Tangential, Oblique), Bonello and Bolt dimensional criteria compliance, Schroeder crossover cutoff frequency, Sabine & Norris-Eyring RT60 reverberation decay, and optimal speaker/sweet-spot placement.

> 🎮 **Live Interactive Web Simulator**: Experience the zero-install 2D blueprint simulator, sweet-spot 38% rule calculator, and real-time room mode spectrum directly in your browser:  
> 👉 **[https://tudadada.github.io/acoustic-room-mode-radar/](https://tudadada.github.io/acoustic-room-mode-radar/)**

---

## Capabilities & Tools Included

### 1. `calculate_room_modes`
Calculates discrete acoustic standing wave room modes up to a cutoff frequency for rectangular enclosures.
- **Rayleigh Wave Model**: Computes exact frequencies ($f_{p,q,r} = \frac{c}{2}\sqrt{(p/L)^2 + (q/W)^2 + (r/H)^2}$) for all Axial (0 dB), Tangential (-3 dB), and Oblique (-6 dB) modes.
- **Resonance Clustering Detection**: Identifies severe degeneracies and modal stacking closer than 1.5 Hz apart.
- **Bass Isolation Holes**: Detects wide gaps (> 18 Hz) below 120 Hz causing hollow bass response.
- **Bonello 1/3-Octave Criterion (1981)**: Audits monotonic mode count growth per third-octave band to spot acoustic dips and colorations.
- **Bolt Area Compliance**: Checks room dimensional ratios ($W/H$ and $L/H$) against Richard Bolt's envelope of favorable acoustic proportions.

### 2. `calculate_schroeder_frequency`
Computes the Schroeder cutoff frequency ($f_s \approx 2000 \sqrt{RT_{60}/V}$), establishing the four operational acoustic regimes:
- **Zone A (Pressurization)**: $0 \text{ Hz} \to f_{min}$ (Room acts as sealed pressure chamber).
- **Zone B (Discrete Modes)**: $f_{min} \to f_s$ (Standing waves and bass resonance dominate).
- **Zone C (Diffusion Transition)**: $f_s \to 4f_s$ (Diffusers and broadband absorption take effect).
- **Zone D (Specular Ray Acoustics)**: $> 4f_s$ (Ray acoustics, early reflections, mirror trick).

### 3. `calculate_rt60_reverb_time`
Calculates reverberation decay time (RT60) across 6 standard octave bands (125 Hz to 4000 Hz) using both **Sabine** and **Norris-Eyring** formulations.
- **Substrate Database**: Built-in absorption coefficients for drywall, concrete, glass, hardwood, ceramic tile, commercial carpet, heavy pile, acoustic foam (50mm), rigid fiberglass (100mm), and heavy velour curtains.
- **Target Usage Presets**: Compares current decay against professional targets (`podcast_voiceover` [0.22 - 0.32s], `music_mixing_control` [0.28 - 0.38s], `home_theater` [0.35 - 0.48s], `audiophile_listening` [0.45 - 0.60s]).
- **Treatment Prescription**: Calculates exact square meters of high-density acoustic treatment panels required to achieve the target decay.

### 4. `calculate_speaker_listening_position`
Calculates optimal listening sweet spot and stereo monitor coordinates.
- **38% Room Rule (Westhler Model)**: Pinpoints listening position at 38.2% (or fallback 44%) room length to balance first-mode nulls and second-mode peaks.
- **Equilateral Triangle Geometry**: Coordinates monitor spacing and toe-in aiming angles (30° inward).
- **Speaker Boundary Interference Response (SBIR)**: Calculates first quarter-wavelength cancellation notches from rear and side walls, providing actionable placement adjustments.

---

## Quick Start

### Running directly via npx
```bash
npx -y acoustic-room-mode-radar
```

### Claude Desktop Integration
Add to your `claude_desktop_config.json`:
```json
{
  "mcpServers": {
    "acoustic-room-mode-radar": {
      "command": "npx",
      "args": ["-y", "acoustic-room-mode-radar"]
    }
  }
}
```

### Cursor Integration
In Cursor Settings > Features > MCP Servers:
- **Type**: `command`
- **Command**: `npx -y acoustic-room-mode-radar`

---

## Specification Authority & Verification

All calculations strictly adhere to:
- **ISO 3382-1**: Measurement of room acoustic parameters.
- **Lord Rayleigh Theory of Sound**: Rectangular acoustic cavity modal eigenvalues.
- **Wallace Clement Sabine & Norris-Eyring**: Diffuse field reverberation decay equations.
- **Richard Bolt & Oscar Bonello Criteria**: Statistical distribution of normal modes in small rooms.

## License

MIT © datutu <ceo@dottheworld.com>

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool addresses a distinct acoustic calculation: room modes, Schroeder frequency, reverberation time, and listening position. There is no overlap in functionality; an agent can easily select the correct tool for a specific acoustic query.

Naming Consistency5/5

All tool names follow a consistent 'calculate_[subject]' pattern (calculate_room_modes, calculate_schroeder_frequency, etc.), making them predictable and easy to identify.

Tool Count4/5

Four tools is slightly on the low side but covers core acoustic room analysis tasks without redundancy. Each tool has a clear purpose, though additional tools for absorption or speaker placement might be expected.

Completeness4/5

The set covers key acoustic calculations including modal analysis, Schroeder frequency, reverberation time, and listening position. However, it lacks tools for other common acoustic tasks like absorption coefficient calculation or speaker placement optimization beyond the 38% rule.

Maintenance

ActivityMaintained
ResponsivenessNo issues