Artificial Room — User Guide
Acoustic simulation: generates synthetic impulse responses based on room dimensions and materials, applies convolution reverb for realistic room acoustics.
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:
- 4 Built-in Room Presets — SmallBooth, Office, Classroom, LiveRoom
- Custom Room Design — Full control over dimensions and materials
- 20 Material Types — Realistic absorption coefficients across octave bands
- Physical Accuracy — Eyring's formula for T60 calculation
- Early Reflections — Configurable count and gain
- Frequency-Dependent Decay — Different T60 per octave band
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
- In Praat, select exactly one Sound object (mono/stereo).
- Run script… →
artificial_room.praat. - Choose roomPreset: SmallBooth, Office, Classroom, LiveRoom, or Custom.
- If Custom: set dimensions and select materials for floor, ceiling, walls.
- Adjust IR settings: pre-delay, early reflections count, IR length factor.
- Click OK — generates IR, applies convolution, creates "Reverb_originalname".
Acoustic Theory
Room Acoustics Fundamentals
Reverberation Time (T60)
Definition: Time for sound to decay by 60 dB after source stops
Frequency Dependence
Why octave bands matter:
- Materials absorb differently at different frequencies
- Low frequencies typically longer decay (less absorption)
- High frequencies typically shorter decay (more absorption)
- Realistic reverb requires frequency-dependent decay
Impulse Response Structure
Early Reflections
Components:
Late Reverberation
Dense reverberant field:
Material Absorption
Absorption Coefficients
Definition: Fraction of incident sound energy absorbed (0-1)
Octave Band Representation
Standard audio octaves:
Complete Processing Pipeline
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:
| Material | 125Hz | 250Hz | 500Hz | 1kHz | 2kHz | 4kHz | Character |
|---|---|---|---|---|---|---|---|
| BrickPainted | 0.01 | 0.01 | 0.02 | 0.02 | 0.02 | 0.02 | Very reflective |
| Concrete | 0.01 | 0.01 | 0.02 | 0.02 | 0.02 | 0.02 | Very reflective |
| WoodFloor | 0.15 | 0.11 | 0.10 | 0.07 | 0.06 | 0.07 | Moderately reflective |
| CarpetConcrete | 0.08 | 0.24 | 0.57 | 0.69 | 0.71 | 0.73 | Absorptive (mid-high) |
| CurtainLight | 0.05 | 0.15 | 0.35 | 0.55 | 0.60 | 0.55 | Moderately absorptive |
| CurtainHeavy | 0.14 | 0.35 | 0.55 | 0.72 | 0.70 | 0.65 | Highly absorptive |
| GypsumBoard | 0.10 | 0.08 | 0.05 | 0.03 | 0.03 | 0.03 | Reflective |
| GlassWindow | 0.35 | 0.25 | 0.18 | 0.12 | 0.07 | 0.05 | Moderately reflective |
| AcousticFoam25mm | 0.15 | 0.40 | 0.70 | 0.85 | 0.90 | 0.90 | Highly absorptive |
| AcousticFoam50mm | 0.30 | 0.60 | 0.90 | 0.95 | 0.95 | 0.90 | Very absorptive |
| Audience | 0.30 | 0.45 | 0.55 | 0.60 | 0.60 | 0.55 | Moderately absorptive |
| WoodPanel | 0.15 | 0.10 | 0.08 | 0.07 | 0.06 | 0.07 | Moderately reflective |
| PlasterWall | 0.02 | 0.02 | 0.03 | 0.03 | 0.03 | 0.03 | Very reflective |
| PlywoodPanel | 0.10 | 0.08 | 0.06 | 0.05 | 0.05 | 0.05 | Reflective |
| MineralWool50mm | 0.25 | 0.55 | 0.85 | 0.95 | 0.95 | 0.90 | Highly absorptive |
| MineralWool100mm | 0.45 | 0.80 | 0.95 | 0.95 | 0.95 | 0.90 | Very absorptive |
| CarpetOnFelt | 0.10 | 0.35 | 0.55 | 0.65 | 0.70 | 0.75 | Absorptive (mid-high) |
| Linoleum | 0.02 | 0.03 | 0.04 | 0.05 | 0.05 | 0.05 | Reflective |
| OpenWindow | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | Perfect absorption |
| AcousticCeilingTile | 0.70 | 0.75 | 0.85 | 0.90 | 0.90 | 0.85 | Highly 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
| Parameter | Type | Default | Description |
|---|---|---|---|
| roomPreset | choice | SmallBooth | Predefined room configurations |
| custom_length_m | positive | 5.0 | Custom room length (meters) |
| custom_width_m | positive | 4.0 | Custom room width (meters) |
| custom_height_m | positive | 2.8 | Custom room height (meters) |
| floor_material | optionmenu | CarpetConcrete | Floor surface material |
| ceiling_material | optionmenu | AcousticCeilingTile | Ceiling surface material |
| wall_material | optionmenu | GypsumBoard | Wall surface material |
| audience_area_m2 | positive | 0.1 | Audience absorption area (m²) |
Impulse Response Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| ir_predelay_ms | positive | 12.0 | Pre-delay before first reflection (ms) |
| ir_early_gain_dB | real | -6.0 | Gain of first early reflection (dB) |
| ir_length_factor | positive | 2.0 | IR length multiplier relative to max T60 |
| early_reflections_count | positive | 8 | Number 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:
- Hear acoustic consequences of design choices
- Test different material combinations
- Optimize room dimensions for specific uses
- Educational tool for acoustics students
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
- 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)
- 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
Cause: Too many early reflections with high gain
Solution: Reduce early_reflections_count or lower ir_early_gain_dB
Cause: Too reflective materials or large room size
Solution: Use more absorptive materials or reduce ir_length_factor
Cause: Too absorptive materials or small room size
Solution: Use more reflective materials or increase ir_length_factor
Cause: Insufficient low-frequency absorption
Solution: Add audience area or use materials with better low-frequency absorption