Artificial Room — User Guide

Acoustic simulation: generates synthetic impulse responses based on room dimensions and materials, applies convolution reverb for realistic room acoustics.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel Version: 0.1 (2025) License: MIT License Repo: https://github.com/ShaiCohen-ops/Praat-plugin_AudioTools
Contents:

What this does

This script implements artificial room acoustics simulation — a physically-informed approach to reverberation using synthetic impulse responses. The process: (1) Room modeling: Calculate acoustic properties based on dimensions and materials, (2) T60 calculation: Compute frequency-dependent reverberation times using Eyring's formula, (3) IR generation: Create synthetic impulse response with early reflections and filtered noise tails, (4) Convolution: Apply IR to dry sound via convolution. Result: realistic room reverberation with physically accurate decay characteristics.

Key Features:

What are synthetic impulse responses? Traditional reverb: algorithmic (plate, spring, digital) or convolution with measured IRs. Synthetic IRs: mathematically generated based on room properties. Advantages: (1) Physical basis: Derived from room dimensions and materials, (2) Flexibility: Create any room size/material combination, (3) Reproducibility: Same parameters = identical acoustic properties, (4) No measurement needed: Generate IRs without physical spaces, (5) Educational: Understand relationship between room properties and acoustics. Use cases: Audio production (realistic reverb), sound design (custom spaces), architectural acoustics (room simulation), film/game audio (consistent spaces), teaching (acoustics education).

Technical Implementation: (1) Room properties: Calculate surface areas from dimensions, assign materials with frequency-dependent absorption. (2) T60 calculation: Use Eyring's formula for each octave band (125Hz-4kHz). (3) IR construction: Early reflections (configurable count) with Hann-windowed pulses, late reverberation as filtered noise with exponential decay matching T60 per band. (4) Convolution: Apply generated IR to dry sound. (5) Output: "Reverb_originalname" with applied room acoustics. Key insight: Physical room properties → acoustic characteristics → synthetic IR → convolution reverb.

Quick start

  1. In Praat, select exactly one Sound object (mono/stereo).
  2. Run script…artificial_room.praat.
  3. Choose roomPreset: SmallBooth, Office, Classroom, LiveRoom, or Custom.
  4. If Custom: set dimensions and select materials for floor, ceiling, walls.
  5. Adjust IR settings: pre-delay, early reflections count, IR length factor.
  6. Click OK — generates IR, applies convolution, creates "Reverb_originalname".
Quick tip: Start with Office preset for natural room sound, SmallBooth for intimate spaces, Classroom for medium reverberation, LiveRoom for musical spaces. Use Custom for specific room designs. Adjust early_reflections_count for more/less distinct early echoes. Set ir_length_factor > 1 for longer decay tails. Processing time depends on sound length and IR complexity. Output "Reverb_originalname" appears in Objects window, temporary "IR" is automatically removed.
Important: CONVOLUTION PROCESSING — computationally intensive, may take time for long sounds. Very large rooms with long T60 require longer IRs = more processing. Early reflections with high count may create metallic artifacts if too dense. Custom rooms with highly reflective materials (concrete, glass) create longer, brighter reverb. Absorptive materials (acoustic foam, curtains) create shorter, darker reverb. Audience area significantly affects mid-frequency absorption. Very small rooms may exhibit modal behavior not fully captured. Always check output levels — convolution can increase or decrease overall amplitude.

Acoustic Theory

Room Acoustics Fundamentals

Reverberation Time (T60)

Definition: Time for sound to decay by 60 dB after source stops

Eyring's formula (for somewhat reverberant rooms): T60 = 0.161 × V / (-S × ln(1 - ᾱ)) Where: V = room volume (m³) S = total surface area (m²) ᾱ = average absorption coefficient Simplified Sabine formula (for very live rooms): T60 = 0.161 × V / A Where A = total absorption (m² sabins)

Frequency Dependence

Why octave bands matter:

Impulse Response Structure

Early Reflections

Components:

Direct sound → First reflections → Later reflections → Reverberation Early reflections (5-100ms): - Give spatial cues - Define room size perception - Create clarity and presence In this implementation: - Configurable count (default: 8) - Random timing (4-50ms after pre-delay) - Gain decay with reflection order - Hann-windowed pulses for smooth onset

Late Reverberation

Dense reverberant field:

Characteristics: - Dense, statistically random - Exponential energy decay - Frequency-dependent decay rates - Diffuse sound field In this implementation: - Bandpass filtered noise (6 octave bands) - Exponential decay matching T60 per band - High-frequency attenuation (air absorption simulation) - Combined for full frequency response

Material Absorption

Absorption Coefficients

Definition: Fraction of incident sound energy absorbed (0-1)

α = 0.0 → perfect reflection (all energy reflected) α = 1.0 → perfect absorption (all energy absorbed) Examples: Concrete: α ≈ 0.01-0.02 (highly reflective) Acoustic foam: α ≈ 0.15-0.90 (highly absorptive) Audience: α ≈ 0.30-0.60 (moderately absorptive) Real materials: α varies with frequency Typically: α increases with frequency

Octave Band Representation

Standard audio octaves:

Center frequencies: 125, 250, 500, 1000, 2000, 4000 Hz Band edges = center / √2 to center × √2 Example: 1000 Hz band Low edge: 1000 / 1.414 ≈ 707 Hz High edge: 1000 × 1.414 ≈ 1414 Hz Each material has 6 absorption values (one per band)

Complete Processing Pipeline

SETUP: Select Sound object Choose room preset or custom dimensions Select materials (floor, ceiling, walls) Set audience area if applicable Configure IR settings ROOM CALCULATION: Calculate surface areas (floor, ceiling, 4 walls) Calculate volume Look up material absorption coefficients Compute T60 per octave band using Eyring's formula IR GENERATION: Create base IR (silence of length = maxT60 × factor) EARLY REFLECTIONS: FOR k = 1 to early_reflections_count: Random timing (pre-delay + 4-50ms) Gain = early_gain - (k-1)×2.5 dB Add Hann-windowed pulse at calculated time LATE REVERBERATION: FOR each octave band b = 1 to 6: Generate white noise Apply exponential decay with τ = T60[b] / 6 Bandpass filter to octave band Apply high-frequency air absorption Add to IR CONVOLUTION: Convolve dry sound with generated IR Normalize output Remove temporary IR Play result OUTPUT: "Reverb_originalname" with room acoustics applied Info window with T60 values and room properties

Room Presets

Preset 1: SmallBooth

🔇 Compact Isolation Space

Dimensions: 2.2 × 1.6 × 2.2 m

Volume: 7.7 m³

Materials: CarpetConcrete floor, MineralWool50mm ceiling/walls

Character: Very dry, intimate, voice booth character

T60 range: 0.12-0.25s

Best for: Voice recording, intimate vocals, dry sound sources

Preset 2: Office

💼 Typical Work Environment

Dimensions: 4.5 × 3.5 × 2.7 m

Volume: 42.5 m³

Materials: CarpetOnFelt floor, AcousticCeilingTile ceiling, GypsumBoard/GlassWindow/CurtainLight walls

Character: Natural, balanced, slight liveliness

T60 range: 0.3-0.6s

Best for: Dialogue, acoustic instruments, general purpose

Preset 3: Classroom

🏫 Educational Space

Dimensions: 8.0 × 6.0 × 3.2 m

Volume: 153.6 m³

Materials: Linoleum floor, AcousticCeilingTile ceiling, GypsumBoard walls

Character: Medium reverberation, clear but present

T60 range: 0.4-0.8s

Best for: Speech clarity, educational content, ensemble recordings

Preset 4: LiveRoom

🎵 Musical Performance Space

Dimensions: 7.0 × 5.0 × 3.0 m

Volume: 105.0 m³

Materials: WoodFloor floor, GypsumBoard ceiling, GypsumBoard/CurtainHeavy/MineralWool50mm walls

Character: Musical, lively, good for instruments

T60 range: 0.5-1.2s

Best for: Musical instruments, singing, creative productions

Preset 5: Custom

⚙️ User-Defined Room

Dimensions: User specified (length × width × height)

Materials: User selection from 20 material types

Audience: Optional audience area for additional absorption

Character: Fully customizable acoustic properties

Best for: Specific acoustic requirements, experimental designs

Materials Database

20 realistic materials with frequency-dependent absorption coefficients:

Material125Hz250Hz500Hz1kHz2kHz4kHzCharacter
BrickPainted0.010.010.020.020.020.02Very reflective
Concrete0.010.010.020.020.020.02Very reflective
WoodFloor0.150.110.100.070.060.07Moderately reflective
CarpetConcrete0.080.240.570.690.710.73Absorptive (mid-high)
CurtainLight0.050.150.350.550.600.55Moderately absorptive
CurtainHeavy0.140.350.550.720.700.65Highly absorptive
GypsumBoard0.100.080.050.030.030.03Reflective
GlassWindow0.350.250.180.120.070.05Moderately reflective
AcousticFoam25mm0.150.400.700.850.900.90Highly absorptive
AcousticFoam50mm0.300.600.900.950.950.90Very absorptive
Audience0.300.450.550.600.600.55Moderately absorptive
WoodPanel0.150.100.080.070.060.07Moderately reflective
PlasterWall0.020.020.030.030.030.03Very reflective
PlywoodPanel0.100.080.060.050.050.05Reflective
MineralWool50mm0.250.550.850.950.950.90Highly absorptive
MineralWool100mm0.450.800.950.950.950.90Very absorptive
CarpetOnFelt0.100.350.550.650.700.75Absorptive (mid-high)
Linoleum0.020.030.040.050.050.05Reflective
OpenWindow1.001.001.001.001.001.00Perfect absorption
AcousticCeilingTile0.700.750.850.900.900.85Highly absorptive

📊 Material Selection Strategy

For live rooms: Use reflective materials (Concrete, BrickPainted, WoodFloor)

For dead rooms: Use absorptive materials (AcousticFoam, MineralWool, CurtainHeavy)

For balanced rooms: Mix reflective and absorptive surfaces

Frequency control: Use materials with specific frequency responses

Audience effect: Adds significant mid-frequency absorption

Parameters & Settings

Room Parameters

ParameterTypeDefaultDescription
roomPresetchoiceSmallBoothPredefined room configurations
custom_length_mpositive5.0Custom room length (meters)
custom_width_mpositive4.0Custom room width (meters)
custom_height_mpositive2.8Custom room height (meters)
floor_materialoptionmenuCarpetConcreteFloor surface material
ceiling_materialoptionmenuAcousticCeilingTileCeiling surface material
wall_materialoptionmenuGypsumBoardWall surface material
audience_area_m2positive0.1Audience absorption area (m²)

Impulse Response Parameters

ParameterTypeDefaultDescription
ir_predelay_mspositive12.0Pre-delay before first reflection (ms)
ir_early_gain_dBreal-6.0Gain of first early reflection (dB)
ir_length_factorpositive2.0IR length multiplier relative to max T60
early_reflections_countpositive8Number of discrete early reflections

Applications

Audio Production

Use case: Adding realistic room acoustics to dry recordings

Technique: Match room character to source material

Example: Office preset for dialogue, LiveRoom for instruments

Sound Design

Use case: Creating specific acoustic environments

Technique: Custom rooms with exaggerated properties

Example: Very small room for intimacy, very large for grandeur

Architectural Acoustics

Use case: Simulating room designs before construction

Advantages:

Film and Game Audio

Use case: Consistent acoustic spaces across scenes

Technique: Use same room parameters for related scenes

Example: Office building with consistent reverb across offices

Practical Workflow Examples

🎙️ Voice Recording Enhancement

Goal: Add natural room presence to dry voice recordings

Settings:

  • Preset: Office
  • Early reflections: 6-8
  • IR length factor: 1.5

Result: Natural room presence without obvious reverb

🎸 Instrument Placement

Goal: Place acoustic instruments in realistic spaces

Settings:

  • Preset: LiveRoom
  • Early reflections: 10-12
  • IR length factor: 2.0

Result: Musical reverb tail supporting instrument performance

🏛️ Architectural Simulation

Goal: Simulate specific room design

Settings:

  • Preset: Custom
  • Dimensions: Actual room size
  • Materials: Planned surface treatments
  • Audience: Expected occupancy

Result: Accurate prediction of room acoustics

Advanced Techniques

Material combinations for specific effects:
  • Bright reverb: Reflective floors (WoodFloor, Linoleum) + Absorptive ceiling
  • Dark reverb: Absorptive floors (Carpet) + Reflective ceiling
  • Natural reverb: Mixed materials with audience area
  • Electronic sound: Highly reflective materials (Concrete all surfaces)
Early reflection strategies:
  • Small rooms: 4-6 reflections, shorter pre-delay
  • Medium rooms: 8-10 reflections, medium pre-delay
  • Large rooms: 12-15 reflections, longer pre-delay
  • Distinct echoes: Higher early gain, fewer reflections
  • Smooth reverb: Lower early gain, more reflections

Troubleshooting Common Issues

Problem: Reverb sounds metallic or artificial
Cause: Too many early reflections with high gain
Solution: Reduce early_reflections_count or lower ir_early_gain_dB
Problem: Reverb too long/overwhelming
Cause: Too reflective materials or large room size
Solution: Use more absorptive materials or reduce ir_length_factor
Problem: Reverb too short/inaudible
Cause: Too absorptive materials or small room size
Solution: Use more reflective materials or increase ir_length_factor
Problem: Low-frequency buildup
Cause: Insufficient low-frequency absorption
Solution: Add audience area or use materials with better low-frequency absorption