ESS
x(t) = sin( 2π·f1·T/ln R · [ Rt/T − 1 ] ),
R = f2/f1
Schroeder
L(t) = 10·log10( ∫t∞ h2(τ) dτ
/ ∫0∞ h2(τ) dτ )
C50
C50 = 10·log10( ∫050ms h2 dt
/ ∫50ms∞ h2 dt )
D50 = ∫050ms h2 dt / ∫0∞ h2 dt
Obtaining the IR: generate a Farina-method log sweep → sync playback and recording → correct latency via FFT cross-correlation of the recording and the reference chirp → convolve the inverse filter (time reversal + amplitude correction) to extract the IR (ir.rs). The graph above is that IR’s ETC (energy-time curve), showing the time structure of direct sound, reflections, and reverberation.
RT60: backward-integrate the squared IR into a Schroeder decay curve, truncate the noise tail, and fit a line. Extrapolate the slope of −5 dB to −35 dB (T30) or −5 to −25 dB (T20) out to 60 dB. EDT is the 0 to −10 dB slope × 6.
C50 / D50: take the energy ratio around 50 ms (from the peak, within the truncation) for clarity / definition. Bands with insufficient SNR or regression r² are flagged with a confidence warning.