RT60, Wiener deconvolution, multi-angle dispersion. A Farina log sweep, a sync-pulsed timeline, an honest impulse response. The Android apps we built for our own workshop bench — now on Google Play.
Two apps, one engine. Simple Sweep is the bench job most builders run — a single speaker, a sweep, an FRD file. Stain Acoustics is the full suite, with Simple Sweep baked in as a module alongside room analysis, multi-angle dispersion, and the phone-mic calibration wizard.
Single-speaker measurement, focused. For builders who want a sweep, a chart, and an FRD file.
The full suite — rooms, single + multi-angle speakers, phone-mic calibration. Simple Sweep ships inside as a module.
If you read REW source comments for fun, this is the section you came for.
*1000Hz header parsed for sensitivity (dBFS/Pa)*1000Hz header so live SPL and FR chart agree
Every module rides the same Farina sweep + Wiener-deconvolution chain with a different presentation on top. Here's what each one shows you and what it's useful for.
One Farina sweep, every room metric. RT60, EDT, D50, C80, signal-quality badge — plus a 1/3-octave RT60 spectrum and per-band decay bars, all derived from the same impulse response.
The focused workflow: pick a channel, run the sweep, read the curve, export FRD. Four scrollable result tabs — Overview, Distortion, Time & Decay, Phase — so the math is there if you want it and out of the way if you don't.
Sweep the same speaker at every angle that matters, store it all under one named profile, and the app builds the dispersion / directivity picture from the stack.
A USB measurement mic gives absolute accuracy when it's plugged in. The phone-mic wizard generates a per-device correction curve from two back-to-back sweeps against the USB reference — so the phone alone reads the room honestly the rest of the time.
White-noise playback with a live SPL meter and two labelled zones — comfortable listening and ideal-for-sweep. Trust the chart only if the level was right when you ran the sweep.
Six families of chart, six things they tell you. Drawn here as standalone specimens against the paper-white well the app uses inside its dark cards.
The room's energy decay over time. Dashed lines mark the T20 window used to extrapolate RT60.
EVE SC205, on-axis at 1 m. Flatness ±4.9 dB across 200 Hz – 10 kHz. F3 at 52 Hz.
Output of the calibration wizard. dB offset vs frequency, detrended around midband.
Wiener-deconvolved IR. Onset at sync-pulse-aligned t = 0, decay against the IR-space noise floor.
Sweep at every angle, SPL on a colour axis. Narrowing band above 4 kHz = beaming.
RT60 in 21 1/3-octave bands. Peak at 125 Hz is a room mode; the algorithm refuses to fit slopes it can't see.
.cal file) plugs in over USB-C..cal file, no external interface needed. Any USB measurement mic with a standard .cal file (UMIK-1, miniDSP UMIK-2 via USB-C adapter) will also work..frd (frequency / magnitude / phase) compatible with REW, VituixCAD, XSim, PCD and Speakerbench. Room measurements export as 24-bit mono .wav (the calibrated impulse response) plus a JSON metrics sidecar. All files land in Downloads/StainAcoustics/ on Android 10+.