Browser-based MIMO room-correction FIR solver (Pyodide / WebAssembly)
Configuration
Measurements
Run
Results
Config File
Desktop-format config JSON (e.g. config_testv2_laptop.json). Load populates the UI; solver keys without UI fields are kept and passed through.
System
Solver
Filter taps must cover the target delay (taps ≥ delay_ms × sample_rate / 1000) or the inverse filter wraps and produces garbage. At 96 kHz, 65536 taps ≈ 683 ms.
Target
House Curve (freq_hz, dB)
Speaker Profiles
Input Routing
Which speakers reproduce each input channel (comma-separated, 0-based). Primary is the anchor speaker for anchored target mode.
Source
REW Import
Make sure REW is running with API enabled (Preferences → API → Start). When the app is served locally (serve.py) the same-origin proxy is used. On the hosted app (optimimo.app), run python3 serve.py on this machine and set the proxy URL below — it answers the browser's Private Network Access preflight.
Upload WAV Files
Upload one mono WAV per (speaker, mic) pair. Files are assigned in order.
Drop WAV files here or click to browse
Synthetic Test Data
Generates synthetic room IRs with known peaks and modal tails. Matches the CLI smoke test.