diff --git a/include/ambitap/ambitap.h b/include/ambitap/ambitap.h index 2b69b35..81d4097 100644 --- a/include/ambitap/ambitap.h +++ b/include/ambitap/ambitap.h @@ -20,6 +20,7 @@ #include "dsp/spatial_compressor.h" #include "dsp/util/async_rebuilder.h" #include "dsp/virtual_mic.h" +#include "dsp/xtc.h" #include "math/binaural/convolution.h" #include "math/binaural/hrtf_data.h" #include "math/binaural/ooura_fft.h" diff --git a/include/ambitap/dsp/xtc.h b/include/ambitap/dsp/xtc.h new file mode 100644 index 0000000..3dba02e --- /dev/null +++ b/include/ambitap/dsp/xtc.h @@ -0,0 +1,559 @@ +/// AmbiTap: target-independent ambisonics library +/// Transaural / crosstalk cancellation (XTC): stereo or binaural program -> +/// two loudspeaker feeds for a known symmetric speaker geometry, via a +/// regularized frequency-domain inverse of the KEMAR 2x2 plant. +/// Timothy Place +/// Copyright 2026 Timothy Place. + +#ifndef AMBITAP_DSP_XTC_H +#define AMBITAP_DSP_XTC_H + +#include "../math/binaural/convolution.h" +#include "../math/binaural/hrtf_data.h" +#include "../math/binaural/ooura_fft.h" +#include "../math/binaural/resample.h" +#include "../math/core/spherical_harmonics.h" + +#include +#include +#include +#include +#include + +namespace ambitap::dsp { + + /// Crosstalk canceller for playing binaural (or plain stereo) program over + /// two loudspeakers: each ear should hear only its own channel, so the + /// filter matrix H(f) approximately inverts the acoustic plant C(f) — the + /// 2x2 matrix of head-related transfer functions from each speaker to each + /// ear. v1 is computed-plant only: C is reconstructed from the built-in + /// order-5 KEMAR SH set (LS projection — the design needs the phase, which + /// magLS gives up) at azimuths ±span/2, elevation 0. Measured/in-room + /// plants are out of scope (docs/PERCEPTUAL-VERIFICATION.md, open q. 2). + /// + /// Filter design (control thread, double precision, deterministic): + /// + /// H(f) = (C^H C + beta(f) I)^-1 C^H + /// + /// with frequency-DEPENDENT Tikhonov regularization beta(f): small inside + /// the 300 Hz – 6 kHz cancellation band, ramped large (raised cosine in + /// log f) outside it. Below ~300 Hz the plant is nearly singular (the + /// inter-ear path difference is a tiny fraction of a wavelength) and above + /// ~6 kHz cancellation is a fiction that evaporates with millimeters of + /// head motion, so the filter deliberately gives up there. Two per-bin + /// post-steps bound coloration and gain — the canonical failure of + /// frequency-INdependent regularization is dB-scale ipsilateral combing + /// (Choueiri), and these are what the X4/X5 verification gates measure: + /// + /// - Ipsilateral normalization: each bin is scaled so the diagonal of + /// the performance matrix P = C·H sits at 0 dB (geometric mean of the + /// two ears, smoothed by ±1/6 octave so the filter never chases a + /// plant notch narrower than the coloration gate can hear — fully + /// inverting KEMAR's raw ~8.5 kHz pinna notch would demand ~25 dB of + /// over-fit gain). Plain Tikhonov rolloff would fold + /// out-of-band content to the -6 dB mono sum; the normalization + /// instead relaxes H toward a unity-diagonal passthrough, keeping the + /// 1/3-octave |P_ii| flat across the band edges (X4). Outside + /// 100 Hz – 16 kHz the factor is frozen at the nearest in-range bin + /// so a dead plant bin (DC) cannot demand infinite gain. + /// - Gain ceiling: the whole design is then scaled by one global factor + /// so the largest normalized |H_ij| across the coloration-audit range + /// (k_fit_lo_hz – k_fit_hi_hz, the X4 band plus its smoothing window) + /// lands on the +12 dB ceiling (k_gain_ceiling_db, less a small + /// margin for the realized FIR). A GLOBAL scale preserves both the + /// rejection ratios and the coloration flatness, trading only + /// absolute level — the + /// KEMAR plant is ~14 dB weaker at 300 Hz than at its 3 kHz + /// resonance, so pinning in-band |P_ii| to exactly 0 dB would demand + /// ~17 dB at the low band edge; the global fit spends the overage as + /// uniform attenuation instead of per-bin sag (which would gut both + /// X1 and X4 at the edge). Any residual out-of-fit-band bin over the + /// ceiling (deep plant notches) is capped individually. + /// + /// The four filters are realized as k_fir_length-tap FIRs: inverse FFT of + /// the design grid, circularly rotated by k_fir_length/2 samples (the + /// modeling delay that makes the intrinsically non-causal inverse causal), + /// then edge-tapered (Tukey-style raised-cosine ends). Processing latency + /// is therefore latency_samples() = k_fir_length/2 samples on top of the + /// host's block. After windowing, the realized worst-case gain is + /// re-measured and a matching static makeup attenuation is baked into the + /// shipped FIRs (X5): max_f max_ij |H_ij(f)| <= 1, so a full-scale input + /// cannot clip a single filter path (the coherent sum of the two paths + /// into one speaker can still exceed unity on pathological program; the + /// ceiling is the budget, not a hard limiter). + /// + /// Distance: v1 keeps the geometry symmetric (one span, one distance), so + /// per-speaker propagation compensation — path delay and 1/r gain — is + /// identical for both speakers and factors out of the design as a common + /// scalar; the filters are far-field-plant invariant to it. The distance + /// is still real geometry: the verification gates (and any future + /// near-field or asymmetric plant) displace the head against it. + /// + /// The per-bin math is a closed-form 2x2 complex inversion rather than + /// Eigen: (C^H C + beta I) is Hermitian 2x2, whose inverse is three real + /// operations and a conjugate — and keeping Eigen out of this header lets + /// hosts (e.g. the Max externals) build it against AmbiTap::fft alone. + /// + /// Determinism (gate X6): the design is single-threaded IEEE double + /// arithmetic with no seeds and no environment dependence — identical + /// parameters yield byte-identical filters. + /// + /// Lifecycle: construct (designs immediately at the default 44.1 kHz, so + /// fir()/makeup_gain() are valid before audio exists), then prepare() with + /// the block size and host rate to build the partitioned convolvers. + /// process() is wait-free and allocation-free; it emits silence until + /// prepared. Setters redesign the filters and rebuild the convolvers and + /// are NOT RT-safe — call them with audio stopped, or wrap this class in + /// an async publication scheme (the Max wrapper crossfades convolver pairs + /// built on the control thread; see ambitap.xtc~). + class xtc { + public: + /// Taps per FIR filter. The modeling delay (= reported latency) is + /// half of this. + static constexpr size_t k_fir_length = 1024; + /// Design/analysis FFT grid (4x the FIR length: the windowed FIR's + /// response is smooth at this resolution, so the realized-gain scan + /// cannot miss an inter-bin peak). + static constexpr size_t k_design_grid = 4096; + /// Cancellation band: where beta(f) is small and rejection is bought. + static constexpr float k_band_low_hz = 300.0f; + static constexpr float k_band_high_hz = 6000.0f; + /// Verification gate X5: no |H_ij(f)| may exceed this. + static constexpr float k_gain_ceiling_db = 12.0f; + + static constexpr float k_min_span_deg = 5.0f; + static constexpr float k_max_span_deg = 120.0f; + static constexpr float k_min_distance = 0.1f; + + private: + // Regularization profile: beta ramps (raised cosine in log f) from + // beta_out down to beta_in across [lo_stop, lo_pass] and back up + // across [hi_pass, hi_stop]. The ramps sit OUTSIDE the cancellation + // band so the 300 Hz / 6 kHz edge bins already enjoy full inversion + // (the ~fs/k_fir_length spectral smoothing of the windowed FIR bleeds + // the transition inward; these margins absorb that). + static constexpr double k_reg_lo_stop_hz = 100.0; + static constexpr double k_reg_lo_pass_hz = 250.0; + static constexpr double k_reg_hi_pass_hz = 6200.0; + static constexpr double k_reg_hi_stop_hz = 9500.0; + /// In-band beta at regularization() = 0.5, relative to the mean + /// in-band plant power; the attribute scans ±1 decade around it. + static constexpr double k_beta_in_default = 1.0e-3; + /// Out-of-band beta (relative). Large: outside the band the inverse + /// collapses toward the normalized matched filter. + static constexpr double k_beta_out = 1.0; + /// Ipsilateral normalization is frozen outside this range (the plant + /// has no usable energy at DC / the top octave; boosting it to 0 dB + /// would burn the whole gain budget on inaudible bins). + static constexpr double k_norm_lo_hz = 100.0; + static constexpr double k_norm_hi_hz = 16000.0; + /// The global gain fit scales the design so the worst normalized + /// |H_ij| inside this range sits on the ceiling. The range is the X4 + /// coloration band (200 Hz – 8 kHz) widened by the 1/3-octave + /// smoothing half-window: nothing the coloration gate can see is + /// per-bin capped, so P_ii stays flat wherever it is measured. Wide + /// spans pay for this — KEMAR's ipsilateral pinna notch at ~7.4 kHz + /// is 15+ dB deep at ±30°, and holding X4 flatness through it eats + /// most of the ceiling as static level. + static constexpr double k_fit_lo_hz = 178.0; + static constexpr double k_fit_hi_hz = 8980.0; + /// Design-time cap margin under k_gain_ceiling_db: windowing the FIR + /// can overshoot the design grid slightly; the margin keeps the + /// REALIZED response under the gate. + static constexpr double k_cap_margin_db = 0.5; + /// The built-in KEMAR data lives at 44.1 kHz; when the host rate is + /// higher, the resampled plant above the dataset's usable edge is + /// anti-alias rolloff, not acoustics — inverting it blows the gain + /// budget on junk. The response fades to zero across this band. + static constexpr double k_out_fade_lo_hz = 19000.0; + static constexpr double k_out_fade_hi_hz = 21000.0; + /// Raised-cosine taper length at each FIR end. + static constexpr size_t k_window_taper = 128; + + float m_span_deg {20.0f}; + float m_distance {1.0f}; + float m_regularization {0.5f}; + float m_sample_rate {builtin_hrtf_sample_rate}; + size_t m_block_size {0}; + + // Shipped FIRs (makeup attenuation baked in), indexed [speaker][input] + // with 0 = left. Speaker-left feed = fir(0,0)*in_L + fir(0,1)*in_R. + std::vector m_fir[2][2]; + float m_makeup {1.0f}; // linear, <= 1 + float m_design_gain_db {0.0f}; // realized max |H_ij| pre-makeup + + // Audio-path engine: convolvers in [LL, LR, RL, RR] order + mix + // scratch (so outputs may alias inputs). + std::vector m_conv; + std::vector m_mix_left; + std::vector m_mix_right; + std::vector m_scratch; + + public: + /// Designs the default geometry (span 20°, distance 1 m, + /// regularization 0.5) at 44.1 kHz immediately; call prepare() before + /// audio. + xtc() { redesign(); } + + /// Full angle between the loudspeakers in degrees (speakers sit at + /// ±span/2 azimuth), clamped to [k_min_span_deg, k_max_span_deg]. + /// Redesigns; NOT RT-safe. + void set_span(float degrees) { + m_span_deg = std::clamp(degrees, k_min_span_deg, k_max_span_deg); + redesign(); + } + float span() const { return m_span_deg; } + + /// Listener-to-speaker distance in meters (>= k_min_distance). Stated + /// geometry; see the class comment for why the symmetric far-field + /// design is invariant to it. Redesigns; NOT RT-safe. + void set_distance(float meters) { + m_distance = std::max(meters, k_min_distance); + redesign(); + } + float distance() const { return m_distance; } + + /// In-band regularization amount in [0, 1]: scales beta inside the + /// cancellation band across ±1 decade (0.5 = the verified default). + /// Lower buys deeper rejection at the price of a hotter, more + /// position-sensitive filter. Redesigns; NOT RT-safe. + void set_regularization(float amount) { + m_regularization = std::clamp(amount, 0.0f, 1.0f); + redesign(); + } + float regularization() const { return m_regularization; } + + /// Redesign at a new host rate without touching the convolvers (for + /// hosts that own their convolution engines). NOT RT-safe. + void set_sample_rate(float sample_rate) { + m_sample_rate = sample_rate; + redesign(); + } + float sample_rate() const { return m_sample_rate; } + + /// Build the audio-path convolvers for the processing block size and + /// host sample rate. Block size must be a power of two >= 4. NOT + /// RT-safe. + void prepare(size_t block_size, float sample_rate = builtin_hrtf_sample_rate) { + m_block_size = block_size; + m_sample_rate = sample_rate; + redesign(); + } + bool is_prepared() const { return !m_conv.empty(); } + size_t block_size() const { return m_block_size; } + + /// Modeling delay of the designed filters, in samples at sample_rate(). + static constexpr size_t latency_samples() { return k_fir_length / 2; } + + /// Shipped FIR (makeup attenuation baked in) feeding `speaker` (0 = + /// left, 1 = right) from program `input` (0 = left, 1 = right). + const std::vector& fir(size_t speaker, size_t input) const { + return m_fir[speaker][input]; + } + + /// Static makeup attenuation baked into the shipped FIRs (linear, + /// <= 1): the reciprocal of the realized worst-case filter gain. + float makeup_gain() const { return m_makeup; } + + /// Realized worst-case filter gain BEFORE makeup, in dB — the value + /// gate X5 bounds by k_gain_ceiling_db. + float design_gain_db() const { return m_design_gain_db; } + + /// Clear convolver history; keep filters and allocations. + void reset() { + for (auto& c : m_conv) c.reset(); + } + + /// Process one block: two program inputs -> two speaker feeds, each + /// frame_count samples. Outputs may alias inputs. Emits silence until + /// prepare() has been called (or if frame_count doesn't match the + /// prepared block size). Audio thread; wait-free. + void process(const float* in_left, const float* in_right, float* out_left, float* out_right, + size_t frame_count) noexcept { + if (m_conv.empty() || frame_count != m_block_size) { + std::fill(out_left, out_left + frame_count, 0.0f); + std::fill(out_right, out_right + frame_count, 0.0f); + return; + } + m_conv[0].process(in_left, m_mix_left.data()); + m_conv[1].process(in_right, m_scratch.data()); + for (size_t i = 0; i < frame_count; ++i) m_mix_left[i] += m_scratch[i]; + m_conv[2].process(in_left, m_mix_right.data()); + m_conv[3].process(in_right, m_scratch.data()); + for (size_t i = 0; i < frame_count; ++i) m_mix_right[i] += m_scratch[i]; + std::copy_n(m_mix_left.begin(), frame_count, out_left); + std::copy_n(m_mix_right.begin(), frame_count, out_right); + } + + private: + using cd = std::complex; + + /// KEMAR HRIR at (azimuth, elevation 0) for one ear, reconstructed + /// from the built-in LS SH set (the probe_response inner loop). + static std::vector kemar_hrir(float azimuth, int ear) { + float sh[max_channel_count]; + evaluate_sh(builtin_hrtf_order, azimuth, 0.0f, sh); + std::vector ir(builtin_hrtf_length, 0.0f); + for (size_t ch = 0; ch < builtin_hrtf_channels; ++ch) { + const float* fir = (ear == 0) ? builtin_hrtf_left[ch] : builtin_hrtf_right[ch]; + for (size_t t = 0; t < builtin_hrtf_length; ++t) ir[t] += sh[ch] * fir[t]; + } + return ir; + } + + /// beta(f) relative to the mean in-band plant power: log-cosine blend + /// between beta_in (inside the cancellation band) and k_beta_out. + static double beta_profile(double f, double beta_in) { + double w = 0.0; // 0 = in band, 1 = out of band + if (f <= k_reg_lo_stop_hz || f >= k_reg_hi_stop_hz) { + w = 1.0; + } + else if (f < k_reg_lo_pass_hz) { + const double t = + std::log(f / k_reg_lo_stop_hz) / std::log(k_reg_lo_pass_hz / k_reg_lo_stop_hz); + w = 0.5 * (1.0 + std::cos(3.14159265358979323846 * t)); + } + else if (f > k_reg_hi_pass_hz) { + const double t = + std::log(f / k_reg_hi_pass_hz) / std::log(k_reg_hi_stop_hz / k_reg_hi_pass_hz); + w = 0.5 * (1.0 - std::cos(3.14159265358979323846 * t)); + } + return std::exp((1.0 - w) * std::log(beta_in) + w * std::log(k_beta_out)); + } + + /// Full design pass: plant -> regularized inverse -> normalization -> + /// cap -> FIR realization -> makeup -> convolvers. Control thread; + /// allocates. + void redesign() { + constexpr size_t G = k_design_grid; + constexpr size_t bins = G / 2 + 1; + const double fs = static_cast(m_sample_rate); + const float half_span_rad = 0.5f * m_span_deg * 0.017453292519943295f; // pi/180 + + // ---- Plant spectra: speaker s -> ear e, at ±span/2 -------------- + // (Symmetric geometry: the common propagation delay and 1/r gain + // of the two equal-length paths cancel in the inverse and are + // omitted; see the class comment.) + real_fft fft(G); + std::vector spec[2][2]; // [ear][speaker], Ooura packing + for (int e = 0; e < 2; ++e) { + for (int s = 0; s < 2; ++s) { + const float az = (s == 0) ? half_span_rad : -half_span_rad; + std::vector hrir = kemar_hrir(az, e); + if (m_sample_rate != builtin_hrtf_sample_rate) { + hrir = resample_fir(hrir.data(), hrir.size(), builtin_hrtf_sample_rate, + m_sample_rate); + } + auto& buf = spec[e][s]; + const size_t n = std::min(hrir.size(), G); + buf.assign(G, 0.0); + for (size_t t = 0; t < n; ++t) buf[t] = static_cast(hrir[t]); + fft.forward_inplace(buf.data()); + } + } + const auto plant_bin = [&](int e, int s, size_t k) -> cd { + const auto& b = spec[e][s]; + if (k == 0) return {b[0], 0.0}; + if (k == G / 2) return {b[1], 0.0}; + return {b[2 * k], b[2 * k + 1]}; + }; + + // ±1/6-octave power smoothing. Bin frequency is proportional to + // the bin index, so the window is an index range. + const auto smooth_third_octave = [](std::vector& x) { + const size_t n = x.size(); + std::vector out(n, 0.0); + for (size_t k = 1; k < n; ++k) { + const auto lo = std::max( + 1, static_cast(std::ceil(static_cast(k) * 0.8908987))); + const auto hi = std::min( + n - 1, static_cast(std::floor(static_cast(k) * 1.1224620))); + double acc = 0.0; + for (size_t j = lo; j <= hi; ++j) acc += x[j]; + out[k] = acc / static_cast(hi - lo + 1); + } + out[0] = out[1]; + x = std::move(out); + }; + + // ---- Local plant power (1/3-octave smoothed): the reference + // beta scales by. Per-bin, not a global mean — the KEMAR + // plant is ~14 dB weaker at 300 Hz than at its 3 kHz + // resonance, and a globally scaled beta would swamp the + // weak-plant bins and forfeit cancellation exactly at the + // band edge the X1 minimum gate watches. --------------------- + std::vector plant_power(bins, 0.0); + for (size_t k = 0; k < bins; ++k) { + double p = 0.0; + for (int e = 0; e < 2; ++e) + for (int s = 0; s < 2; ++s) p += std::norm(plant_bin(e, s, k)); + plant_power[k] = 0.5 * p; + } + smooth_third_octave(plant_power); + + // ---- Per-bin regularized inverse + raw diagonal level ----------- + const double beta_in = + k_beta_in_default + * std::pow(10.0, 2.0 * (static_cast(m_regularization) - 0.5)); + std::vector h[2][2]; + std::vector diag(bins, 0.0); // sqrt(|P00|*|P11|), pre-norm + for (auto& row : h) + for (auto& v : row) v.assign(bins, cd {0.0, 0.0}); + + for (size_t k = 0; k < bins; ++k) { + const double f = static_cast(k) * fs / static_cast(G); + const double beta = beta_profile(f, beta_in) * plant_power[k]; + + const cd c00 = plant_bin(0, 0, k), c01 = plant_bin(0, 1, k); + const cd c10 = plant_bin(1, 0, k), c11 = plant_bin(1, 1, k); + + // A = C^H C + beta I (Hermitian), inverted in closed form. + const double a00 = std::norm(c00) + std::norm(c10) + beta; + const double a11 = std::norm(c01) + std::norm(c11) + beta; + const cd a01 = std::conj(c00) * c01 + std::conj(c10) * c11; + const double det = a00 * a11 - std::norm(a01); + + // H = A^-1 C^H, rows = speakers, columns = program inputs. + const cd h00 = (a11 * std::conj(c00) - a01 * std::conj(c01)) / det; + const cd h01 = (a11 * std::conj(c10) - a01 * std::conj(c11)) / det; + const cd h10 = (a00 * std::conj(c01) - std::conj(a01) * std::conj(c00)) / det; + const cd h11 = (a00 * std::conj(c11) - std::conj(a01) * std::conj(c10)) / det; + + // Ipsilateral level of P = C·H at this bin (geometric mean of + // the two ears) — the normalization divisor. + const cd p00 = c00 * h00 + c01 * h10; + const cd p11 = c10 * h01 + c11 * h11; + diag[k] = std::sqrt(std::abs(p00) * std::abs(p11)); + + h[0][0][k] = h00; + h[0][1][k] = h01; + h[1][0][k] = h10; + h[1][1][k] = h11; + } + + // ---- Normalize the diagonal to 0 dB: ±1/6-octave power-smoothed + // (never chase a narrow plant notch), frozen outside the + // normalization range --------------------------------------- + std::vector smooth(bins, 0.0); + for (size_t k = 0; k < bins; ++k) smooth[k] = diag[k] * diag[k]; + smooth_third_octave(smooth); + for (size_t k = 0; k < bins; ++k) smooth[k] = std::sqrt(smooth[k]); + + size_t k_lo = bins - 1, k_hi = 0; + for (size_t k = 0; k < bins; ++k) { + const double f = static_cast(k) * fs / static_cast(G); + if (f >= k_norm_lo_hz && k < k_lo) k_lo = k; + if (f <= k_norm_hi_hz && k > k_hi) k_hi = k; + } + if (k_hi < k_lo) k_lo = k_hi; // degenerate rates: freeze everywhere + const double cap = + std::pow(10.0, (static_cast(k_gain_ceiling_db) - k_cap_margin_db) / 20.0); + + // Per-bin normalization factor and its gain demand; global fit of + // the worst in-fit-band demand onto the ceiling. + std::vector norm(bins, 0.0), demand(bins, 0.0); + double fit_max = 0.0; + for (size_t k = 0; k < bins; ++k) { + const double d = smooth[std::clamp(k, k_lo, k_hi)]; + norm[k] = (d > 1e-12) ? 1.0 / d : 0.0; + for (auto& row : h) + for (auto& v : row) demand[k] = std::max(demand[k], std::abs(v[k]) * norm[k]); + const double f = static_cast(k) * fs / static_cast(G); + if (f >= k_fit_lo_hz && f <= k_fit_hi_hz) fit_max = std::max(fit_max, demand[k]); + } + const double fit = (fit_max > cap) ? cap / fit_max : 1.0; + for (size_t k = 0; k < bins; ++k) { + double n = norm[k] * fit; + if (demand[k] * fit > cap) n *= cap / (demand[k] * fit); // out-of-band stragglers + const double f = static_cast(k) * fs / static_cast(G); + if (f >= k_out_fade_hi_hz) { + n = 0.0; + } + else if (f > k_out_fade_lo_hz) { + const double t = (f - k_out_fade_lo_hz) / (k_out_fade_hi_hz - k_out_fade_lo_hz); + n *= 0.5 * (1.0 + std::cos(3.14159265358979323846 * t)); + } + for (auto& row : h) + for (auto& v : row) v[k] *= n; + } + + // ---- Realize the FIRs: IFFT, modeling-delay rotation, taper ----- + constexpr size_t delay = k_fir_length / 2; + std::vector time(G); + for (int s = 0; s < 2; ++s) { + for (int i = 0; i < 2; ++i) { + auto& hb = h[s][i]; + time[0] = hb[0].real(); + time[1] = hb[G / 2].real(); + for (size_t k = 1; k < G / 2; ++k) { + time[2 * k] = hb[k].real(); + time[2 * k + 1] = hb[k].imag(); + } + fft.inverse_inplace(time.data()); + const double scale = 2.0 / static_cast(G); + + auto& fir = m_fir[s][i]; + fir.assign(k_fir_length, 0.0f); + for (size_t t = 0; t < k_fir_length; ++t) { + const size_t src = (t + G - delay) % G; + double w = 1.0; + if (t < k_window_taper) { + w = 0.5 + * (1.0 + - std::cos(3.14159265358979323846 + * (static_cast(t) + 0.5) + / static_cast(k_window_taper))); + } + else if (t >= k_fir_length - k_window_taper) { + const size_t r = k_fir_length - 1 - t; + w = 0.5 + * (1.0 + - std::cos(3.14159265358979323846 + * (static_cast(r) + 0.5) + / static_cast(k_window_taper))); + } + fir[t] = static_cast(time[src] * scale * w); + } + } + } + + // ---- Realized worst-case gain -> matching makeup attenuation --- + double gmax = 0.0; + for (auto& row : m_fir) { + for (auto& fir : row) { + std::fill(time.begin(), time.end(), 0.0); + for (size_t t = 0; t < k_fir_length; ++t) time[t] = static_cast(fir[t]); + fft.forward_inplace(time.data()); + gmax = std::max({gmax, std::abs(time[0]), std::abs(time[1])}); + for (size_t k = 1; k < G / 2; ++k) { + gmax = std::max(gmax, std::hypot(time[2 * k], time[2 * k + 1])); + } + } + } + m_design_gain_db = static_cast(20.0 * std::log10(std::max(gmax, 1e-12))); + m_makeup = static_cast(std::min(1.0, 1.0 / std::max(gmax, 1e-12))); + for (auto& row : m_fir) + for (auto& fir : row) + for (auto& v : fir) v *= m_makeup; + + rebuild_convolvers(); + } + + void rebuild_convolvers() { + m_conv.clear(); + if (m_block_size == 0) return; + m_conv.reserve(4); + for (int s = 0; s < 2; ++s) { + for (int i = 0; i < 2; ++i) { + m_conv.emplace_back(m_block_size, m_fir[s][i].data(), m_fir[s][i].size()); + } + } + m_mix_left.assign(m_block_size, 0.0f); + m_mix_right.assign(m_block_size, 0.0f); + m_scratch.assign(m_block_size, 0.0f); + } + }; + +} // namespace ambitap::dsp + +#endif // AMBITAP_DSP_XTC_H diff --git a/notebooks/ambitap_py.py b/notebooks/ambitap_py.py index 770761f..0d2d7d1 100644 --- a/notebooks/ambitap_py.py +++ b/notebooks/ambitap_py.py @@ -71,6 +71,8 @@ def load() -> ctypes.CDLL: ctypes.c_int), "ambitap_builtin_hrtf_info": ([i32p, i32p, i32p, f32p], ctypes.c_int), "ambitap_builtin_hrtf_fir": ([ctypes.c_int, ctypes.c_int, ctypes.c_int, f32p], ctypes.c_int), + "ambitap_builtin_hrtf_hrir": ( + [ctypes.c_int, ctypes.c_int, ctypes.c_float, ctypes.c_float, f32p, f32p], ctypes.c_int), "ambitap_resample_fir": ( [f32p, ctypes.c_int, ctypes.c_float, ctypes.c_float, f32p, ctypes.c_int], ctypes.c_int), "ambitap_convolve": ( @@ -197,6 +199,21 @@ def builtin_hrtf(magls: bool = False) -> tuple[np.ndarray, np.ndarray]: return ears[0], ears[1] +def builtin_hrtf_hrir(azimuth: float, elevation: float, *, order: int | None = None, + magls: bool = False) -> tuple[np.ndarray, np.ndarray]: + """Time-domain SH-reconstructed KEMAR HRIR at a direction — the weighted + sum inside binaural_renderer::probe_response: (left, right), each + builtin length taps at the builtin sample rate.""" + if order is None: + order = builtin_hrtf_info()["order"] + length = builtin_hrtf_info()["length"] + left = np.empty(length, dtype=np.float32) + right = np.empty(length, dtype=np.float32) + _check(_LIB.ambitap_builtin_hrtf_hrir(order, int(magls), float(azimuth), float(elevation), + _ptr(left), _ptr(right)), "builtin_hrtf_hrir") + return left, right + + def resample_fir(x: np.ndarray, in_rate: float, out_rate: float) -> np.ndarray: x = _f32(x) cap = int(np.ceil(len(x) * out_rate / in_rate)) + 8 diff --git a/notebooks/room_model.py b/notebooks/room_model.py new file mode 100644 index 0000000..f2782a6 --- /dev/null +++ b/notebooks/room_model.py @@ -0,0 +1,545 @@ +"""Offline SH-domain room prototype for notebooks/room_verification.ipynb. + +This is the Wave-3 `ambitap.room~` *architecture prototype* — pure Python / +NumPy, no real-time constraints — built to be evaluated against the R1-R10 +gates in docs/PERCEPTUAL-VERIFICATION.md before any C++ DSP is written. It +reaches the library through the C ABI (ambitap_py) for everything that must +match the shipped math bit-for-bit: SH encoding (`evaluate_sh`), the built-in +KEMAR SH HRTF set, and the windowed-sinc FIR resampler. + +Model structure (mirrors the ROADMAP item-4 design frame): + + direct + early reflections shoebox image-source model (Allen & Berkley), + (t < er_cutoff) each image encoded as an HOA point source at + its exact direction with amplitude prod(beta)/r + placed at the nearest sample — exactly + checkable against closed-form ground truth + (gates R1-R3). + + late tail (t >= er_cutoff) one of two interchangeable architectures: + + 'fdn' 16-line feedback delay network in the SH domain. + - mutually-prime delays 431..3989 samples (9..83 ms @ 48 kHz; + the short end bridges the early-recirculation gap); + - Hadamard feedback matrix with random +/-1 diagonal conjugation + (orthogonal, lossless); + - per-line linear-phase FIR absorption filters fitted to + g_i(f) = 10^(-3 (L_i + D) / (fs * T60(f))) so every octave + band decays at the parameterized RT60 (D = FIR group delay, + counted as part of the loop); + - per-line unit-energy noise input bursts (~53 ms, octave-band + shaped to the parameterized decay), injection time-aligned per + line so all lines first fire on the same sample: instant echo + density, decorrelated line states, and an exponential energy + envelope from the tail's first sample. The C++ equivalent is + per-line input FIRs, standard Jot practice; + - output taps: a second independent signed Hadamard mixing + matrix distributes the 16 line outputs across the 16 order-3 + SH channels, each row scaled by the SN3D diffuse-field target + 1/sqrt(2n+1) for channel order n; + - a per-channel velvet-noise decorrelation stage was tried and + REJECTED (tail_kind 'fdn_velvet' keeps it measurable): it + trims |rE| and broadband IACC but its short sparse FIRs are + spectrally uneven near 500 Hz and break the per-band + diffuse-coherence tracking (R9) on some seeds. + + 'conv' synthesized-convolution tail: per SH channel an independent + white-noise sequence, split into octave bands with brick-wall + FFT masks, each band enveloped by exp(-6.91 t / T60(band)), + summed, scaled by the same per-order SN3D diffuse-field weights. + Uncorrelated across channels by construction — the comparison + point for the R7/R9 architecture decision. + + level calibration the tail's omni (W) energy is scaled so it + continues the SAME image-source model that + produced the ERs (the image sum beyond + er_cutoff, enumerated then exponentially + extrapolated — tail_energy_target). A junction + energy knee would corrupt EDT and clarity; the + R6 gate checks the rendered C50/C80 against + this exact parameterization. + +Every random draw goes through one np.random.default_rng(seed) per render, +so a fixed seed gives byte-identical output (gate R10). + +Copyright 2026 Timothy Place. MIT License. +""" + +from __future__ import annotations + +import dataclasses + +import numpy as np +import scipy.linalg +import scipy.signal + +import ambitap_py as at + +SPEED_OF_SOUND = 343.0 # m/s + +# 16 mutually-prime FDN delay lengths, 9..83 ms at 48 kHz. The short end +# matters: early recirculation density has to bridge the gap between the +# injected first generation and the dense mixed field, or the tail's energy +# envelope dips right where EDT is measured. +FDN_DELAYS = np.array([431, 541, 677, 839, 1039, 1201, 1451, 1693, + 1949, 2243, 2531, 2857, 3163, 3467, 3697, 3989]) +FDN_ABSORPTION_TAPS = 255 # linear phase; group delay 127 samples +FDN_BURST_LEN = 2560 # per-line input noise burst, ~53 ms +VELVET_LEN = 960 # per-channel decorrelator length, 20 ms +VELVET_TAPS = 24 # sparse impulses per decorrelator + + +@dataclasses.dataclass(frozen=True) +class RoomParams: + """Shoebox parameterization shared by the renderer and the gate math.""" + # Geometry chosen so the first ~22 image-source arrivals are >= 8 samples + # apart at 48 kHz (isolable for the per-arrival R1-R3 measurements) and so + # the whole 1.2/2.4/3.6 m distance sweep stays inside the room. + dims: tuple[float, float, float] = (7.10, 5.30, 3.10) # m; x front, y left, z up + source: tuple[float, float, float] = (3.674, 1.137, 1.977) + listener: tuple[float, float, float] = (1.746, 1.711, 0.668) + # Wall amplitude reflection coefficients (x0, x1, y0, y1, z0, z1); + # frequency-independent for v1, roughly consistent with rt60 via Sabine. + beta: tuple[float, ...] = (0.90, 0.92, 0.91, 0.93, 0.89, 0.94) + # Parameterized RT60 per octave band (the tail's contract, gates R4/R5). + rt60: dict[int, float] = dataclasses.field(default_factory=lambda: { + 250: 0.90, 500: 0.84, 1000: 0.76, 2000: 0.66, 4000: 0.54}) + order: int = 3 + fs: int = 48000 + # Image sources rendered below er_cutoff, the statistical tail above it. + # 30 ms sits just past this room's mixing time (~2*sqrt(V) ms ~ 21 ms) and + # still contains the first 20+ arrivals the R1-R3 gates need. A longer ER + # span measurably biases EDT and T20: the v1 image-source field is + # frequency-flat (it decays at the Eyring rate the walls imply, ~0.73 s) + # while the tail realizes the band-dependent parameterized RT60, so every + # extra ER millisecond drags each band's early decay toward the flat rate. + er_cutoff: float = 0.030 + length: float = 2.0 # s; rendered IR length + # The committed seed is part of the parameterization (gate R10 renders it + # twice, byte-compared). The notebook also reports an informational + # multi-seed sweep: single-realization T20/EDT/IACC estimates in the + # narrow low bands have statistical spread comparable to the R4/R5/R9 + # tolerances, so not every seed passes every band. + seed: int = 11 + + @property + def channels(self) -> int: + return (self.order + 1) ** 2 + + @property + def n_samples(self) -> int: + return round(self.length * self.fs) + + @property + def distance(self) -> float: + return float(np.linalg.norm(np.subtract(self.source, self.listener))) + + +def channel_orders(order: int) -> np.ndarray: + """SH order n of each ACN channel: [0, 1,1,1, 2,2,2,2,2, ...].""" + return np.array([n for n in range(order + 1) for _ in range(2 * n + 1)]) + + +def sn3d_diffuse_gains(order: int) -> np.ndarray: + """Per-channel diffuse-field amplitude targets in SN3D: 1/sqrt(2n+1). + + An isotropic ensemble of SN3D-encoded plane waves has per-channel energy + 1/(2n+1) relative to W (addition theorem) — this is the shaping that + makes the tail decode without order-dependent coloration (gate R7). + """ + return 1.0 / np.sqrt(2.0 * channel_orders(order) + 1.0) + + +def direction_to_azel(v: np.ndarray) -> tuple[float, float]: + """Cartesian (x front, y left, z up) -> (azimuth, elevation), radians.""" + az = float(np.arctan2(v[1], v[0])) + el = float(np.arctan2(v[2], np.hypot(v[0], v[1]))) + return az, el + + +# --------------------------------------------------------------------------- +# Image-source early reflections (gates R1-R3) +# --------------------------------------------------------------------------- + +def image_source_list(params: RoomParams, t_max: float | None = None) -> list[dict]: + """All shoebox image sources arriving before t_max, sorted by time. + + Allen & Berkley enumeration: image position along each axis is + (1-2p)*src + 2rL, with amplitude beta_wall0^|r-p| * beta_wall1^|r| per + axis and 1/distance spreading. Returns closed-form ground truth: exact + fractional arrival time (seconds and samples), direction, amplitude. + """ + if t_max is None: + t_max = params.length + L = np.asarray(params.dims) + s = np.asarray(params.source) + m = np.asarray(params.listener) + b = params.beta + d_max = t_max * SPEED_OF_SOUND + n_range = [int(np.ceil(d_max / (2 * L[a]))) + 1 for a in range(3)] + + out = [] + for px in (0, 1): + for py in (0, 1): + for pz in (0, 1): + p = np.array([px, py, pz]) + for rx in range(-n_range[0], n_range[0] + 1): + for ry in range(-n_range[1], n_range[1] + 1): + for rz in range(-n_range[2], n_range[2] + 1): + r = np.array([rx, ry, rz]) + img = (1 - 2 * p) * s + 2 * r * L + v = img - m + dist = float(np.linalg.norm(v)) + t = dist / SPEED_OF_SOUND + if t > t_max or dist < 1e-6: + continue + refl = np.abs(r - p).sum() + np.abs(r).sum() + amp = (b[0] ** abs(rx - px) * b[1] ** abs(rx) + * b[2] ** abs(ry - py) * b[3] ** abs(ry) + * b[4] ** abs(rz - pz) * b[5] ** abs(rz)) / dist + az, el = direction_to_azel(v / dist) + out.append({ + "time": t, "sample": t * params.fs, + "distance": dist, "amplitude": float(amp), + "azimuth": az, "elevation": el, + "reflections": int(refl), + }) + out.sort(key=lambda e: e["time"]) + return out + + +def render_early_reflections(params: RoomParams) -> tuple[np.ndarray, list[dict]]: + """Direct sound + image sources with t < er_cutoff as an SH IR (C, T). + + Each arrival is one sample (nearest-sample placement, <= 0.5 sample + timing error) encoded through the library's own evaluate_sh via the + C ABI — the encoding is the shipped math, not a Python mirror. + """ + images = image_source_list(params, t_max=params.er_cutoff) + ir = np.zeros((params.channels, params.n_samples)) + for img in images: + n = round(img["sample"]) + if n >= params.n_samples: + continue + sh = at.evaluate_sh(params.order, img["azimuth"], img["elevation"]) + ir[:, n] += img["amplitude"] * sh.astype(np.float64) + return ir, images + + +# --------------------------------------------------------------------------- +# Parameterized decay model shared by the tails and the R6 analytic gate +# --------------------------------------------------------------------------- + +def rt60_of_freq(params: RoomParams, f: np.ndarray) -> np.ndarray: + """T60(f): log-frequency interpolation across the parameterized octave + bands, extrapolated beyond the outer bands with the boundary octave + slope (floored at 0.1 s). + + The extrapolation matters for the R4 gate semantics: T20 is measured + per octave BAND but parameterized at the band CENTER. If T60(f) went + flat above the top band, the 4 kHz octave would average slower-decaying + content below its center against flat content above it and read several + percent high. Continuing the slope keeps each parameterized center + representative of its band average (and a HF roll-off is also the + physical behavior of air absorption). + """ + centers = np.array(sorted(params.rt60)) + values = np.array([params.rt60[c] for c in centers]) + f = np.maximum(np.asarray(f, dtype=np.float64), 1.0) + lf = np.log(f) + lc = np.log(centers) + out = np.interp(lf, lc, values) + slope_lo = (values[1] - values[0]) / (lc[1] - lc[0]) + slope_hi = (values[-1] - values[-2]) / (lc[-1] - lc[-2]) + out = np.where(lf < lc[0], values[0] + slope_lo * (lf - lc[0]), out) + out = np.where(lf > lc[-1], values[-1] + slope_hi * (lf - lc[-1]), out) + return np.maximum(out, 0.1) + + +def tail_energy_fraction(params: RoomParams, t: np.ndarray) -> np.ndarray: + """Fraction of reverberant energy remaining after time t (re. the direct + arrival) under the parameterized model: flat spectral density, each + frequency decaying as exp(-13.8 (t - t_direct) / T60(f)).""" + f = np.linspace(20.0, params.fs / 2, 512) + t60 = rt60_of_freq(params, f) + t_direct = params.distance / SPEED_OF_SOUND + dt = np.maximum(np.asarray(t, dtype=np.float64) - t_direct, 0.0) + # E(>t) integrated per frequency: (T60/13.8) e^{-13.8 dt/T60}; normalize + # by the same integral at dt=0. + num = (t60[None, :] * np.exp(-13.8 * dt[..., None] / t60[None, :])).sum(axis=-1) + den = t60.sum() + return num / den + + +def sabine_absorption_area(params: RoomParams) -> float: + """Equivalent absorption area from the mid-band parameterized RT60.""" + lx, ly, lz = params.dims + volume = lx * ly * lz + t60_mid = rt60_of_freq(params, np.array([1000.0]))[0] + return 0.161 * volume / t60_mid + + +def tail_energy_target(params: RoomParams, t_enum: float = 0.25) -> float: + """Omni (W) energy the tail should carry from er_cutoff onward. + + Self-consistent with the early reflections: the tail continues the SAME + image-source model that produced the ERs. The image sum is enumerated to + t_enum, and the (small) remainder beyond t_enum is extrapolated with the + parameterized mid-band exponential decay — so the ER->tail junction has + no energy knee (which would corrupt EDT and clarity). Deterministic, + closed-form given the parameterization. + """ + images = image_source_list(params, t_max=t_enum) + e_mid = sum(e["amplitude"] ** 2 for e in images + if params.er_cutoff <= e["time"] < t_enum) + # extrapolate E(> t_enum) from the last 50 ms of the enumeration + t_fit = t_enum - 0.05 + e_fit = sum(e["amplitude"] ** 2 for e in images if t_fit <= e["time"] < t_enum) + rate = 13.8 / rt60_of_freq(params, np.array([1000.0]))[0] + e_late = e_fit / (np.exp(rate * (t_enum - t_fit)) - 1.0) + return float(e_mid + e_late) + + +# --------------------------------------------------------------------------- +# Tail architecture 1: SH-domain FDN +# --------------------------------------------------------------------------- + +def _absorption_fir(loop_delay: int, params: RoomParams) -> np.ndarray: + """Linear-phase FIR realizing per-frequency loop attenuation + 10^(-3 * loop_delay_eff / (fs * T60(f))); the FIR's own group delay is + part of the effective loop length.""" + taps = FDN_ABSORPTION_TAPS + group_delay = (taps - 1) // 2 + l_eff = loop_delay + group_delay + nyq = params.fs / 2 + f = np.concatenate([[0.0], np.geomspace(20.0, nyq, 383)]) + f[-1] = nyq + gain = 10.0 ** (-3.0 * l_eff / (params.fs * rt60_of_freq(params, f))) + return scipy.signal.firwin2(taps, f / nyq, gain) + + +def _signed_hadamard(n: int, rng: np.random.Generator) -> np.ndarray: + """Orthogonal mixing matrix: Hadamard conjugated by random +/-1 signs.""" + h = scipy.linalg.hadamard(n).astype(np.float64) / np.sqrt(n) + s1 = rng.choice([-1.0, 1.0], size=n) + s2 = rng.choice([-1.0, 1.0], size=n) + return (s1[:, None] * h) * s2[None, :] + + +def _velvet_decorrelator(rng: np.random.Generator) -> np.ndarray: + """Sparse unit-energy velvet-noise FIR (~20 ms): random-sign impulses, + one per equal time slot, exponentially decaying taps. Convolving each SH + channel with its own draw randomizes the residual inter-channel phase + the FDN recirculation leaves behind, at ~zero spectral cost.""" + fir = np.zeros(VELVET_LEN) + slot = VELVET_LEN // VELVET_TAPS + positions = np.arange(VELVET_TAPS) * slot + rng.integers(0, slot, VELVET_TAPS) + signs = rng.choice([-1.0, 1.0], size=VELVET_TAPS) + decay = np.exp(-3.0 * np.arange(VELVET_TAPS) / VELVET_TAPS) + fir[positions] = signs * decay + return fir / np.linalg.norm(fir) + + +def render_fdn_tail(params: RoomParams, n_samples: int, rng: np.random.Generator, + decorrelate: bool = False) -> np.ndarray: + """SH-domain FDN tail (C, n_samples); sample 0 is the tail onset. + + See the module docstring for the design. Block-processed: with block + size <= min(delays), every sample a block needs is already history. + decorrelate=True adds a per-channel velvet-noise stage — a rejected + iteration kept for the notebook's R8/R9 architecture comparison: it + lowers |rE| and broadband IACC slightly but its short sparse FIRs are + spectrally uneven near 500 Hz, degrading the per-band diffuse-coherence + tracking on some seeds. + """ + delays = FDN_DELAYS + n_lines = len(delays) + l_max = int(delays.max()) + taps = FDN_ABSORPTION_TAPS + + firs = np.stack([_absorption_fir(int(d), params) for d in delays]) + feedback = _signed_hadamard(n_lines, rng) + out_mix = _signed_hadamard(n_lines, rng)[: params.channels] + + # Per-line unit-energy noise bursts, injected so every line's first + # output (its own burst after one traversal) lands at internal time + # l_max: line i is injected at l_max - delays[i]. The bursts are long + # enough (~53 ms) to bridge the gap until second-generation recirculation + # arrives, and are octave-band shaped to the parameterized decay so the + # tail's per-band energy envelope is exponential from its very first + # sample (a spiky or frequency-flat onset corrupts the R4/R6 contracts). + # In the C++ FDN these bursts are per-line input FIRs (Jot-style). + bursts = np.stack([_band_shaped_noise(params, FDN_BURST_LEN, rng) + for _ in range(n_lines)]) + bursts /= np.linalg.norm(bursts, axis=1, keepdims=True) + + t_int = l_max + n_samples + x = np.zeros((n_lines, t_int)) # line inputs (post feedback sum) + o = np.zeros((n_lines, t_int)) # line outputs (delayed inputs) + inject = np.zeros((n_lines, t_int)) + for i in range(n_lines): + start = l_max - int(delays[i]) + inject[i, start:start + FDN_BURST_LEN] = bursts[i] + + block = 384 + assert block <= delays.min() + for t0 in range(0, t_int, block): + t1 = min(t0 + block, t_int) + for i in range(n_lines): + src0 = t0 - int(delays[i]) + seg = np.zeros(t1 - t0) + lo = max(src0, 0) + hi = t1 - int(delays[i]) + if hi > lo: + seg[lo - src0:] = x[i, lo:hi] + o[i, t0:t1] = seg + # absorption FIR over the loop output, with 'taps' of history + h0 = max(t0 - taps + 1, 0) + filt = np.convolve(o[i, h0:t1], firs[i]) + x[i, t0:t1] = filt[t0 - h0:t0 - h0 + (t1 - t0)] + x[:, t0:t1] = inject[:, t0:t1] + feedback @ x[:, t0:t1] + + lines = o[:, l_max:] + tail = out_mix @ lines + if decorrelate: + for ch in range(params.channels): + fir = _velvet_decorrelator(rng) + tail[ch] = scipy.signal.fftconvolve(tail[ch], fir)[:n_samples] + tail *= sn3d_diffuse_gains(params.order)[:, None] + return tail + + +# --------------------------------------------------------------------------- +# Tail architecture 2: synthesized convolution (shaped decorrelated noise) +# --------------------------------------------------------------------------- + +def _band_shaped_noise(params: RoomParams, n_samples: int, + rng: np.random.Generator) -> np.ndarray: + """White noise realizing the parameterized decay exactly per octave band: + the spectrum is split with brick-wall FFT masks at the octave edges + (31.25 Hz .. 16 kHz centers; first band reaches DC, last reaches + Nyquist) and each band is enveloped by exp(-6.91 t / T60(center)). + + Brick-wall splitting is the point: IIR octave filters have skirts + shallow enough that a slower-decaying neighbor band eventually dominates + inside a faster band, bending its Schroeder curve upward — measured as a + several-percent T20 bias (gate R4). Offline (and in a C++ IR-synthesis + step) exact masks are free of that leakage. + """ + centers = 31.25 * 2.0 ** np.arange(10) + t = np.arange(n_samples) / params.fs + noise = rng.standard_normal(n_samples) + spec = np.fft.rfft(noise) + f = np.fft.rfftfreq(n_samples, 1.0 / params.fs) + out = np.zeros(n_samples) + for i, c in enumerate(centers): + lo = 0.0 if i == 0 else c / np.sqrt(2.0) + hi = np.inf if i == len(centers) - 1 else c * np.sqrt(2.0) + band = np.fft.irfft(np.where((f >= lo) & (f < hi), spec, 0.0), n_samples) + t60 = float(rt60_of_freq(params, np.array([c]))[0]) + out += band * np.exp(-6.91 * t / t60) + return out + + +def render_conv_tail(params: RoomParams, n_samples: int, + rng: np.random.Generator) -> np.ndarray: + """Synthesized-convolution tail (C, n_samples): independent band-shaped + noise per SH channel (see _band_shaped_noise) with per-order SN3D + diffuse gains. Uncorrelated across channels by construction.""" + tail = np.stack([_band_shaped_noise(params, n_samples, rng) + for _ in range(params.channels)]) + tail *= sn3d_diffuse_gains(params.order)[:, None] + return tail + + +# --------------------------------------------------------------------------- +# Full room render +# --------------------------------------------------------------------------- + +def render_room(params: RoomParams, tail_kind: str = "fdn") -> dict: + """Render the full SH room IR: direct + image-source ERs below er_cutoff, + the selected tail from er_cutoff on, calibrated to the diffuse-field + level target. Deterministic for a fixed params.seed (gate R10).""" + rng = np.random.default_rng(params.seed) + er, images = render_early_reflections(params) + + n0 = round(params.er_cutoff * params.fs) + n_tail = params.n_samples - n0 + if tail_kind == "fdn": + tail = render_fdn_tail(params, n_tail, rng) + elif tail_kind == "fdn_velvet": + tail = render_fdn_tail(params, n_tail, rng, decorrelate=True) + elif tail_kind == "conv": + tail = render_conv_tail(params, n_tail, rng) + else: + raise ValueError(f"unknown tail_kind {tail_kind!r}") + + scale = np.sqrt(tail_energy_target(params) / np.sum(tail[0] ** 2)) + tail = tail * scale + + ir = er.copy() + ir[:, n0:] += tail + tail_full = np.zeros_like(er) + tail_full[:, n0:] = tail + return {"ir": ir, "er": er, "tail": tail_full, "images": images, + "onset_sample": n0, "params": params} + + +# --------------------------------------------------------------------------- +# Binauralization (KEMAR SH set through the C ABI) and isotropic reference +# --------------------------------------------------------------------------- + +_HRTF_CACHE: dict[tuple[int, float], tuple[np.ndarray, np.ndarray]] = {} + + +def hrtf_firs(order: int, fs: float) -> tuple[np.ndarray, np.ndarray]: + """Built-in KEMAR SH FIRs truncated to the render order and resampled to + fs through the library's own windowed-sinc resampler — exactly what + dsp::binaural_renderer::prepare() does.""" + key = (order, float(fs)) + if key not in _HRTF_CACHE: + info = at.builtin_hrtf_info() + left, right = at.builtin_hrtf(magls=False) + c = (order + 1) ** 2 + if fs != info["sample_rate"]: + left = np.stack([at.resample_fir(f, info["sample_rate"], fs) + for f in left[:c]]) + right = np.stack([at.resample_fir(f, info["sample_rate"], fs) + for f in right[:c]]) + else: + left, right = left[:c], right[:c] + _HRTF_CACHE[key] = (left.astype(np.float64), right.astype(np.float64)) + return _HRTF_CACHE[key] + + +def binauralize(sh_ir: np.ndarray, fs: float) -> tuple[np.ndarray, np.ndarray]: + """(C, T) SH signal -> (left, right): per-channel HRTF convolution and + sum, the binaural_renderer signal path.""" + c = sh_ir.shape[0] + order = int(np.sqrt(c)) - 1 + left_firs, right_firs = hrtf_firs(order, fs) + left = sum(scipy.signal.fftconvolve(sh_ir[ch], left_firs[ch]) for ch in range(c)) + right = sum(scipy.signal.fftconvolve(sh_ir[ch], right_firs[ch]) for ch in range(c)) + return left, right + + +def fibonacci_sphere(n: int) -> tuple[np.ndarray, np.ndarray]: + """Deterministic near-uniform directions: (azimuth[n], elevation[n]).""" + i = np.arange(n) + 0.5 + el = np.arcsin(1.0 - 2.0 * i / n) + az = np.mod((np.pi * (1.0 + np.sqrt(5.0))) * i, 2 * np.pi) - np.pi + return az, el + + +def isotropic_sh_noise(order: int, n_samples: int, seed: int, + n_dirs: int = 256) -> np.ndarray: + """Reference diffuse field: independent white noise from n_dirs + near-uniform directions, each encoded through the library's evaluate_sh. + The R7/R9 gates use this as the 'what SHOULD a diffuse tail look like + through this exact rendering chain' baseline.""" + az, el = fibonacci_sphere(n_dirs) + y = np.stack([at.evaluate_sh(order, float(a), float(e)) + for a, e in zip(az, el)]).astype(np.float64) # (n_dirs, C) + rng = np.random.default_rng(seed) + noise = rng.standard_normal((n_dirs, n_samples)) / np.sqrt(n_dirs) + return y.T @ noise diff --git a/notebooks/room_verification.ipynb b/notebooks/room_verification.ipynb new file mode 100644 index 0000000..e58be2e --- /dev/null +++ b/notebooks/room_verification.ipynb @@ -0,0 +1,1260 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "611dbbaf", + "metadata": {}, + "source": [ + "# AmbiTap — `ambitap.room~` verification harness (R1–R10)\n", + "\n", + "This notebook implements the **numeric gates R1–R10** defined in\n", + "[`docs/PERCEPTUAL-VERIFICATION.md`](../docs/PERCEPTUAL-VERIFICATION.md) for the\n", + "Wave-3 `ambitap.room~` module (shoebox image-source early reflections + an\n", + "SH-domain reverb tail). Per that protocol this is the **harness-first phase**:\n", + "no real-time C++ DSP exists yet. What is evaluated here is an *offline\n", + "prototype* ([`room_model.py`](room_model.py)) built to answer the protocol's\n", + "open question 3 — **FDN vs synthesized-convolution tail** — from numbers,\n", + "before listeners and before any C++ is written. R7 (per-order energy balance)\n", + "and R9 (interaural coherence of the binauralized tail) are the\n", + "architecture-deciding gates.\n", + "\n", + "The prototype reaches the library through the C ABI (`tools/capi/` via\n", + "`ambitap_py`) for everything that must match the shipped math exactly: SH\n", + "encoding, the built-in KEMAR SH HRTF set, the FIR resampler, and\n", + "`analysis::energy_vector`. Every gate below is a **function of a rendered\n", + "SH-domain impulse response** — when the C++ `room~` exists, the same functions\n", + "point at its output instead of the prototype's.\n", + "\n", + "Fixed seed, fixed geometry; the whole notebook is deterministic (gate R10\n", + "byte-compares two renders). The listening pass and the bypass rule from the\n", + "protocol are release-checklist items, out of scope here." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "bba64d03", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:10:46.930101Z", + "iopub.status.busy": "2026-07-03T23:10:46.929877Z", + "iopub.status.idle": "2026-07-03T23:10:47.906532Z", + "shell.execute_reply": "2026-07-03T23:10:47.905316Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "room (7.1, 5.3, 3.1) m, source (3.674, 1.137, 1.977), listener (1.746, 1.711, 0.668) (d = 2.400 m)\n", + "order 3 (16 ch), fs 48000 Hz, ER < 30 ms, IR 2.0 s, seed 11\n", + "RT60(band): {250: 0.9, 500: 0.84, 1000: 0.76, 2000: 0.66, 4000: 0.54}\n", + "ambitap_builtin_hrtf_hrir matches the SH-weighted table sum (max |err| 0.00e+00)\n" + ] + } + ], + "source": [ + "import dataclasses\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import scipy.signal\n", + "\n", + "import ambitap_py as at\n", + "import room_model as rm\n", + "\n", + "plt.rcParams.update({\n", + " \"figure.dpi\": 96, \"figure.figsize\": (9, 3.2),\n", + " \"axes.grid\": True, \"grid.alpha\": 0.25, \"grid.linewidth\": 0.5,\n", + " \"axes.spines.top\": False, \"axes.spines.right\": False,\n", + " \"axes.titlesize\": 10, \"axes.labelsize\": 9,\n", + " \"xtick.labelsize\": 8, \"ytick.labelsize\": 8, \"legend.fontsize\": 8,\n", + "})\n", + "PAL = at.PALETTE\n", + "\n", + "P = rm.RoomParams()\n", + "FS = P.fs\n", + "N80 = round(0.080 * FS) # the protocol's late-tail window start\n", + "BAND_CENTERS = [250, 500, 1000, 2000, 4000, 8000]\n", + "RT60_BANDS = sorted(P.rt60) # the five parameterized bands, R4/R5\n", + "\n", + "print(f\"room {P.dims} m, source {P.source}, listener {P.listener} \"\n", + " f\"(d = {P.distance:.3f} m)\")\n", + "print(f\"order {P.order} ({P.channels} ch), fs {FS} Hz, ER < {P.er_cutoff*1000:.0f} ms, \"\n", + " f\"IR {P.length:.1f} s, seed {P.seed}\")\n", + "print(\"RT60(band):\", P.rt60)\n", + "\n", + "# capi prerequisite (see the protocol's harness convention): the time-domain\n", + "# SH-reconstructed HRIR at a direction — the weighted sum inside\n", + "# binaural_renderer::probe_response, which only returns magnitude. Cross-check\n", + "# the new export against the same sum built from the raw SH FIR tables.\n", + "l5, r5 = at.builtin_hrtf_hrir(0.5, 0.1)\n", + "sh5 = at.evaluate_sh(5, 0.5, 0.1)\n", + "L5, R5 = at.builtin_hrtf()\n", + "assert np.allclose(l5, (sh5[:, None] * L5).sum(0), atol=1e-7)\n", + "assert np.allclose(r5, (sh5[:, None] * R5).sum(0), atol=1e-7)\n", + "print(\"ambitap_builtin_hrtf_hrir matches the SH-weighted table sum \"\n", + " f\"(max |err| {np.abs(l5 - (sh5[:, None] * L5).sum(0)).max():.2e})\")" + ] + }, + { + "cell_type": "markdown", + "id": "0d57b776", + "metadata": {}, + "source": [ + "## Metric toolbox\n", + "\n", + "ISO 3382 machinery plus the SH/interaural diffuseness estimators, all written\n", + "as functions of a rendered SH IR (or its binauralization) so they can later be\n", + "pointed at the C++ implementation unchanged. Estimator choices that go beyond\n", + "the one-line gate definitions in the protocol — each needed to make the\n", + "estimate *consistent*, and applied identically to every architecture:\n", + "\n", + "- **R7 normalization.** The library is SN3D: an isotropic field carries\n", + " per-channel energy ∝ 1/(2n+1), not flat. \"Energy per order n, normalized per\n", + " channel of that order\" is therefore compared after multiplying by (2n+1)\n", + " (the SN3D→N3D energy factor), so an ideal diffuse field measures flat — the\n", + " isotropic-reference sanity check below confirms the metric reads ~0 dB\n", + " spread by construction.\n", + "- **R8 averaging.** |rE| per 20 ms window, averaged **energy-weighted**. Late\n", + " windows are LF-dominated (LF decays slowest), and a 20 ms window of\n", + " narrowband noise has an |rE| noise floor of ~1/√N_eff even for a perfectly\n", + " isotropic field; unweighted averaging reports that floor, not the field.\n", + "- **R9 estimator.** IACC (max |normalized cross-correlation| over ±1 ms) per\n", + " octave band. On a *decaying* tail the estimate is variance-limited (~40\n", + " independent samples at 500 Hz), so the band-filtered ear signals are\n", + " **decay-equalized** by the parameterized envelope and measured over the\n", + " first T60(band)/2 (span-limited so band leakage of slower LF content cannot\n", + " dominate the equalized late samples). Measured on the **binauralized tail\n", + " component**: zero-phase band filtering would smear the interaurally-coherent\n", + " ERs into a t>80 ms window taken from the full IR.\n", + "- **R9 reference.** \"The KEMAR diffuse-field coherence curve\" is measured as\n", + " an isotropic field (256 Fibonacci directions × independent noise, encoded by\n", + " the library's `evaluate_sh`) **through the same order-3 LS render chain** —\n", + " the coherence an ideal diffuse tail can actually reach at this order. The\n", + " order-5 direction-domain curve (via the new capi HRIR export) is plotted for\n", + " comparison." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5d0f8be5", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:10:47.909806Z", + "iopub.status.busy": "2026-07-03T23:10:47.909472Z", + "iopub.status.idle": "2026-07-03T23:10:47.927458Z", + "shell.execute_reply": "2026-07-03T23:10:47.926497Z" + } + }, + "outputs": [], + "source": [ + "BANDS = {c: scipy.signal.butter(\n", + " 2, np.array([c / np.sqrt(2), min(c * np.sqrt(2), 0.499 * FS)]) / (FS / 2),\n", + " \"bandpass\", output=\"sos\") for c in BAND_CENTERS}\n", + "\n", + "\n", + "def band_filter(x, center):\n", + " return scipy.signal.sosfiltfilt(BANDS[center], x)\n", + "\n", + "\n", + "def schroeder_db(x):\n", + " e = np.cumsum(x[::-1] ** 2)[::-1]\n", + " return 10 * np.log10(e / e[0] + 1e-30)\n", + "\n", + "\n", + "def fit_decay_time(edc, lo_db, hi_db):\n", + " \"\"\"Least-squares line through the EDC between lo_db and hi_db -> RT60.\"\"\"\n", + " i0 = int(np.argmax(edc <= lo_db))\n", + " i1 = int(np.argmax(edc <= hi_db))\n", + " t = np.arange(i0, i1) / FS\n", + " slope, _ = np.linalg.lstsq(np.vstack([t, np.ones_like(t)]).T,\n", + " edc[i0:i1], rcond=None)[0]\n", + " return -60.0 / slope\n", + "\n", + "\n", + "def t20_band(w, center):\n", + " return fit_decay_time(schroeder_db(band_filter(w, center)), -5, -25)\n", + "\n", + "\n", + "def edt_band(w, center):\n", + " return fit_decay_time(schroeder_db(band_filter(w, center)), 0, -10)\n", + "\n", + "\n", + "def clarity_db(w, t_ms, t_direct_s):\n", + " nt = round(t_direct_s * FS) + round(t_ms / 1000 * FS)\n", + " e = w ** 2\n", + " return 10 * np.log10(np.sum(e[:nt]) / np.sum(e[nt:]))\n", + "\n", + "\n", + "def analytic_clarity_db(params, images, t_ms):\n", + " \"\"\"Closed-form C(t_ms) of the parameterization: exact image energies below\n", + " er_cutoff + the exponential-tail model carrying tail_energy_target.\"\"\"\n", + " td = params.distance / rm.SPEED_OF_SOUND\n", + " tcut = td + t_ms / 1000\n", + " e_early = sum(i[\"amplitude\"] ** 2 for i in images\n", + " if i[\"time\"] <= tcut and i[\"time\"] < params.er_cutoff)\n", + " e_late = sum(i[\"amplitude\"] ** 2 for i in images\n", + " if tcut < i[\"time\"] < params.er_cutoff)\n", + " et = rm.tail_energy_target(params)\n", + " if tcut <= params.er_cutoff:\n", + " e_late += et\n", + " else:\n", + " fr = (rm.tail_energy_fraction(params, np.array([tcut]))[0]\n", + " / rm.tail_energy_fraction(params, np.array([params.er_cutoff]))[0])\n", + " e_late += et * fr\n", + " e_early += et * (1 - fr)\n", + " return 10 * np.log10(e_early / e_late)\n", + "\n", + "\n", + "def per_order_energy_db(sh_tail, order):\n", + " \"\"\"R7: per-order tail energy, per channel of that order, SN3D->N3D\n", + " equalized ((2n+1)), in dB relative to the across-order mean.\"\"\"\n", + " n = rm.channel_orders(order)\n", + " e = np.sum(sh_tail ** 2, axis=1)\n", + " per = np.array([np.mean(e[n == k]) * (2 * k + 1) for k in range(order + 1)])\n", + " return 10 * np.log10(per / per.mean())\n", + "\n", + "\n", + "def re_windows(sh, win_ms=20):\n", + " \"\"\"R8: first-order |rE| per window (normalized so a plane wave -> 1,\n", + " isotropic -> 0) and each window's energy for the weighted average.\"\"\"\n", + " W, Y, Z, X = sh[0], sh[1], sh[2], sh[3]\n", + " w = round(win_ms / 1000 * FS)\n", + " vals, ens = [], []\n", + " for t0 in range(0, sh.shape[1] - w + 1, w):\n", + " s = slice(t0, t0 + w)\n", + " num = np.array([np.sum(W[s] * X[s]), np.sum(W[s] * Y[s]),\n", + " np.sum(W[s] * Z[s])])\n", + " den = 0.5 * (np.sum(W[s] ** 2) + np.sum(X[s] ** 2 + Y[s] ** 2 + Z[s] ** 2))\n", + " vals.append(np.linalg.norm(num) / max(den, 1e-30))\n", + " ens.append(den)\n", + " return np.array(vals), np.array(ens)\n", + "\n", + "\n", + "def iacc(l, r, max_lag=round(0.001 * FS)):\n", + " c = scipy.signal.correlate(l, r, mode=\"full\")\n", + " mid = len(l) - 1\n", + " c = c[mid - max_lag:mid + max_lag + 1]\n", + " return np.max(np.abs(c)) / np.sqrt(np.sum(l ** 2) * np.sum(r ** 2))\n", + "\n", + "\n", + "def band_iacc_tail(l, r, center, params):\n", + " \"\"\"R9 on a decaying tail: band-filter, decay-equalize with the\n", + " parameterized envelope, span-limit to T60(band)/2, then IACC.\"\"\"\n", + " t60 = float(rm.rt60_of_freq(params, np.array([float(center)]))[0])\n", + " span = round(0.5 * t60 * FS)\n", + " env = np.exp(6.91 * np.arange(span) / FS / t60)\n", + " return iacc(band_filter(l, center)[:span] * env,\n", + " band_filter(r, center)[:span] * env)\n", + "\n", + "\n", + "def band_iacc_stationary(l, r, center):\n", + " return iacc(band_filter(l, center), band_filter(r, center))\n", + "\n", + "\n", + "GATES = []\n", + "\n", + "\n", + "def record(gate, arch, value, threshold, passed, enforced=True):\n", + " GATES.append({\"gate\": gate, \"arch\": arch, \"value\": value,\n", + " \"threshold\": threshold, \"passed\": bool(passed),\n", + " \"enforced\": enforced})\n", + " return passed" + ] + }, + { + "cell_type": "markdown", + "id": "f5cebf71", + "metadata": {}, + "source": [ + "## Renders\n", + "\n", + "Both tail architectures from the same `RoomParams` (identical geometry, RT60\n", + "parameterization, seed): the **16-line SH-domain FDN** and the\n", + "**synthesized-convolution** comparison tail. A three-distance sweep (1.2 / 2.4\n", + "/ 3.6 m along a fixed direction from the listener) feeds the R6 clarity gate,\n", + "and an isotropic reference field feeds R7's sanity check and R9's reference\n", + "curve. The FDN design and its iteration history (rejected velvet-decorrelator\n", + "stage, burst shaping, delay-set choice) are documented in `room_model.py`." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "69b544ea", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:10:47.929693Z", + "iopub.status.busy": "2026-07-03T23:10:47.929502Z", + "iopub.status.idle": "2026-07-03T23:10:57.795939Z", + "shell.execute_reply": "2026-07-03T23:10:57.794562Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "rendered in 8.5 s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[fdn] ER energy 0.760, tail energy 1.112 (target 1.112)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[conv] ER energy 0.760, tail energy 1.112 (target 1.112)\n" + ] + } + ], + "source": [ + "import time\n", + "\n", + "t0 = time.time()\n", + "RES = {kind: rm.render_room(P, kind) for kind in (\"fdn\", \"conv\")}\n", + "\n", + "SWEEP_DIR = np.array([0.8033, -0.2392, 0.5454]) # unit; keeps 1.2..3.6 m in-room\n", + "DISTANCES = (1.2, 2.4, 3.6)\n", + "rcv = np.array(P.listener)\n", + "SWEEP = {}\n", + "for kind in (\"fdn\", \"conv\"):\n", + " SWEEP[kind] = []\n", + " for d in DISTANCES:\n", + " pd = dataclasses.replace(P, source=tuple(np.round(rcv + d * SWEEP_DIR, 3)))\n", + " SWEEP[kind].append((pd, rm.render_room(pd, kind)))\n", + "\n", + "ISO = rm.isotropic_sh_noise(P.order, FS, seed=1234) # 1 s stationary\n", + "ISO_LR = rm.binauralize(ISO, FS)\n", + "TAIL_LR = {kind: rm.binauralize(RES[kind][\"tail\"], FS) for kind in RES}\n", + "\n", + "print(f\"rendered in {time.time() - t0:.1f} s\")\n", + "for kind in RES:\n", + " r = RES[kind]\n", + " print(f\"[{kind}] ER energy {np.sum(r['er'][0]**2):.3f}, \"\n", + " f\"tail energy {np.sum(r['tail'][0]**2):.3f} \"\n", + " f\"(target {rm.tail_energy_target(P):.3f})\")" + ] + }, + { + "cell_type": "markdown", + "id": "e1c050ad", + "metadata": {}, + "source": [ + "## R1–R3 — image-source early reflections (the exact layer)\n", + "\n", + "Ground truth is closed-form: for every shoebox image the arrival time\n", + "(distance / c), direction, and level (∏ wall reflection coefficients / r) are\n", + "computed **independently from the geometry** and compared against what is\n", + "found in the rendered SH IR. The renderer places each arrival at the nearest\n", + "sample, so timing error is bounded by construction at 0.5 samples — the ±1\n", + "sample gate verifies the render actually honors the analytic times, with no\n", + "tuned tolerances. DOA (R2) is measured by the library's own\n", + "`analysis::energy_vector` (through the C ABI) on a window holding just that\n", + "arrival; levels (R3) are read from the W channel, which carries the arrival\n", + "amplitude directly in SN3D (Y₀₀ = 1). Geometry was chosen so the first 22\n", + "arrivals are ≥ 8 samples apart, i.e. each is isolable." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "d6bb023f", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:10:57.798674Z", + "iopub.status.busy": "2026-07-03T23:10:57.798391Z", + "iopub.status.idle": "2026-07-03T23:10:57.945665Z", + "shell.execute_reply": "2026-07-03T23:10:57.944591Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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chgJ6Qkm3kRERKQzJ7Ia5OqN1uBKlrqetYUITLyJiIhIhzJgor3e6H+HkQBAYPPyuTy7OpaX5xL1usPEm4iIiHSLvdEao29Jtr7Fo21MvImIiEj33oDe6DedJpLm4pT5JiXrTLyJiIiISCPKkjS/ibOpcDpBIiIiIiItYOJNRERERKQFTLyJiIiIqFS4wE7JMPEmIiIiItICJt5ERERERFrAxJuIiIiISAuYeBMRERERaQETbyIiIiIiLWDiTURERESkBUy8iYiIiIi0gIk3EREREZEWMPEmIiIiItICJt5ERERERFrAxJuIiIiISAuYeBMRERERaQETbyIiIiIiLWDiTURERESkBUy8iYiIiIi0gIk3EREREZEWMPEmIiIiItICJt5ERERERFrAxJuIiIiISAuYeBMRERERaQETbyIiIiIiLWDiTURERESkBUy8iYiIiIi0gIk3EREREZEWMPEmIiIiItICJt5ERERERFrAxJuIiIiISAuYeBMRERERaQETbyIiIiIiLWDiTURERESkBUy8iYiIiIi0wFgXlQohsG3bNkRFRaF169bw8/NTy7lERERERPpKJz3eU6ZMwZw5c5CYmIhRo0Zh+fLlajmXiIiIiEhfab3HOz4+Hr/88guioqJQq1YtDBw4EEOGDMGHH34IQ0PDUp9LRERERKTPDIQQQpsVHj16FBMnTsSVK1ekfdbW1oiOjoajo2Opz1UoFMjMzJS25XI57OzskJaWBgsLCw3dTf4MDAy0Wh8RERERKb18+RIymUzXYeRL6z3eL168QOXKlVX22djY4Pnz53mS6ZKcO3/+fMydOzdPfUlJSVAoFGqJnYiIiIj0W2pqqk7qLU6yr/XE287ODgkJCSr7EhMT4eDgUKZzg4KCMGPGDGk7p8dbJpNpvcdbCIGkpCS9/bRVUbFN9BPbRf+wTfQT20X/sE30kz63i9YHSru7u+PevXu4f/8+AOD48eOws7NDtWrVynSuiYkJLCwsVP4QEREREekLrSfetra2GDt2LHx9ffHRRx9h6NChCAoKksZFf/fdd7h7926xziUiIiIiKi90Mo/34sWL4ePjg6ioKISEhKBTp07SMTMzM5UZSwo7l4iIiIiovND6rCbaIpfLYWlpqZNZTQD9Hl9UUbFN9BPbRf+wTfQT20X/sE30kz63CyfDJiIiIiLSAibeRERE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98cnn3yC8PBwhIeHw9nZGW+//Tbat2+PmjVrYuDAgejYsSN++OEHfPfdd7oOuUIYMWIErl27hr59+0q/Re3VqxccHBzwxx9/ICEhAenp6Thw4ADS09PRoUMH3QZcAdy6dQuffvop/P39kZWVheDgYGmMd5MmTdC6dWv4+/uje/fuWLZsGT755BMdR6zEJePVbNu2bfjrr79Qs2ZNTJo0SS9+rVGRhYaG4rfffoOhoSEcHR3Rv39/fhjSkWnTpuHFixfStpubGz799FMAyvF4P//8M54+fYrevXtzDlwtiYiIQHBwsMq+zz77DE2aNMH06dPx/PlzWFpaokmTJhg5ciSsra11FGnFcezYMaxdu1ZlX/PmzaXpaV+8eIFly5bh0aNH6NatG/r376+LMCucGTNm5Hn3ZNasWahfvz6+/PJLPHz4EBYWFnB1dcUHH3wgvSxOmnXx4kVs3LgR2dnZ8PHxUfnZkZycjGXLluHevXvo1KkT3nnnHR1G+v+YeBMRERERaQHHeBMRERERaQETbyIiIiIiLWDiTURERESkBUy8iYiIiIi0gIk3EREREZEWMPEmIiIiItICJt5ERFSotWvXIj4+Xq1lXr16Ffv371drmURE+o6JNxGRHrtx4wb+97//qey7efNmnn2acvbsWQQHB8POzk6t5To5OWHSpElISEhQa7lERPqMiTcRkR67cuUKVq1apbIvKysLr1690kr9ixYtwocffqj2cmUyGXr06IE1a9aovWwiIn1lrOsAiIgof8nJydi+fTtiYmLw9ddfw9DQEF988QWMjIxgZmYGALh27RrOnz+P1q1bIzQ0FFZWVhg6dChSUlKwbds2CCEwfPhwyGQyqdzMzEzs378fd+/eRfPmzdGhQ4d8609NTcXu3buxcuVKaV9p6gsPD8c///wDZ2dn9O3bF8bGyh89/fr1wyeffIJPP/1UE4+PiEjvsMebiEhPCSGgUCgghEB6errUy33t2jWpF/zSpUv49NNPMXjwYNy4cQP/+c9/MGzYMPj6+uLy5cvYvHkzunXrJpUpl8vh7e2NRYsW4d69exg1ahS++uqrfOs/c+YMatasCVtbW2lfSetbvnw5hg4divv372PLli0YPHiwdKx169a4fPkyEhMT1fjUiIj0F3u8iYj0lEwmw7BhwxAXF4evv/66wPPS09Nx7NgxyGQyDB06FO3bt0d4eDjat2+PV69ewcHBAbdu3UKDBg3w008/QSaT4fDhwwCAoKAgNGzYEBMmTEDVqlVVyo2JiYGjo2OZ6jt06BAWLVqEd955B4Dypcrc92dubo6HDx+icuXKanhiRET6jYk3EVE55+HhIQ3tqFOnDgwNDdG2bVsAgJmZGRwdHfHkyRM0aNAA4eHhMDExwYIFCyCEgBAC5ubmuHr1ap7EWx31DRo0CN988w0SEhLg4+MDNzc3lbIMDQ0hhFDXoyAi0mscakJEVM7ljJkGAAMDAxgYGMDQ0FBlX05ym5mZCQBISUlBamoq0tLSEBgYiOrVq+cp18nJCU+ePClTfSNGjMC+fftgamqKTz/9FH5+flAoFACUY9jT0tJQq1atstw+EVG5wR5vIiI9ZmFhgYyMDLWV165dO1y8eFFl6EpUVBTq1KmT59zWrVsjJiYGL1++hI2NTanqu3TpEjw8PDBmzBiMGTMGtra2uHbtGjw9PXH27Fk0adIEVapUKe3tEBGVK0y8iYj0mIeHB65cuYJPP/0UVapUwRdffFGm8qZNm4ZOnTrBx8cH7dq1w927d3H9+nWcOnUqz7lWVlbo27cvdu/ejREjRpSqvhUrVuDmzZto06YNrl+/DltbWzRs2BAAsGvXLgQEBJTpfoiIyhMONSEi0mNOTk4ICwuDnZ2dNKuJq6sr3n//fQCAm5sb3n33Xel8a2trBAUFqZQxfvx4ODs7A1Am06dOncLkyZMhk8nQv39/nD59Gubm5vnWP336dJXpBEta34oVKzB79mzIZDL07dsXkZGRsLCwQGpqKvbt24cxY8aU9tEQEZU7BoJvtRARUSFWrFiBwYMHw97eXm1lXr58Gbdv30a/fv3UViYRkb5j4k1EREREpAUcakJEREREpAVMvImIiIiItICJNxERERGRFjDxJiIiIiLSAibeRERERERawMSbiIiIiEgLmHgTEREREWkBE28iIiIiIi1g4k1EREREpAVMvImIiIiItOD/AGMIkBMwCcToAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "er, images = RES[\"fdn\"][\"er\"], RES[\"fdn\"][\"images\"]\n", + "first20 = images[:20]\n", + "rounded = [round(i[\"sample\"]) for i in images]\n", + "sep = np.min(np.diff(np.sort([i[\"sample\"] for i in images[:22]])))\n", + "assert sep >= 8, \"precondition: first arrivals must be isolable\"\n", + "\n", + "fig, ax = plt.subplots(figsize=(9, 3.2))\n", + "n_max = round(0.030 * FS)\n", + "ax.stem(np.arange(n_max) / FS * 1000, er[0, :n_max], linefmt=PAL[0],\n", + " markerfmt=\" \", basefmt=\"k-\", label=\"rendered W channel\")\n", + "tt = [i[\"time\"] * 1000 for i in first20]\n", + "aa = [i[\"amplitude\"] for i in first20]\n", + "ax.plot(tt, aa, \"o\", ms=5, mfc=\"none\", color=PAL[2],\n", + " label=\"analytic: time & level of first 20 images\")\n", + "ax.set(xlabel=\"time (ms)\", ylabel=\"amplitude\",\n", + " title=\"Early reflections vs closed-form image-source ground truth\")\n", + "ax.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "000949bf", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:10:57.947997Z", + "iopub.status.busy": "2026-07-03T23:10:57.947787Z", + "iopub.status.idle": "2026-07-03T23:10:57.957953Z", + "shell.execute_reply": "2026-07-03T23:10:57.956693Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R1 worst arrival-time error: 0.437 samples\n", + "R2 worst DOA error: 0.024 deg\n", + "R3 worst level error: 0.0000 dB\n" + ] + } + ], + "source": [ + "# VERIFY R1: arrival times within +/-1 sample of the exact fractional times.\n", + "time_errs = []\n", + "for img in first20:\n", + " lo = int(np.floor(img[\"sample\"])) - 3\n", + " n_det = lo + int(np.argmax(np.abs(er[0, lo:lo + 7])))\n", + " time_errs.append(n_det - img[\"sample\"])\n", + "r1 = np.max(np.abs(time_errs))\n", + "print(f\"R1 worst arrival-time error: {r1:.3f} samples\")\n", + "assert record(\"R1 ER arrival times\", \"ISM\", f\"{r1:.3f} smp\", \"<= 1 smp\", r1 <= 1.0)\n", + "\n", + "# VERIFY R2: DOA via analysis::energy_vector within 5 deg of the image\n", + "# direction. The window ends before the next arrival so it holds one image.\n", + "doa_errs = []\n", + "for img in first20:\n", + " n = round(img[\"sample\"])\n", + " nxt = min((r for r in rounded if r > n), default=n + 32)\n", + " seg = er[:, n:min(n + 32, nxt)].astype(np.float32)\n", + " ev = at.energy_vector(seg, order=P.order, sample_rate=FS, smoothing_s=0.002)\n", + " v = ev[:, -1] / np.linalg.norm(ev[:, -1])\n", + " u = np.array([np.cos(img[\"elevation\"]) * np.cos(img[\"azimuth\"]),\n", + " np.cos(img[\"elevation\"]) * np.sin(img[\"azimuth\"]),\n", + " np.sin(img[\"elevation\"])])\n", + " doa_errs.append(np.degrees(np.arccos(np.clip(np.dot(v, u), -1, 1))))\n", + "r2 = np.max(doa_errs)\n", + "print(f\"R2 worst DOA error: {r2:.3f} deg\")\n", + "assert record(\"R2 ER directions (energy_vector)\", \"ISM\", f\"{r2:.3f} deg\",\n", + " \"<= 5 deg\", r2 <= 5.0)\n", + "\n", + "# VERIFY R3: per-arrival level vs prod(beta)/r within +/-0.5 dB.\n", + "lvl_errs = []\n", + "for img in first20:\n", + " n = round(img[\"sample\"])\n", + " e = np.sum(er[0, n - 1:n + 2] ** 2)\n", + " lvl_errs.append(10 * np.log10(e / img[\"amplitude\"] ** 2))\n", + "r3 = np.max(np.abs(lvl_errs))\n", + "print(f\"R3 worst level error: {r3:.4f} dB\")\n", + "assert record(\"R3 ER levels\", \"ISM\", f\"{r3:.4f} dB\", \"<= 0.5 dB\", r3 <= 0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "8d2f3340", + "metadata": {}, + "source": [ + "## R4–R5 — the tail does what the RT60 knob says\n", + "\n", + "Schroeder backward integration of the octave-band-filtered omni (W) channel of\n", + "the full rendered IR. T20 (fit −5…−25 dB, ×3) must land within ±10% of the\n", + "parameterized RT60 in every band 250 Hz – 4 kHz; EDT (fit 0…−10 dB, ×6) within\n", + "±25%. Both architectures are held to the gate. Note the EDT numbers carry a\n", + "structural +15–20% bias: the v1 image-source field is frequency-flat (Eyring\n", + "decay ~0.73 s) while the tail decays per band — the early decay of every band\n", + "is dragged toward the flat rate for the ER's 30 ms. That is a documented v1\n", + "property (frequency-dependent wall absorption is the v2 fix), not an FDN or\n", + "convolution artifact." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "68cc46b5", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:10:57.960468Z", + "iopub.status.busy": "2026-07-03T23:10:57.960246Z", + "iopub.status.idle": "2026-07-03T23:10:58.316919Z", + "shell.execute_reply": "2026-07-03T23:10:58.315702Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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O8DMmTP53//+x8iRI5kzZw6HDx9m+fLlbN++Hag9uf72228ZOHAgc+bMQalUsnXrVlxdXfniiy+YOXMmb731FmPGjGH69OnExMSwd+9ewsPDmzV/S2zcuLHeycr5VyrPpVdUVHDo0CGWLFnCbbfdxv333w+Aq6sry5cv5+abb2bfvn2MGDECGxsbjh49yubNmzl8+DBfffUVu3fvZuzYsSiVSr766ivGjx/f4vV6OZpapy3l5uaGt7c3L730En369LGOevT666/z5ptv4uTkxPLly8nLy7usuG+99Va++eYb5s+f36xyNBXD5WyLy623AAsWLGDAgAEXbSg8//zzJCUloVKpePvtt3n22WfR6/WXtH6vxjZpaj00VDeuxD77yCOPkJCQwB133GG9tXtu1KMrsW3O15J60tTx7pzGtuvNN9/Mvffei5eXl3X0m5iYGNLT01m7di1Q+zhcXFwcH330Ed27d2fXrl1ERkY2eRLYkODgYP75z38yfvx4HnnkEUpLS3nnnXf43//+hyRJ+Pv7WxtF99xzDx4eHhw+fJi9e/cSGxtLSEgId9xxBzfddBPz588nJyenzshkTc3fEnFxcfWGyB06dKj1Suq5dIPBQEJCAkuWLMHf37/OS41+/PFHRo8eTbdu3ZgxYwaenp6cPn2aVatW8f3331NYWMgzzzzDtGnT8PT0ZNmyZXTr1q1Zd2ovhb+/P88++yzjx49n/vz5ODs7s2zZMj744AO6det20W3TXHfccQfPP/88ZWVlTZ6UdOrUic8++4ySkhICAwNp164dJpOJJ554gujoaGJiYvj999/p16/fJZf51ltvpVu3btbGdFN1KCgo6KIxHDp06JK32eXWb4AffviBnTt3XrShsHz5chQKBeHh4Xz11VcMGjSIAQMGcPbs2Rav36bWx6Vozn56Yd0YMmTIZe/bP/74I++++y5vv/02P//8s3X6uHHjrsi2OV9L6klTx8VzGtuuQJPrJjc3lwMHDvDLL780a13BNXwzs7u7O8ePH2fw4MGcOnWKkydPMnXqVOLj461DPz722GOsWbMGs9lMYmIir776qrWRMGHCBIKCgqzLU6vVzJkzx/qcVUPpu3fvZtasWcTFxeHt7U1cXJz15EiSJNasWcNTTz1Feno6Z86c4bbbbrOeMKjVanbt2sXIkSM5cuQIgwcP5ocffrDu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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " band RT60 | fdn | conv \n", + " | T20 err EDT err | T20 err EDT err\n", + " 250 0.90s | +5.1% +1.5% | +9.6% +2.6% |\n", + " 500 0.84s | -0.9% +10.5% | -2.3% +10.7% |\n", + " 1000 0.76s | +3.1% +11.5% | -3.5% +4.8% |\n", + " 2000 0.66s | -6.0% +20.8% | -1.5% +7.7% |\n", + " 4000 0.54s | +2.8% +21.1% | +0.6% +12.9% |\n" + ] + } + ], + "source": [ + "fig, axes = plt.subplots(1, 2, figsize=(9, 3.2), sharey=True)\n", + "for ax, kind in zip(axes, (\"fdn\", \"conv\")):\n", + " w = RES[kind][\"ir\"][0]\n", + " for i, c in enumerate(RT60_BANDS):\n", + " edc = schroeder_db(band_filter(w, c))\n", + " tt = np.arange(len(edc)) / FS\n", + " ax.plot(tt[::64], edc[::64], color=PAL[i], lw=1.2, label=f\"{c} Hz\")\n", + " ax.plot([0, P.rt60[c]], [0, -60], color=PAL[i], lw=0.8, ls=\"--\", alpha=0.5)\n", + " ax.set(xlim=(0, 1.6), ylim=(-80, 2), xlabel=\"time (s)\",\n", + " title=f\"Schroeder EDCs — {kind} tail (dashed: parameterized slope)\")\n", + "axes[0].set_ylabel(\"EDC (dB)\")\n", + "axes[0].legend(ncol=2)\n", + "plt.show()\n", + "\n", + "print(f\"{'band':>6} {'RT60':>6} | \" + \" | \".join(f\"{k:^21}\" for k in RES))\n", + "print(f\"{'':>6} {'':>6} | \" + \" | \".join(f\"{'T20 err':>9} {'EDT err':>10}\" for k in RES))\n", + "rt_results = {k: {} for k in RES}\n", + "for c in RT60_BANDS:\n", + " row = f\"{c:>6} {P.rt60[c]:>5.2f}s |\"\n", + " for kind in RES:\n", + " w = RES[kind][\"ir\"][0]\n", + " t20e = t20_band(w, c) / P.rt60[c] - 1\n", + " edte = edt_band(w, c) / P.rt60[c] - 1\n", + " rt_results[kind][c] = (t20e, edte)\n", + " row += f\" {100*t20e:>+8.1f}% {100*edte:>+9.1f}% |\"\n", + " print(row)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "81cc8834", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:10:58.319144Z", + "iopub.status.busy": "2026-07-03T23:10:58.318936Z", + "iopub.status.idle": "2026-07-03T23:10:58.323438Z", + "shell.execute_reply": "2026-07-03T23:10:58.322215Z" + } + }, + "outputs": [], + "source": [ + "# VERIFY R4/R5 for both architectures.\n", + "for kind in RES:\n", + " worst_t20 = max(abs(v[0]) for v in rt_results[kind].values())\n", + " worst_edt = max(abs(v[1]) for v in rt_results[kind].values())\n", + " assert record(\"R4 T20 per band\", kind, f\"worst {100*worst_t20:+.1f}%\",\n", + " \"+/-10%\", worst_t20 <= 0.10)\n", + " assert record(\"R5 EDT per band\", kind, f\"worst {100*worst_edt:+.1f}%\",\n", + " \"+/-25%\", worst_edt <= 0.25)" + ] + }, + { + "cell_type": "markdown", + "id": "59ce11b7", + "metadata": {}, + "source": [ + "## R6 — clarity tracks the distance parameter\n", + "\n", + "C50 and C80 from the rendered IR versus the closed-form prediction of the\n", + "parameterization (exact image energies below the ER cutoff + the\n", + "exponential-tail model at the calibrated tail level), within ±2 dB — and\n", + "strictly monotone decreasing across the 1.2 / 2.4 / 3.6 m sweep. This is the\n", + "objective shadow of the listening protocol's distance-ranking question." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "30c3027b", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:10:58.325628Z", + "iopub.status.busy": "2026-07-03T23:10:58.325384Z", + "iopub.status.idle": "2026-07-03T23:11:02.633897Z", + "shell.execute_reply": "2026-07-03T23:11:02.632612Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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siA4iQULFshubm6yxWLJcbs1a9bI33zzjTx79my5R48esoeHh7x7925ZlmV506ZNskKhkM1ms3X7uLg4GZAPHz6c6VgpKSmyp6envGfPHlmWZdlsNssVKlSQf/75Z1mWZfmHH36QmzZtarNPeHh4luU6evSo7OLiIkdGRlqXDR8+XA4KCrK+9vDwkA8cOJCrY7u4uMhHjhzJ8XfRrl07ecGCBdbXSqVSnjt3rvX1mjVr5AoVKsiyLMtnzpyRVSqVfPr0aev6xMREOSEhQT5//rys0Wjk69evW9dt2bLFpuyCIAj3O3PmjAzIR48ezXG7yMhIuX379nKXLl3kwYMHy3Xq1JF/++03WZbT6yDAWgdnqF69uvzFF19kebwWLVrIn3zyifV137595VGjRsmyLMtXr16VFQqFrNfrreuzq7P1er3s4+Mjr1271rps+fLlMiBfuXJFlmVZ7tixozx79uxcHbtdu3bynDlzcvxdTJo0SR4wYID1datWreR+/fpZX8fGxsqAHBERIZtMJtnf319evHixdb3ZbJYjIyNlk8kkBwUFWT+rZDn9s87Dw0O+dOlSjmUQnJfoviI4DaVSidlsxmKx2HRVedD9LSrjxo1jxIgRvPvuuxw8eBBJkpBlGYvFYu2yYTabAWy6cGTw8PCgb9++fP/99zRv3py///6b5ORkevbsCUCXLl344osveP755+nQoQNt2rSxufV4vxMnTlCnTh2bwU0dOnRg3bp1WW6fl2NniI6O5rfffuPGjRvodDru3LnDpUuXbLZp2rSp9f8VK1bk9u3bABw+fJiqVatSr1496/qMW6Rr167F3d3d5i6AXq8nNjaW2NjYXPeDFwSh5Miop41GY47b7dixg8uXL/Piiy9SqlQpLl68yMqVK+nevTuSJAH/1dMZzGZzlnU2wCuvvMKsWbN47733uHfvHn/88Qf79u0DoHLlyjz//PO0atWK5557jhYtWtC4ceMsj3P9+nUSExNtWqbv//+D8nLsDKmpqaxZs4aLFy+SnJzM1atXM023eH+dHRgYiIuLC7dv3yYtLY07d+7YfOYpFArKly/P1atXiY2NZdu2bezdu9e6XqPRcObMGapXr55juQTnJLqvCE6jQYMGGAyGPA+Uefrpp62zsYSEhCDLMjdu3LCuj4iIAMh2FpNXXnmFX3/9ldTUVH744Qf69++Pq6srAAEBAZw8eZKPPvoIs9nM888/z//+978sj6NWqzN9OOX0YZWXY0P69Ir16tXj4MGDBAQEULNmTXx9fUlOTrbZ7sEvNPK/g6k0Gg0GgyHLYyuVSlxcXGwGzz722GN888031t+FIAjC/apWrYqXlxeHDh3Kdhuz2cyIESOYOXMmM2fOZPz48fzzzz/8888/rFmzBi8vL0qXLm2tpyG93oyOjqZSpUpZHrNPnz7cvHmTAwcO8PPPP1OjRg0aNmwIgCRJrFq1ip9//png4GCmTZtGmzZtMJlMmY6TMfvL/etyqrPzcmxIr3tbtGjBd999h4eHB9WrVyc4OPihdXbGvhndOLOqtzP2qVGjhk29PXXqVOrUqZNtDIKTc2g7vSA8oE2bNvJTTz0l375922b50aNH5Zs3b8oxMTHymTNnrMstFovcu3dvuV27dtbXVapUkSdMmGDdZvjw4XKTJk1yPG+1atXkr776SnZ1dbW5FXvkyBH5zp071td//PGHHBgYmOUxLl68KKvVapvuIb169cq2+8rDju3n5yfv2rXL+nrVqlVy1apVra/1er1cv359eciQIdZlSqVSPnHihE35XVxcZFmW5evXr8sajUb+66+/rOuvXbsmx8bGytevX5c9PDzk48eP28R0/7aCIAgPmjBhghwQEGBTL8uyLEdFRclHjx6VLRaL7O3tLc+fP9+6Lj4+Xvbw8LB2YXnppZfktm3bWrsdLl++XPbw8JATEhKyPe/gwYPl1157TX7yySflL7/80ro8IiJCPn/+vM25APny5cuZjmEymeSyZcvKCxcutC6bPXt2tt1XHnbsHj16yDNmzLD5HQByTEyMddnQoUPlGjVqWF+3atVK/uabb2zKldF10WKxyJUrV5YnTpxoXZecnCyfOXPG+ll3/+9VlmV53759clJSUra/N8G5ie4rglNZvXo1/fv3p3r16jRv3pzSpUtz6dIlZFlm3bp1KJVK68j0ChUqcPjwYZKTk9myZQuQ3pKxaNEievTowalTp9Dr9Rw6dIi///47x/MOHjyY8ePHU716dWuLC0BiYiJPPfUUderUwdfXlz///JOXX345y2PUqFGDd999l1atWtG1a1euXr2a6Zbs/R527DZt2vDGG2/w9NNP07x5c1q2bMndu3dp164dISEh7Nu3L9vbu1kJDQ3lq6++onfv3rRr1w4X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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(1, 2, figsize=(9, 3.0), sharex=True)\n", + "clar = {k: {50: [], 80: []} for k in RES}\n", + "clar_analytic = {50: [], 80: []}\n", + "for kind in RES:\n", + " for pd, r in SWEEP[kind]:\n", + " td = pd.distance / rm.SPEED_OF_SOUND\n", + " for t_ms in (50, 80):\n", + " clar[kind][t_ms].append(clarity_db(r[\"ir\"][0], t_ms, td))\n", + " if kind == \"fdn\":\n", + " clar_analytic[t_ms].append(analytic_clarity_db(pd, r[\"images\"], t_ms))\n", + "for ax, t_ms in zip(axes, (50, 80)):\n", + " ax.plot(DISTANCES, clar_analytic[t_ms], \"k--\", lw=1, label=\"analytic\")\n", + " for i, kind in enumerate(RES):\n", + " ax.plot(DISTANCES, clar[kind][t_ms], \"o-\", color=PAL[i], label=kind)\n", + " ax.set(xlabel=\"source distance (m)\", title=f\"C{t_ms} vs distance\")\n", + "axes[0].set_ylabel(\"dB\")\n", + "axes[0].legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "534a9607", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:11:02.636184Z", + "iopub.status.busy": "2026-07-03T23:11:02.635968Z", + "iopub.status.idle": "2026-07-03T23:11:02.641612Z", + "shell.execute_reply": "2026-07-03T23:11:02.640558Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[fdn] worst |C50/C80 error| 0.56 dB, monotone: True\n", + "[conv] worst |C50/C80 error| 0.58 dB, monotone: True\n" + ] + } + ], + "source": [ + "# VERIFY R6: +/-2 dB of the analytic parameterization, strictly monotone.\n", + "for kind in RES:\n", + " errs = [clar[kind][t_ms][i] - clar_analytic[t_ms][i]\n", + " for t_ms in (50, 80) for i in range(len(DISTANCES))]\n", + " worst = max(abs(e) for e in errs)\n", + " mono = all(np.all(np.diff(clar[kind][t_ms]) < 0) for t_ms in (50, 80))\n", + " print(f\"[{kind}] worst |C50/C80 error| {worst:.2f} dB, monotone: {mono}\")\n", + " assert record(\"R6 C50/C80 vs analytic\", kind, f\"worst {worst:.2f} dB\",\n", + " \"+/-2 dB\", worst <= 2.0)\n", + " assert record(\"R6 monotone in distance\", kind, str(mono), \"strictly decr.\", mono)" + ] + }, + { + "cell_type": "markdown", + "id": "f6901d33", + "metadata": {}, + "source": [ + "## R7 — SH order balance of the late tail (architecture gate 1)\n", + "\n", + "Tail (t > 80 ms) energy per SH order, normalized per channel of that order and\n", + "SN3D→N3D equalized, must be flat within ±1.5 dB — an FDN that feeds orders\n", + "unevenly renders a diffuse field whose timbre changes with playback order.\n", + "The isotropic reference validates the metric: a field that *is* diffuse by\n", + "construction measures flat." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "faf8e5ae", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:11:02.644061Z", + "iopub.status.busy": "2026-07-03T23:11:02.643871Z", + "iopub.status.idle": "2026-07-03T23:11:02.774519Z", + "shell.execute_reply": "2026-07-03T23:11:02.773324Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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xN27d+Hg4IBPPvlELwn6448/8Oabb+LXX39FjRo14OzsrLd8rVq1YGdnB3d3d3h7e8PT0xMAUKdOHXh7e8PLyws3b95EmzZt9HoZijrmoDBxBgcHY+3atXB2dsa6dev0DuribOewYcMwf/58ODg44MCBA+jXr598jdLOzg4ff/wx8r6EdcmSJbh165bR5EAIgdjYWL1/zMDTM8EePXogKioKVapUwTvvvIOPP/5Ynj9jxgwEBwdDo9EgJycHffr0we+//663fM+ePREdHY369eujSpUqBuueNm0agoKCkJaWhqysLAQFBekNTAwODkZMTAycnJwwc+ZMzJw5U57XqFEjeHt7o169eti7dy/8/PyQmZmpt/4+ffrku3xB8wvavqKwtraGTqczGLPQtGlTvenXX38djRs3xvz58/OtK+8/WwBIS0uDi4vLc9ffuHFjvPvuu1i9evVzy33//fdISEjAkCFD8NNPP6FWrVoYNWoU9u7dC51OZ1C+POMtqH3eeOMNzJ07Fw4ODti7dy/69+8vHyMqlQpLly6FSqWSy8fFxemtr6Dv17PyjklwcXHR6/W9ffs2Nm3aJCefRY39nXfeMVhfgwYNcO3atefuxzIhqNT4+voKf39/MXnyZDF69GhRs2ZN8fHHH+dbvnv37mLixIl6nx0+fFhs3rw532VcXFzE5MmT5elbt24JpVIpoqOjxd27d4W1tbW4cOGCPP/kyZPC0dFR5OTkyMvPnDnzudsREBAgpkyZIk8nJiYKW1tbsXfvXiGEENOnTxf16tUTWVlZQgghVCqVcHR0FNu3b5eXWblypQAg4uLihFqtFjVq1BAbN26U59+/f1/Y2tqKmzdvCiGE8Pf3F0FBQc+Nq2vXruK77757bpnQ0FAxZswYebpHjx7iq6++ync6r8LGOXLkSHl+QkKCACASEhKKtZ0nTpwQtra24sGDB/JnEydOFHXq1BFCCJGdnS3c3NzE7t27hRBCZGZmimrVqolt27YZ3Yb09HQBQERFRel9DkCEhYXJ0+fOnROWlpbizp07IiYmRlSpUkXcuXNHnr9jxw45htzlFy1aZHSdQggRHR0tlEqluHz5svzZ48ePhSRJ8vLLli2T561fv154enrmW1/Xrl3Ff//7X731P2/5580vzPZVqVJFnDlzJt94nhUSEiJsbW1F165dRUhIiNixY4fQ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hw4YOHAgateurVdu48aNuHjxojx99uzZfOuMi4vD119/jcuXL6Nhw4bIyclBs2bNsHbtWowaNQoA8Pbbb2Py5MkAgD/++AP37t3DlStXoFQqcenSJbRo0UKub8+ePTh8+DAuX74MOzs7aLVatGjRAocOHUKtWrWgUqnwww8/oH379vnGpFKp8PPPP6N58+YQQqBRo0Y4ceIEunXrVpzdRlRpsAeBqBJbtWoVDh48iFatWmHfvn1o0qQJtm3bpldGrVYjKytL/lGr1fnWFxUVBR8fHzRs2BAAYG1tLZ+95+revbv8e2RkJHr27Cm/Rc/X1xeenp7y/IiICFSvXh3ffvst5s+fj88//xw2NjaIjo4GANjZ2T03OQAAZ2dnNG/eHACgUCjg6emJBw8eFGLvEFVu7EEgquSaN2+O5s2b44MPPsC8efMQFhaGgQMHyvPffPNNDB48WJ5evnw5li1bZrQuIYTeJQsAsLCwkC8xAICtra3e/GfL553WaDSwsLBAenq6/Fnfvn3RsmVLo3UZkzv+IW/9fIktUcGYIBBVUg8ePIBKpUKDBg3kzywtLV+ozpYtW+Ly5cu4e/cuPDw8oNFosGfPHkybNs1o+VatWiEsLAxarRaWlpa4fv263jMQOnbsiK1bt+Kzzz6DtbU1gKfjCjQaDSRJeqFYiej5mCAQVVIqlQp9+/aFj48PfHx8cPfuXWzatAk//fRTsev08vLCxIkT0bVrV7z++us4duwYHBwcMHLkSKPlhwwZgoULF6Jr16545ZVXsGvXLlSvXl2eP2DAAKxduxZt2rRB3759kZycjOPHj+PPP/8sdoxEVDhMEIgqqQYNGiAmJgZ//fUXLl26hI4dOyIsLAxeXl5ymffee8/grgY/Pz9MmDAh33q/++47DBgwAFFRUZgyZQqGDh0qjzGYPn06qlatKpe1srLC4cOHsW7dOqSnp2PLli3Yt28fGjVqJJf5/fffcfDgQZw9exbe3t744osvUL16dSQlJeGjjz567ja6uroalMkdmElEz6cQvBhHREREz+BdDERERGSACQIREREZYIJAREREBpggEBERkQEmCERERGSACQIREREZYIJAREREBpggEBERkQEmCERERGSACQIREREZYIJAREREBv4/GS2rbuOSoP4AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[fdn] per-order deviation: [ 0.16 -0.05 -0.02 -0.09] dB (max 0.16)\n", + "[conv] per-order deviation: [ 0.19 -0.13 0.01 -0.08] dB (max 0.19)\n" + ] + } + ], + "source": [ + "r7 = {}\n", + "fig, ax = plt.subplots(figsize=(6, 3.0))\n", + "width = 0.25\n", + "for i, (name, sh) in enumerate([(\"fdn\", RES[\"fdn\"][\"tail\"][:, N80:]),\n", + " (\"conv\", RES[\"conv\"][\"tail\"][:, N80:]),\n", + " (\"isotropic ref\", ISO)]):\n", + " db = per_order_energy_db(sh, P.order)\n", + " r7[name] = db\n", + " ax.bar(np.arange(P.order + 1) + (i - 1) * width, db, width,\n", + " color=PAL[i], label=name)\n", + "ax.axhline(1.5, color=\"k\", lw=0.8, ls=\":\")\n", + "ax.axhline(-1.5, color=\"k\", lw=0.8, ls=\":\")\n", + "ax.set(xlabel=\"SH order n\", ylabel=\"dB re. mean\", ylim=(-2, 2),\n", + " title=\"R7: per-order tail energy (per channel, SN3D->N3D equalized)\")\n", + "ax.set_xticks(range(P.order + 1))\n", + "ax.legend()\n", + "plt.show()\n", + "\n", + "assert np.abs(r7[\"isotropic ref\"]).max() < 0.2, \"metric sanity: diffuse field must read flat\"\n", + "for kind in (\"fdn\", \"conv\"):\n", + " worst = np.abs(r7[kind]).max()\n", + " print(f\"[{kind}] per-order deviation: {np.round(r7[kind], 2)} dB (max {worst:.2f})\")\n", + " assert record(\"R7 SH order balance\", kind, f\"max {worst:.2f} dB\",\n", + " \"+/-1.5 dB\", worst <= 1.5)" + ] + }, + { + "cell_type": "markdown", + "id": "35722804", + "metadata": {}, + "source": [ + "## R8 — tail isotropy in the SH domain\n", + "\n", + "|rE| of the late tail (t > 80 ms) in 20 ms windows, energy-weighted average\n", + "≤ 0.1. The isotropic reference's value is the estimator's noise floor\n", + "(~0.03): even a perfectly diffuse field does not measure 0 in finite windows." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "f49bce87", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:11:02.776889Z", + "iopub.status.busy": "2026-07-03T23:11:02.776692Z", + "iopub.status.idle": "2026-07-03T23:11:02.914913Z", + "shell.execute_reply": "2026-07-03T23:11:02.913676Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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77+fzZkzx/l7YGCALVmyhC1ZsoQ988wz7IQTTmDnn3++s60bb7yR7bfffs4yuVyOrVixgiWTSfbd736Xvfjii+y///u/WTKZZKtWrXLdp9d26u3bbazVf7vR1tbGli9fzhhj7Ne//jWTJImdffbZ7LnnnmMrVqyoOcZ+26jG3uZJJ53Enn32WXb33XezZDLJHn74YcYY8z02bmPy45133mEA2DvvvMMYY+yTn/wku+CCCyqW+fKXv8yOP/54zzGLosguueQS9vzzz7PbbruNcRzHDj30UHbXXXexF198kS1YsICde+65zjoXXXQRO/HEE9lzzz3HHn/8cXbKKad4fr9nnXUWu+mmmxhjjP3lL39hbW1t7KijjmKMWedwJBJxxl79HdrH48ILL2SLFy9mv/vd71gkEmGLFy9mjFnnezQaZbfddhtbvHgx+8QnPsEkSWI33ngjY4yx1157jcmyzG6++Wb2/PPPs8985jOsra2NdXV1NTy2an75y1+yD33oQxWv+Y3H75yud1z9joXfueU3Nr9rQ9Bzd7Djczv3b731VtbZ2ckWLVrEnnrqKXbEEUcwnufZs88+y0zTZNOmTWOLFi1yxvj000+zVCrFstms62dYvnw5kySJ5XI5xhhjH/3oR1lbWxv761//yhhj7JZbbmGnn366s/wXvvAFdtBBB7E///nP7Nlnn2Xz5s1jF198sfP+AQccwP74xz86f59xxhns6KOPZk8//TR74IEH2NSpUxkAVigUGGOMzZgxg40fP5796le/Yi+++CI755xz2GGHHcYYY2z16tVs2rRp7NZbb2VLlixhK1euDDSGs88+mx1xxBHs6aefZvfffz+bMmVKxT6rscdwzz33sOeff54dccQRbNasWc41695772WyLLN///vfgY/DihUr2JIlS9hrr73G7rzzTpZKpdiSJUtq9un2uW3+93//l82cOdN1zCEfTMKgO2RM89e//pUBYIceeig75JBDWHNzMzvhhBPYjh07Kpa75557WFNTEzvggANYKpVit9xyi/OeaZpsyZIlbGBgwHUffoFrX18f4zjOWf+3v/0tO/TQQyuWufTSS9lnP/vZitc+97nPsWuvvdZzu27b8dv3cATdLS0tFTen8mNc/u+Xv/yl6zaq+fWvf83i8Tjr7+93XrvpppvYRz7yEcaY/7FxG1M9crkcO+KI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HtJvvfXWmmvAF77wBdx77734zW9+U1F43NHRUVEMbbNgwQIsW7YMjz76KBYsWABCCObPn48bb7yxYmZjzpw5mDFjBv72t7/hkEMOwdy5c7H//vvjySefRDKZrBnvwQcfjNbWVsfNRtM03H777YGOjU1LS0tFwbLfGObMmYOOjg7893//96D36YffGDZu3AjTNPGFL3wBxx13HPbaa6+K30RQXnrpJZx66qnDOvaQsU0YdIfsduy///644IIL8N3vfhcAcP3112P69Ono7OzEgQceiEmTJoEx5kyzmqaJN954o0IqUI8vf/nLuOOOOzBr1ixMmTIFL774IqLRqPP+cccdB0mSsNdeezmuI1deeSUuu+wyHHjggZg9ezbGjx+Pb3/725g5c6bnfty247fvkcI0zRr3kkY8xGfNmoV77rkH++yzD6ZMmYJEIoEbb7wRAAZ1bKr55je/ibfeegvvvfcePvKRjzhjfPzxxwEABx10EO644w6cccYZ2HffffGRj3wEX/3qV3HiiSc2diDq0Nraiv322w/77bcfJk6cCF3XceWVV3ouv2DBAmzcuBEnnHACACtAUVUVM2fOHJKN4Re/+EUcdNBBmD59OmbNmoWvf/3rOPzww533r7nmGhx//PHYZ599MHv2bMybNw/f//73K+wzhzK2z372s3jggQcCj8fvnG70uJbjd275jc3v2jDUc3cw6//kJz/BihUrMGnSJOcBJJVKVWRcjz76aHR2dqKvrw+f+MQnfMcxYcIE7LffflAUBXPmzAEAnHDCCdi4cWPFQ5YoinjkkUfwzDPPYPz48dh///0xZcoUz5moSCSC+++/H7fccgv22msvTJkyxbG/rM4Qe3H55Zfj61//Og455BBcffXVvmOIRCL4/e9/j9tuu83ZZ7XsZaj4jeGQQw7BCSecgOnTp+NDH/oQ5syZ4yR5gvLGG28gl8tVyJ9C9gB2tag8JKQe/f397PXXX695vaenh73++uuMUuq81tXVxZYtW8a2b99esaxfsVRPTw979913K17LZrNs2bJlbOvWrYwxxt58882KAhhd19nKlSsd1xEbTdPYypUrWXd3d6DP57adevuuHqvb2KspL4Ls6uqqKYjs7+933CXK/7333nuu26jm17/+NTviiCMYY4xt2bKFbdq0yXU5r2PjNqZq1q1b5zpG25HDJp1Os7ff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bMANN9yAK6+80lz+t7/97QnRrva9730vOjs7MXPmTGzevBmvv/46Zs+enbfc/v37ceqpp+L66683X/vhD3+I+vr6itZzvPHRj34UGzduxEknnYRXX30VL730UsEL7ltvvYVf/OIX5t9vvvkmli5discffxzRaBQ1NTX48Ic/bL7/zW9+E/PmzZuITZhU7rjjDkQiEfzP//wPurq6it60AMDXvvY1PPjggzjjjDPwyiuv4IknnsDll19e9r3jmW984xs4evQo/vznP2Pjxo1Fg72hoSG8//3vByEEtbW1WLt2LR599FFcddVVAIDFixfjpJNOQiAQAKAnHVatWjVRmzFp3HfffdixYweee+45/OlPf8IVV1xRdNmLL74YTqfT3EevueYa83z46KOP4vbbb8dFF12ETZs24Wtf+xruvPPOCdmGyeQ3v/kNXn31Vfzzn//E9773PXz84x8vuuztt9+OeDwOQI9nVq9ejWPHjqG+vh4f+tCH0N3dbd4sX3TRRfjXf/3XidiESeWOO+7AmjVrcPLJJ+OVV17Bxz72Mdx3330Fl33nnXewatUqnHfeedi9ezcuvPBC/P73vy/7XlWh04wf/vCH9IorrqCUUqppGr3kkkvob3/724qXrWQ9xxN/+tOf6GmnnUYVRaGUUvrBD36Qfu973yu47Msvv0xDoRCllFJVVenKlSvpQw89RCmldP369fS8886bmEFPIdasWUPnzJlD4/E4pZTSO++8k372s58tuOy+ffvovHnzxrye44nt27fTmpoaOjw8TCml9Pvf/z694YYbLH126dKl9B//+AellNJIJEI9Hk+1hjkt4Hmednd3F32/r6+Put1uevjwYUoppQ899BA966yzyr53ojBjxgy6efPmou93dXXR1157zfz7Zz/7Gb3ooovMvxctWkR37dpVxRFObU477TS6evXqkstcdNFF9OWXX857XdM0OnfuXPrcc89RSindtm0bra2tpbFYrBpDnZJcddVV9A9/+IPl5X/yk5/QD3zgA+bfH/zgB+mjjz5ahZFNbZ5++mnz33v37qUcx9FoNFpw2euuu47ec889lFJKQ6EQra+vpzt37iz7XjWZdpruDRs2mHfKhBBcd911WL9+fcXLVrKe44kNGzbg2muvNWUg119/fdHtvvjii80sDsfpu0r2o9hIJIInnngCL730EmRZrvLIpwYbNmzAlVdeaT4RKTV/AJBKpfDkk0/ihRdeMDukjmY9xwsbNmzAJZdcgmAwCMD6dr/22msQRRGXXXaZ+ZqmafjrX/+K//3f/815zM/QeeONN7B06VLMmjULgD7Xb7zxBiRJKvkeQ6elpQVnnXWW+TfP83lSlJdffhlPP/00jh07NtHDmza89tpreOqpp3KkEF1dXejq6jKflC5duhR1dXXYsWPHZA1zyvPAAw/g3/7t33Jee/fdd/HnP/8Ze/bsmaRRTTzXXnut+W+e5+HxeIpKg7PjvEAggEsuuQQbNmwo+141mXZBd19fn/l4HgAaGhrQ29tb8bKVrOd4YrTb/dOf/hTBYNB8lNjU1ISVK1fib3/7mylBGRgYqNq4pwqVzJ/f78eqVavw7LPP4hvf+AYWLFhgXnjY/qfT0NCA/v5+aJpW8nO/+93v8K//+q/mzZ/NZsNNN92Ep59+Gv/3//5fzJ8/H5s3b67q2KcbI+fa7XbD5XKhr6+v5HuMfA4ePIj77rsP3/rWt8zX/uVf/gWvv/46fvvb3+Kkk07Co48+OokjnJpcccUV2L17Nx566CGccsop+PnPfw5A3zdra2vN4xk4cc6Bo+G1115DOBzOkX9ddNFF6OnpwWOPPYazzz4b3/zmNydxhBOPJEn45Cc/iXvvvbdgLZmmaRgcHCx4nS31XrWZdoWUgUAA0WjU/DsSiZhZs0qWrWQ9xxOj2e5f/vKXePLJJ7F69WrzJLlgwQI8+OCD5jLXXXcdfv3rX+Mb3/hGNYY9Zahk/hobG3Pm6NOf/jR+9KMf4Re/+MUJvf/t3r3b/DsSicDv9+dcfEcSjUbx5z//GVu3bjVfczgcOXP77W9/G/feey+efPLJqox7OjJyHzNqV4LBYMn3GLns378f73//+/HAAw/glFNOMV///ve/b/77ueeew+c+9zncfPPNkzHEKct//Md/mP9+6623cNFFF+H222/P2/+AE+ccOBpGJh0A4DOf+Qw+85nPAAAOHz6MBQsW4Etf+hJqamoma5gTRjKZxA033IALL7wQd9xxR8FlOI6D1+tFNBo1C+wjkQhOOumkku9Vm2mX6V66dCk2btxo/r1x48ai1aullq1kPccTlW73fffdh0cffRSrV68u6XLS3t6edxI9HhnLfpM9Ryfy/rdp0ybQdP22le1+7LHHcNZZZ5lSiEKcKPtfJSxduhSbN282ZU2vvvoqZs6cCa/XW/I9RoadO3fiiiuuwP33349LL7206HJs/ytPe3s7JEmCLMtoa2sDIQTbt28HoBetHjhwAIsWLZrkUU49jKRDqSLJpqYm2Gw2xGKxCRzZ5BCLxXDVVVfhrLPOynnyVIjs6yylFJs2bSoYA458r5pMu0z3v//7v+PUU09FXV0dFEXBs88+i507dwIADh06hB07duDqq68uu2yp945nPvrRj+Lee+/FnXfeidraWvzqV7/C66+/DkC3z1m/fj0+8IEPAAB+9atf4bvf/S6+//3vm9Z3p512GpYtW4bXX38du3btgqqq2LJlC/74xz9OiB5qsrn++uvxH//xH/jEJz6BhQsX4gc/+AGeffZZAEA4HMYzzzyDj370owCArVu34p133oGmadi9ezd+/etf45lnnim7nuOZSy65BD6fDx/4wAdwzjnn4L777sMvf/lLAPrjwkceeQQ333wzHA6H+Znf/e53+OIXv5iznn379mHjxo2glOLQoUP4xS9+gV//+tcTui2TxerVq9Hb2wtKKR5//HG0t7eb2sSHH34YV155JWpra7Fw4UKcf/75uOaaa/C+970Pv/zlL/GlL30JAEq+d7yzdu1aHD58GPF4HM8++yx27NhhuuD85S9/wVlnnYUZM2bg2LFjuPjii3H11VfjyJEjePDBB+H3+3H99ddjaGjIPF77+/vx61//Gp/4xCcmc7MmDOPcPzg4iBdffBE9PT34yEc+AkEQsHr1aixYsADz589HIpHA448/DkB33vj973+Pm2++2dTf3n777fjQhz6E2267DU8++SQ++MEPnhCWn8Z14ejRo+Y184YbboDP58PatWtRV1eHZcuWmcs/9thjOPPMM/OcrYwnfZFIBI888gguuOACtLW1TdRmTBrXXHMNRFHEzJkzzTkw5u/1118HIQRnnnkmAOALX/gCPve5z6GnpwdvvPEGfD4fLr744rLvVZNpl+meP38+XnnlFcRiMciyjA0bNqClpQWArhN7++23LS1b6r3jmfr6emzatAl2ux2Dg4P45z//aT5SCYVC2LRpk7ms0+nEDTfcgLfeegtr167F2rVr0dHRAUAPetauXYtNmzahrq4OmzdvxvLlyydlmyYSp9OJjRs3orm5GZ2dnfjLX/6CCy64AAAQj8exbt06c9kj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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "estimator noise floor (isotropic field): 0.033\n", + "[fdn] energy-weighted |rE|: 0.053\n", + "[conv] energy-weighted |rE|: 0.037\n" + ] + } + ], + "source": [ + "fig, ax = plt.subplots(figsize=(9, 2.8))\n", + "r8 = {}\n", + "for i, kind in enumerate((\"fdn\", \"conv\")):\n", + " vals, ens = re_windows(RES[kind][\"tail\"][:, N80:])\n", + " r8[kind] = np.average(vals, weights=ens)\n", + " tt = 0.080 + (np.arange(len(vals)) + 0.5) * 0.020\n", + " ax.plot(tt, vals, color=PAL[i], lw=1, alpha=0.7, label=f\"{kind} (per window)\")\n", + " ax.axhline(r8[kind], color=PAL[i], lw=1.5, ls=\"--\")\n", + "vals_iso, ens_iso = re_windows(ISO)\n", + "floor = np.average(vals_iso, weights=ens_iso)\n", + "ax.axhline(0.1, color=\"k\", lw=0.8, ls=\":\", label=\"gate 0.1\")\n", + "ax.set(xlabel=\"time (s)\", ylabel=\"|rE|\", ylim=(0, 0.5),\n", + " title=\"R8: late-tail |rE| per 20 ms window (dashed: energy-weighted mean)\")\n", + "ax.legend()\n", + "plt.show()\n", + "\n", + "print(f\"estimator noise floor (isotropic field): {floor:.3f}\")\n", + "for kind in r8:\n", + " print(f\"[{kind}] energy-weighted |rE|: {r8[kind]:.3f}\")\n", + " assert record(\"R8 tail |rE|\", kind, f\"{r8[kind]:.3f}\", \"<= 0.1\", r8[kind] <= 0.1)" + ] + }, + { + "cell_type": "markdown", + "id": "5e10154d", + "metadata": {}, + "source": [ + "## R9 — interaural coherence of the binauralized tail (architecture gate 2)\n", + "\n", + "The tail, binauralized through the KEMAR SH set exactly as\n", + "`dsp::binaural_renderer` does it (per-channel FIR convolution at 48 kHz via\n", + "the library's resampler), must sit within 0.15 of the diffuse-field coherence\n", + "reference in every octave band above 500 Hz — *track the reference, don't\n", + "chase zero*.\n", + "\n", + "**Broadband caveat, measured not asserted:** the protocol's broadband\n", + "IACC ≤ 0.3 target is unattainable through this render chain — the ideal\n", + "diffuse reference itself measures ≈ 0.43 broadband, because order-3 truncation\n", + "reconstructs both ears from the same smooth low-order field at high\n", + "frequencies (the order-5 curve below shows the same effect above ~2 kHz, and\n", + "MagLS makes it worse: 0.56). The broadband row is therefore reported as\n", + "FAIL-as-written for every architecture *including the reference*, and the gate\n", + "that decides anything is the reference-relative one (|Δ| ≤ 0.15, same\n", + "tracking rule the protocol already applies per band). This is flagged as a\n", + "proposed threshold revision for the protocol doc." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "d85e0894", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:11:02.917219Z", + "iopub.status.busy": "2026-07-03T23:11:02.917002Z", + "iopub.status.idle": "2026-07-03T23:11:03.270531Z", + "shell.execute_reply": "2026-07-03T23:11:03.269196Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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qqrq888/ry5YsEDf7nK51GeeeUa94447BnmkgtA3DQ0NKqAGAgH9sQcffFD90Y9+pP/829/+Vr3sssvUnTt3qlFRUWpUVJRqMBjUW2+9dSiGLPRAZLz3g8fjoaioiDlz5gBgMpmYPn06mzdvpq6ujpSUFD777DP9to8gRIJt27aRmppKdnY2AJMmTUJVVUpKSvj973/PI488QkZGBldfffUQj1QQ+m7dunXMnTsXo9EIwNFHH823334LwPz580lOTub222/nhBNOGMphCkK/fPfdd3oMAjB79my+++47Ro0aRUtLCy0tLZxxxhn6HUxh+BDLHe2HxsZGDAZDhyVaHQ4HjY2NxMfH09LSMoSjE4T9U19fT0xMTIfHYmJiqK+v54knnuDhhx8G0AMYQYgE+57XMTExuFwuAoEAH374IYBYbluIOE1NTdjtdv1nLQZp7+WXXx7kUQl9ITLe+yExMRFVVamvr9cfq66uJjk5eQhHJQgHJiEhocM5DW1BS2JiImazGbvdjt1ux2w2D9EIBaH/9j2v6+vrcTqdGI1GrFarCLqFiJSUlERNTY3+s4hBIocIvPeDoijMnDmT1157DYDS0lLWr1/PzJkzh3hkgrD/xo8fT11dHVu3bgVgxYoV2Gw2MjIyhnhkgrD/ZsyYwZdffklraysAS5cuFf9WCxFv3rx5vPXWWwQCAQBef/115s+fP8SjEvpClJr0YPPmzdxzzz189913uN1uzjvvPK688krmzJnDH/7wB37yk5/w1ltvsX79eq655hqSkpKGesiC0KsvvviCd955h02bNtHU1MSuXbu48cYbSUlJ4Ve/+hXHH388ixYt4r333uP222/HYDAM9ZAFoVcvv/wya9eupa6ujocffpj//ve/3HvvvUyZMoV58+YxZ84cpk2bxhtvvME777wz1MMVhD656aab2LNnDwAXXHABo0eP5ve//z2nnnoqf/3rX5k+fTqxsbHs2bOHBx98cIhHK/SF6OPdg8rKSj755JMOj82dO5fc3FwASkpKWLlyJTk5ORxxxBFDMURB6Lc1a9bw+eefd3jsoosuIj4+HoBly5axZcsWpk2bpvc7FoThTusxr5FlmV/96lcABINB3nrrLSoqKjj22GMZN27cUA1TEPrlnXfeoampSf85MTFRXxgnEAjw2Wef4fF4OOaYYzqsJSIMXyLwFgRBEARBEIRBIGq8BUEQBEEQBGEQiMBbEARBEARBEAaBCLwFQRAEQRAEYRCIwFsQBEEQBEEQBoEIvAVBEARBEARhEIjAWxAEQRAEQRAGgQi8BUEQBsG7777L9ddfzzPPPDPUQxkyy5YtG5DFa8LhMLfccgt+v38ARiUIgjB4ROAtCIJwkK1cuZJLLrmE7OxssrOzh3o4QyIQCHDVVVcxceJE/bHf/OY3bNq0qcN+X331Fffdd1+Px5JlGZ/Px+OPP35QxioIgnCwiMBbEAThIFuxYgUnnXQSv/zlLzn22GOHejhD4s033yQ3N1df+RfghRde0JfD1mzevJk33nij1+NdcsklPPjgg4g14ARBiCTKUA9AEAThUPb222/z8ssv09rayuWXX84FF1zAunXrmDJlCrt37+bbb7/l1ltvJTExkffff58vv/ySuLg4LrjgApKSkoC2Jc+feeYZioqKOProo6mpqdGXjvb5fFx33XU88sgjKErbP+nPPfcc6enpHYL87o59zTXX8Ktf/Yo333yTyspKfvzjHzNnzpwO7+H9999n+fLlJCUlcemll2K1Wnn55ZcxmUz85Cc/0ff7z3/+g6qqnHXWWZ0+h1deeYUlS5b067P76quveOmllzo8NmHCBK655homTJiAJEmsXLmS2bNn9+u4giAIQ0VkvAVBEA6i1NRUUlNTiY+PZ+rUqcTFxbF06VLOPPNMvvzyS8aMGYPZbObGG2/k+uuvx+l0snv3bqZPn059fT0AZ599Nk899RRxcXHcc8893Hjjjaxbtw5oK+F48sknCQaD+mt+9tlnrF+/Xv+5p2M/9dRTnHzyyTQ2NiJJEgsXLmTLli36c6+99lquvPJKrFYrxcXFXHTRRQA4nU5++9vfdnivt956K9HR0V1+DitXrmTatGn9+uy0z0z78+WXX7J161Z9+/Tp0/n666/7dUxBEIShJDLegiAIB9ERRxzBEUccQWlpKZdffrn++PHHH89TTz0FwK5du3jyyScpLCzUM9GBQIAnnniCJUuW8NFHH7F3716cTie//OUvyc/P7/Pr93TsW2+9FYA//vGPnHLKKQAUFxezdOlSCgoK2L59O08//TQ7duwgIyMDgPLycgAWLVqEy+Vi5cqVzJo1iy+//JKWlhYWLVrUaQzhcJjKykr99dt77LHHePfdd/Wf2wf9BQUFFBQUAPCvf/0Ls9nMAw88oG9PTk6mrKysz5+FIAjCUBOBtyAIwhCYOXOm/v/ffvstFouFP/zhD6iqiqqqbN++HY/HQ05ODlOmTMHpdAJgMpmYO3dun1+np2Nr2meiMzIyqKurA2DdunVMnDhRD7oB0tLSADAYDJx//vk8++yzzJo1i3/961+ce+65GAyGTmOQJAlZlgmFQp225ebmMmnSJP1nl8tFYWFhh31WrFjB7bffzvLly7HZbPrjwWAQi8XS589CEARhqInAWxAEYQiYzWb9/xVFwW63d+j4MXnyZHJzc3G5XJ3a5rX/WZbbKgbbTzJsv72nY+97DI12LLPZ3GPLvosvvpgZM2bwpz/9iddee42vvvqqy/0kSSI7O5vy8nJGjx7dYdsJJ5zAj370ow6PtQ+8S0tLOeuss3jppZc6dYQpKyvj+OOP73Z8giAIw40IvAVBEIbYzJkzaWpq4phjjmHMmDEA1NXVsWfPHsaOHcvGjRvZvXs3eXl51NXV8dlnnzFjxgwAbDYb0dHRbNu2jcMOO4zW1laWL1+uZ7F7OnZvZsyYwc6dO1m9ejVHHHEEAKtWrdKz9aNGjWLixImcf/755OTkMHXq1G6PtWDBAlavXs2CBQv6/Ll4PB5OOeUUbr31VubPn99hm6qqrF69mrvvvrvPxxMEQRhqIvAWBEEYYunp6TzwwAPMnTuXo446imAwyObNm3nmmWeYNm0av/zlL5kzZw4LFy7k22+/1cs9NJdeeilLlizhmGOOYePGjTgcjj4du6/jOu644zj22GOpr69n4sSJHcpkLr74Yi666KJee2+ff/753HLLLdx44419/lweeOABCgsLWb9+vV4fr3U1WbFiBampqR0y+YIgCMOdpIomqIIgCAfVt99+S2trK/PmzQPa2vPl5eUxduzYDvuVlZWxcuVKjEYj8+fP1+u6oa0rSHFxMbNmzeJPf/oTo0aN4pZbbtG3f/rpp1RXVzNv3jx27NhBXFwcU6ZM6fXYTz/9NOeccw5RUVH660iS1CG4Lioq4ptvviEtLU1/D5odO3Ywfvx4SkpKOl0Q7Gvu3Lk8+OCDHH744QC8+OKLzJ8/n6ysLH2fLVu2sH37dk499VRWrlzZoTsLQFZWFieeeCI//elPOeWUUzjjjDN6fE1BEIThRATegiAIEeaSSy7pFHgPlbvvvpuvvvqK999/v9d9t23bRkNDwwH33Q6Hw7zwwgtccMEFB3QcQRCEwSZKTQRBEIR+a2xs5IYbbuDVV1/l7bff7tNzxo0bNyCvLcuyCLoFQYhIIvAWBEGIMD/72c+IiYkZ0jEYjUZmzpzJpZde2qEsRRAEQeieKDURBEEQBEEQhEEglowXBEEQBEEQhEEgAm9BEARBEARBGAQi8BYEQRAEQRCEQSACb0EQBEEQBEEYBCLwFgRBEARBEIRBIAJvQRAEQRAEQRgEIvAWBEEQBEEQhEEgAm9BEARBEARBGAT/D852w5kOVl5XAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " band | ref | fdn (dev) | conv (dev)\n", + " 250 | 0.711 | 0.801 (0.090) | 0.698 (0.013) |\n", + " 500 | 0.086 | 0.164 (0.079) | 0.068 (0.018) |\n", + " 1000 | 0.182 | 0.197 (0.015) | 0.179 (0.003) |\n", + " 2000 | 0.320 | 0.393 (0.073) | 0.323 (0.003) |\n", + " 4000 | 0.269 | 0.229 (0.040) | 0.260 (0.009) |\n", + " 8000 | 0.644 | 0.637 (0.007) | 0.644 (0.000) |\n", + "broadband reference 0.429; fdn 0.449; conv 0.395\n" + ] + } + ], + "source": [ + "ref_band = {c: band_iacc_stationary(*ISO_LR, c) for c in BAND_CENTERS}\n", + "ref_bb = iacc(*ISO_LR)\n", + "ia = {k: {c: band_iacc_tail(TAIL_LR[k][0][N80:], TAIL_LR[k][1][N80:], c, P)\n", + " for c in BAND_CENTERS} for k in RES}\n", + "bb = {k: iacc(TAIL_LR[k][0][N80:], TAIL_LR[k][1][N80:]) for k in RES}\n", + "\n", + "# analytic order-3 channel-domain coherence (uncorrelated SN3D-diffuse channels)\n", + "Lf, Rf = rm.hrtf_firs(P.order, FS)\n", + "nfft = 4096\n", + "HL, HR = np.fft.rfft(Lf, nfft), np.fft.rfft(Rf, nfft)\n", + "w2 = rm.sn3d_diffuse_gains(P.order)[:, None] ** 2\n", + "g3 = np.abs((w2 * HL * np.conj(HR)).sum(0)) / np.sqrt(\n", + " (w2 * np.abs(HL) ** 2).sum(0) * (w2 * np.abs(HR) ** 2).sum(0))\n", + "fgrid = np.fft.rfftfreq(nfft, 1 / FS)\n", + "\n", + "# order-5 direction-domain coherence from the new capi HRIR export\n", + "az_f, el_f = rm.fibonacci_sphere(128)\n", + "h5 = np.array([np.concatenate(at.builtin_hrtf_hrir(float(a), float(e)))\n", + " for a, e in zip(az_f, el_f)])\n", + "HL5 = np.fft.rfft(h5[:, :128], nfft)\n", + "HR5 = np.fft.rfft(h5[:, 128:], nfft)\n", + "g5 = np.abs((HL5 * np.conj(HR5)).sum(0)) / np.sqrt(\n", + " (np.abs(HL5) ** 2).sum(0) * (np.abs(HR5) ** 2).sum(0))\n", + "f5 = np.fft.rfftfreq(nfft, 1 / at.builtin_hrtf_info()[\"sample_rate\"])\n", + "\n", + "fig, ax = plt.subplots(figsize=(9, 3.2))\n", + "ax.semilogx(fgrid[1:], g3[1:], color=\"0.6\", lw=1,\n", + " label=\"analytic coherence, order-3 LS chain\")\n", + "ax.semilogx(f5[1:], g5[1:], color=\"0.8\", lw=1, ls=\"--\",\n", + " label=\"order-5 KEMAR (capi HRIR export)\")\n", + "ax.plot(BAND_CENTERS, [ref_band[c] for c in BAND_CENTERS], \"ks-\", ms=4,\n", + " label=\"reference: isotropic render, band IACC\")\n", + "for i, kind in enumerate(RES):\n", + " ax.plot(BAND_CENTERS, [ia[kind][c] for c in BAND_CENTERS], \"o-\",\n", + " color=PAL[i], label=f\"{kind} tail\")\n", + "ax.set(xlabel=\"frequency (Hz)\", ylabel=\"IACC / |coherence|\", ylim=(0, 1),\n", + " title=\"R9: binauralized-tail IACC vs the diffuse-field reference\")\n", + "ax.legend(loc=\"upper center\", ncol=2)\n", + "plt.show()\n", + "\n", + "print(f\"{'band':>6} | {'ref':>5} | \" + \" | \".join(f\"{k+' (dev)':>13}\" for k in RES))\n", + "for c in BAND_CENTERS:\n", + " row = f\"{c:>6} | {ref_band[c]:>5.3f} |\"\n", + " for kind in RES:\n", + " row += f\" {ia[kind][c]:>5.3f} ({abs(ia[kind][c]-ref_band[c]):.3f}) |\"\n", + " print(row)\n", + "print(f\"broadband reference {ref_bb:.3f}; \" +\n", + " \"; \".join(f\"{k} {bb[k]:.3f}\" for k in RES))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "87bb66ae", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:11:03.273378Z", + "iopub.status.busy": "2026-07-03T23:11:03.273162Z", + "iopub.status.idle": "2026-07-03T23:11:03.280351Z", + "shell.execute_reply": "2026-07-03T23:11:03.279192Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[fdn] worst per-band deviation >=500 Hz: 0.079\n", + "[conv] worst per-band deviation >=500 Hz: 0.018\n" + ] + }, + { + "data": { + "text/plain": [ + "np.False_" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# VERIFY R9: per-band tracking above 500 Hz (the gate as written), broadband\n", + "# reported as written (unattainable, not asserted) and asserted re. reference.\n", + "for kind in RES:\n", + " devs = {c: abs(ia[kind][c] - ref_band[c]) for c in BAND_CENTERS if c >= 500}\n", + " worst = max(devs.values())\n", + " print(f\"[{kind}] worst per-band deviation >=500 Hz: {worst:.3f}\")\n", + " assert record(\"R9 IACC per band vs reference (>500 Hz)\", kind,\n", + " f\"worst dev {worst:.3f}\", \"<= 0.15\", worst <= 0.15)\n", + " record(\"R9 IACC broadband (as written)\", kind, f\"{bb[kind]:.3f}\",\n", + " \"<= 0.3\", bb[kind] <= 0.3, enforced=False)\n", + " dev_bb = abs(bb[kind] - ref_bb)\n", + " assert record(\"R9 IACC broadband re. reference (prop. revision)\", kind,\n", + " f\"|{bb[kind]:.3f} - {ref_bb:.3f}| = {dev_bb:.3f}\",\n", + " \"<= 0.15\", dev_bb <= 0.15)\n", + "record(\"R9 IACC broadband (as written)\", \"ideal diffuse ref\", f\"{ref_bb:.3f}\",\n", + " \"<= 0.3\", ref_bb <= 0.3, enforced=False)" + ] + }, + { + "cell_type": "markdown", + "id": "17bea0e3", + "metadata": {}, + "source": [ + "## R10 — determinism\n", + "\n", + "Fixed seed, two renders, byte-identical SH IR — for both architectures." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "60b9548a", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:11:03.282753Z", + "iopub.status.busy": "2026-07-03T23:11:03.282557Z", + "iopub.status.idle": "2026-07-03T23:11:05.435205Z", + "shell.execute_reply": "2026-07-03T23:11:05.433753Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[fdn] second render byte-identical: True\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[conv] second render byte-identical: True\n" + ] + } + ], + "source": [ + "# VERIFY R10.\n", + "for kind in (\"fdn\", \"conv\"):\n", + " again = rm.render_room(P, kind)\n", + " same = again[\"ir\"].tobytes() == RES[kind][\"ir\"].tobytes()\n", + " print(f\"[{kind}] second render byte-identical: {same}\")\n", + " assert record(\"R10 determinism\", kind, \"byte-identical\" if same else \"DIFFERS\",\n", + " \"byte-identical\", same)" + ] + }, + { + "cell_type": "markdown", + "id": "960600a2", + "metadata": {}, + "source": [ + "## Informational: seed sensitivity and the rejected velvet variant\n", + "\n", + "The committed seed is part of the parameterization; these rows are not gates.\n", + "Two findings the C++ phase should carry forward:\n", + "\n", + "1. **Single-realization estimator spread.** T20/EDT at 250–500 Hz and the\n", + " per-band IACC estimates have statistical spread comparable to the R4/R5/R9\n", + " tolerances (both architectures — it is the estimator, not the DSP), so a\n", + " handful of seeds fail single bands marginally. The C++ gate should pin the\n", + " shipped seed (as here) and, when tuning, average diagnostics over seeds.\n", + "2. **Velvet decorrelators rejected.** A per-channel velvet-noise output stage\n", + " ('fdn_velvet') trims |rE| and broadband IACC, but its short sparse FIRs are\n", + " spectrally uneven near 500 Hz and break per-band reference tracking on some\n", + " seeds." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "1c69d910", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:11:05.438547Z", + "iopub.status.busy": "2026-07-03T23:11:05.438102Z", + "iopub.status.idle": "2026-07-03T23:11:10.524768Z", + "shell.execute_reply": "2026-07-03T23:11:10.523568Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fdn across seeds (informational):\n", + " seed worst T20 worst EDT rE worst IACC dev\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 11 +6.0% +21.1% 0.053 0.079\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 12 +7.2% +33.7% 0.067 0.150\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 13 +3.8% +21.7% 0.062 0.174\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 18 +4.4% +23.8% 0.078 0.224\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "fdn_velvet (rejected): rE 0.054, broadband IACC 0.504, worst per-band IACC dev 0.202\n" + ] + } + ], + "source": [ + "print(\"fdn across seeds (informational):\")\n", + "print(f\"{'seed':>6} {'worst T20':>10} {'worst EDT':>10} {'rE':>6} {'worst IACC dev':>15}\")\n", + "for seed in (P.seed, 12, 13, 18):\n", + " ps = dataclasses.replace(P, seed=seed)\n", + " r = rm.render_room(ps, \"fdn\")\n", + " wt = max(abs(t20_band(r[\"ir\"][0], c) / t60 - 1) for c, t60 in P.rt60.items())\n", + " we = max(abs(edt_band(r[\"ir\"][0], c) / t60 - 1) for c, t60 in P.rt60.items())\n", + " vals, ens = re_windows(r[\"tail\"][:, N80:])\n", + " l, rr = rm.binauralize(r[\"tail\"], FS)\n", + " wd = max(abs(band_iacc_tail(l[N80:], rr[N80:], c, ps) - ref_band[c])\n", + " for c in BAND_CENTERS if c >= 500)\n", + " print(f\"{seed:>6} {100*wt:>+9.1f}% {100*we:>+9.1f}% \"\n", + " f\"{np.average(vals, weights=ens):>6.3f} {wd:>15.3f}\")\n", + "\n", + "rv = rm.render_room(P, \"fdn_velvet\")\n", + "vals, ens = re_windows(rv[\"tail\"][:, N80:])\n", + "lv, rvr = rm.binauralize(rv[\"tail\"], FS)\n", + "wd_v = max(abs(band_iacc_tail(lv[N80:], rvr[N80:], c, P) - ref_band[c])\n", + " for c in BAND_CENTERS if c >= 500)\n", + "print(f\"\\nfdn_velvet (rejected): rE {np.average(vals, weights=ens):.3f}, \"\n", + " f\"broadband IACC {iacc(lv[N80:], rvr[N80:]):.3f}, \"\n", + " f\"worst per-band IACC dev {wd_v:.3f}\")" + ] + }, + { + "cell_type": "markdown", + "id": "47de4208", + "metadata": {}, + "source": [ + "## Verdict — PASS/FAIL table and the tail-architecture decision\n", + "\n", + "The table below is the phase deliverable: every R-gate, both architectures,\n", + "measured value vs threshold. The architecture recommendation for the C++\n", + "phase follows from R7/R9 (details in the cell output and the summary at the\n", + "end of `room_model.py`'s docstring):\n", + "\n", + "- **Both architectures pass R7 and the per-band R9 tracking gate.** The\n", + " 16-line FDN — with the three design elements the iteration converged on\n", + " (octave-shaped time-aligned input bursts, signed-Hadamard output\n", + " distribution with SN3D per-order gains, delay set reaching down to ~9 ms) —\n", + " is statistically indistinguishable from the synthesized-convolution tail on\n", + " the diffuseness gates, and it beats convolution on cost and parameter\n", + " agility (RT60 changes retune filters instead of re-rendering an IR).\n", + "- **Recommendation: implement the FDN tail in C++**, with the\n", + " synthesized-convolution renderer kept as the notebook's reference\n", + " implementation and fallback. The broadband-IACC threshold needs the\n", + " revision recorded above (reference-relative), which should land as a diff\n", + " to `docs/PERCEPTUAL-VERIFICATION.md` per that doc's own process." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "47e1296c", + "metadata": { + "execution": { + "iopub.execute_input": "2026-07-03T23:11:10.527162Z", + "iopub.status.busy": "2026-07-03T23:11:10.526945Z", + "iopub.status.idle": "2026-07-03T23:11:10.533709Z", + "shell.execute_reply": "2026-07-03T23:11:10.532717Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gate | arch | measured | gate | verdict\n", + "----------------------------------------------------------------------------------------------------------------------------\n", + "R1 ER arrival times | ISM | 0.437 smp | <= 1 smp | PASS\n", + "R2 ER directions (energy_vector) | ISM | 0.024 deg | <= 5 deg | PASS\n", + "R3 ER levels | ISM | 0.0000 dB | <= 0.5 dB | PASS\n", + "R4 T20 per band | fdn | worst +6.0% | +/-10% | PASS\n", + "R5 EDT per band | fdn | worst +21.1% | +/-25% | PASS\n", + "R4 T20 per band | conv | worst +9.6% | +/-10% | PASS\n", + "R5 EDT per band | conv | worst +12.9% | +/-25% | PASS\n", + "R6 C50/C80 vs analytic | fdn | worst 0.56 dB | +/-2 dB | PASS\n", + "R6 monotone in distance | fdn | True | strictly decr. | PASS\n", + "R6 C50/C80 vs analytic | conv | worst 0.58 dB | +/-2 dB | PASS\n", + "R6 monotone in distance | conv | True | strictly decr. | PASS\n", + "R7 SH order balance | fdn | max 0.16 dB | +/-1.5 dB | PASS\n", + "R7 SH order balance | conv | max 0.19 dB | +/-1.5 dB | PASS\n", + "R8 tail |rE| | fdn | 0.053 | <= 0.1 | PASS\n", + "R8 tail |rE| | conv | 0.037 | <= 0.1 | PASS\n", + "R9 IACC per band vs reference (>500 Hz) | fdn | worst dev 0.079 | <= 0.15 | PASS\n", + "R9 IACC broadband (as written) | fdn | 0.449 | <= 0.3 | FAIL*\n", + "R9 IACC broadband re. reference (prop. revision) | fdn | |0.449 - 0.429| = 0.020 | <= 0.15 | PASS\n", + "R9 IACC per band vs reference (>500 Hz) | conv | worst dev 0.018 | <= 0.15 | PASS\n", + "R9 IACC broadband (as written) | conv | 0.395 | <= 0.3 | FAIL*\n", + "R9 IACC broadband re. reference (prop. revision) | conv | |0.395 - 0.429| = 0.034 | <= 0.15 | PASS\n", + "R9 IACC broadband (as written) | ideal diffuse ref | 0.429 | <= 0.3 | FAIL*\n", + "R10 determinism | fdn | byte-identical | byte-identical | PASS\n", + "R10 determinism | conv | byte-identical | byte-identical | PASS\n", + "\n", + "* not enforced: unattainable through the order-3 LS render chain — the\n", + " ideal diffuse reference itself fails it. Proposed revision: gate the\n", + " broadband IACC relative to the diffuse-field reference (|dev| <= 0.15).\n", + "\n", + "All 21 enforced gate checks PASS (9 fdn, 9 conv, rest ISM/shared).\n", + "Tail architecture decision: SH-domain FDN (16 lines, shaped input\n", + "bursts, signed-Hadamard feedback/output, per-line absorption FIRs).\n" + ] + } + ], + "source": [ + "wg = max(len(g[\"gate\"]) for g in GATES)\n", + "wa = max(len(g[\"arch\"]) for g in GATES)\n", + "wv = max(len(g[\"value\"]) for g in GATES)\n", + "wt = max(len(g[\"threshold\"]) for g in GATES)\n", + "print(f\"{'gate':<{wg}} | {'arch':<{wa}} | {'measured':<{wv}} | {'gate':<{wt}} | verdict\")\n", + "print(\"-\" * (wg + wa + wv + wt + 22))\n", + "for g in GATES:\n", + " verdict = \"PASS\" if g[\"passed\"] else (\"FAIL*\" if not g[\"enforced\"] else \"FAIL\")\n", + " print(f\"{g['gate']:<{wg}} | {g['arch']:<{wa}} | {g['value']:<{wv}} | \"\n", + " f\"{g['threshold']:<{wt}} | {verdict}\")\n", + "print(\"\\n* not enforced: unattainable through the order-3 LS render chain — the\")\n", + "print(\" ideal diffuse reference itself fails it. Proposed revision: gate the\")\n", + "print(\" broadband IACC relative to the diffuse-field reference (|dev| <= 0.15).\")\n", + "\n", + "enforced = [g for g in GATES if g[\"enforced\"]]\n", + "assert all(g[\"passed\"] for g in enforced)\n", + "n_arch = {k: sum(1 for g in enforced if g[\"arch\"] == k and g[\"passed\"]) for k in (\"fdn\", \"conv\")}\n", + "print(f\"\\nAll {len(enforced)} enforced gate checks PASS \"\n", + " f\"({n_arch['fdn']} fdn, {n_arch['conv']} conv, rest ISM/shared).\")\n", + "print(\"Tail architecture decision: SH-domain FDN (16 lines, shaped input\")\n", + "print(\"bursts, signed-Hadamard feedback/output, per-line absorption FIRs).\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.15" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index be6acd7..5ed0998 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -28,6 +28,7 @@ add_executable(ambitap_tests test_rt_safety.cpp test_embedded_core.cpp test_sofa.cpp + test_xtc.cpp ) target_link_libraries(ambitap_tests PRIVATE AmbiTap::ambitap ambitap_warnings GTest::gtest_main) diff --git a/tests/test_rt_safety.cpp b/tests/test_rt_safety.cpp index fb6158a..73258bb 100644 --- a/tests/test_rt_safety.cpp +++ b/tests/test_rt_safety.cpp @@ -19,6 +19,7 @@ #include "ambitap/dsp/rotator.h" #include "ambitap/dsp/spatial_compressor.h" #include "ambitap/dsp/virtual_mic.h" +#include "ambitap/dsp/xtc.h" #include "ambitap/math/geometry/layouts.h" #include @@ -273,6 +274,23 @@ TEST(RtSafety, StatefulProcessorsAreAllocationFree) { EXPECT_EQ(guard.frees(), 0); } +TEST(RtSafety, XtcProcessIsAllocationFree) { + constexpr size_t block = 64; + + dsp::xtc x; + x.prepare(block, 48000.f); + + std::vector in_l(block, 0.25f), in_r(block, -0.25f); + std::vector out_l(block), out_r(block); + + rt_guard guard; + for (int i = 0; i < 8; ++i) { + x.process(in_l.data(), in_r.data(), out_l.data(), out_r.data(), block); + } + EXPECT_EQ(guard.allocations(), 0); + EXPECT_EQ(guard.frees(), 0); +} + TEST(RtSafety, BinauralRendererProcessIsAllocationFree) { constexpr size_t block = 64; diff --git a/tests/test_xtc.cpp b/tests/test_xtc.cpp new file mode 100644 index 0000000..9a7029b --- /dev/null +++ b/tests/test_xtc.cpp @@ -0,0 +1,425 @@ +/// AmbiTap: target-independent ambisonics library +/// Tests for dsp::xtc — the numeric verification gates X1–X6 from +/// docs/PERCEPTUAL-VERIFICATION.md, computed deterministically from the +/// designed filters against the KEMAR plant model (P = C·H; no audio). +/// Timothy Place +/// Copyright 2026 Timothy Place. + +#include "ambitap/dsp/xtc.h" + +#include + +#include +#include +#include +#include +#include + +using namespace ambitap; + +namespace { + + using cd = std::complex; + + constexpr double k_fs = 44100.0; // gates run at the dataset's native rate + constexpr double k_c = 343.0; // speed of sound, m/s + constexpr double k_dpi = 3.14159265358979323846; + + /// KEMAR HRIR at (azimuth, elevation 0), reconstructed from the built-in + /// LS SH set — the plant definition from the verification doc. + std::vector kemar_hrir(double azimuth, int ear) { + float sh[max_channel_count]; + evaluate_sh(builtin_hrtf_order, static_cast(azimuth), 0.0f, sh); + std::vector ir(builtin_hrtf_length, 0.0f); + for (size_t ch = 0; ch < builtin_hrtf_channels; ++ch) { + const float* fir = (ear == 0) ? builtin_hrtf_left[ch] : builtin_hrtf_right[ch]; + for (size_t t = 0; t < builtin_hrtf_length; ++t) ir[t] += sh[ch] * fir[t]; + } + return ir; + } + + /// Textbook DFT at an arbitrary frequency (e^{-jwt} convention) — + /// deliberately independent of the Ooura FFT the design itself uses. + cd dft_at(const std::vector& x, double f) { + cd acc {0.0, 0.0}; + const double w = -2.0 * k_dpi * f / k_fs; + for (size_t n = 0; n < x.size(); ++n) { + const double p = w * static_cast(n); + acc += static_cast(x[n]) * cd {std::cos(p), std::sin(p)}; + } + return acc; + } + + /// Log-spaced frequency grid (points_per_octave per octave, inclusive). + /// Uniform log spacing makes an arithmetic mean over the grid a + /// log-frequency band mean — the perceptually standard weighting (the + /// gate doc smooths and budgets everything in octaves); a linear-bin + /// mean would let the top octave of the band outvote the other three. + std::vector log_freqs(double lo, double hi, int points_per_octave) { + std::vector f; + const int n = static_cast(std::ceil(std::log2(hi / lo) * points_per_octave)); + for (int i = 0; i <= n; ++i) { + f.push_back( + std::min(hi, lo * std::pow(2.0, static_cast(i) / points_per_octave))); + } + return f; + } + + /// 2x2 plant C(f) at each grid frequency: speaker s -> ear e transfer + /// functions for speakers at ±span/2 azimuth and `distance` meters, with + /// the head displaced `dy` meters laterally (+ = toward the left speaker) + /// and yawed `yaw` radians (+ = turning left). Displacement re-derives + /// per-path azimuth, 1/r gain, and propagation delay against the design + /// geometry; at (dy = 0, yaw = 0) it reduces exactly to the design plant. + struct plant { + std::array, 2>, 2> c; // [ear][speaker] + }; + plant make_plant(double span_deg, double distance, double dy, double yaw, + const std::vector& freqs) { + plant P; + const double half = 0.5 * span_deg * k_dpi / 180.0; + for (size_t s = 0; s < 2; ++s) { + const double az_spk = (s == 0) ? half : -half; + const double px = distance * std::cos(az_spk), py = distance * std::sin(az_spk); + const double ry = py - dy; + const double dist = std::hypot(px, ry); + const double az_head = std::atan2(ry, px) - yaw; + const double gain = distance / dist; + const double dt = (dist - distance) / k_c; + for (size_t e = 0; e < 2; ++e) { + const auto ir = kemar_hrir(az_head, static_cast(e)); + auto& out = P.c[e][s]; + out.resize(freqs.size()); + for (size_t i = 0; i < freqs.size(); ++i) { + const double ph = -2.0 * k_dpi * freqs[i] * dt; + out[i] = dft_at(ir, freqs[i]) * gain * cd {std::cos(ph), std::sin(ph)}; + } + } + } + return P; + } + + /// The four shipped filter responses H[speaker][input] on the grid. + using filter_spectra = std::array, 2>, 2>; + filter_spectra filter_response(const dsp::xtc& x, const std::vector& freqs) { + filter_spectra F; + for (size_t s = 0; s < 2; ++s) { + for (size_t i = 0; i < 2; ++i) { + F[s][i].resize(freqs.size()); + for (size_t k = 0; k < freqs.size(); ++k) { + F[s][i][k] = dft_at(x.fir(s, i), freqs[k]); + } + } + } + return F; + } + + /// Performance matrix P(f) = C(f)·H(f) at one grid index. + std::array perf(const plant& C, const filter_spectra& F, size_t k) { + return {C.c[0][0][k] * F[0][0][k] + C.c[0][1][k] * F[1][0][k], // P00: L ear <- L in + C.c[0][0][k] * F[0][1][k] + C.c[0][1][k] * F[1][1][k], // P01: L ear <- R in + C.c[1][0][k] * F[0][0][k] + C.c[1][1][k] * F[1][0][k], // P10: R ear <- L in + C.c[1][0][k] * F[0][1][k] + C.c[1][1][k] * F[1][1][k]}; // P11: R ear <- R in + } + + /// Worse-ear crosstalk rejection XTC(f) = 20·log10(|P_ii|/|P_ij|), + /// mean and minimum over the grid (mean over a log grid = band mean in + /// log frequency; see log_freqs). + struct xtc_stats { + double mean_db; + double min_db; + }; + xtc_stats measure_xtc(const plant& C, const filter_spectra& F) { + double sum = 0.0, mn = 1e300; + const size_t n = C.c[0][0].size(); + for (size_t k = 0; k < n; ++k) { + const auto p = perf(C, F, k); + const double left = 20.0 * std::log10(std::abs(p[0]) / (std::abs(p[1]) + 1e-30)); + const double right = 20.0 * std::log10(std::abs(p[3]) / (std::abs(p[2]) + 1e-30)); + const double worse = std::min(left, right); + sum += worse; + mn = std::min(mn, worse); + } + return {sum / static_cast(n), mn}; + } + + /// X4 coloration: |P_ii(f)|, 1/3-octave power-smoothed, referenced to its + /// own 300 Hz – 6 kHz mean; returns the worse-ear max |deviation| in dB + /// over 200 Hz – 8 kHz. The grid extends ±1/6 octave past the audit band + /// so the smoother at the edges sees real data, not a clamped window. + double measure_coloration(const plant& C, const filter_spectra& F, + const std::vector& freqs, int points_per_octave) { + const int w = points_per_octave / 6; // ±1/6 octave + const size_t n = freqs.size(); + double worst = 0.0; + for (size_t e = 0; e < 2; ++e) { + std::vector mag2(n); + for (size_t k = 0; k < n; ++k) { + const auto p = perf(C, F, k); + mag2[k] = std::norm(e == 0 ? p[0] : p[3]); + } + std::vector smoothed(n); + for (size_t k = 0; k < n; ++k) { + const size_t a = (k < static_cast(w)) ? 0 : k - static_cast(w); + const size_t b = std::min(n - 1, k + static_cast(w)); + double acc = 0.0; + for (size_t j = a; j <= b; ++j) acc += mag2[j]; + smoothed[k] = 10.0 * std::log10(acc / static_cast(b - a + 1) + 1e-30); + } + double ref = 0.0; + size_t nr = 0; + for (size_t k = 0; k < n; ++k) { + if (freqs[k] >= 300.0 && freqs[k] <= 6000.0) { + ref += smoothed[k]; + ++nr; + } + } + ref /= static_cast(nr); + for (size_t k = 0; k < n; ++k) { + if (freqs[k] < 200.0 || freqs[k] > 8000.0) continue; + worst = std::max(worst, std::abs(smoothed[k] - ref)); + } + } + return worst; + } + + /// Shared analysis grids. 240 points/octave puts ~17 Hz between points at + /// the 6 kHz band edge — denser than the ~43 Hz ripple period of the + /// 1024-tap realization, so the minimum can't hide between points. + const std::vector& band_grid() { + static const auto g = log_freqs(dsp::xtc::k_band_low_hz, dsp::xtc::k_band_high_hz, 240); + return g; + } + const std::vector& audit_grid() { + static const auto g = + log_freqs(200.0 * std::pow(2.0, -1.0 / 6.0), 8000.0 * std::pow(2.0, 1.0 / 6.0), 96); + return g; + } + + /// A designed canceller at the dataset-native rate (no convolvers needed: + /// the gates read the shipped FIRs). + dsp::xtc make_design(float span_deg) { + dsp::xtc x; + x.set_span(span_deg); + return x; + } + +} // namespace + +// X1 — crosstalk rejection spectrum: worse-ear XTC(f) >= 20 dB mean and +// >= 15 dB minimum over 300 Hz – 6 kHz, at spans ±10°, ±20°, ±30°. +// Margins as designed: mean 60.7/58.5/62.8 dB, min 23.1/40.0/41.3 dB. +TEST(DspXtc, X1CrosstalkRejectionSpectrum) { + for (const float span : {20.0f, 40.0f, 60.0f}) { + const auto x = make_design(span); + const auto F = filter_response(x, band_grid()); + const auto C = make_plant(span, 1.0, 0.0, 0.0, band_grid()); + const auto s = measure_xtc(C, F); + EXPECT_GE(s.mean_db, 20.0) << "span " << span; + EXPECT_GE(s.min_db, 15.0) << "span " << span; + } +} + +// X2 — robustness to head translation, filters held fixed, at the design +// point (span 20°, 1 m): >= 12 dB mean in-band XTC at ±2 cm lateral, and +// XTC no worse than bypass at ±5 cm. +// +// The ±5 cm clause is gated on the BAND MEAN. A strict per-frequency +// reading (min >= 0 dB) is provably unreachable together with X1: a 5 cm +// lateral shift skews the two path lengths by ~2·dy·sin(span/2) ≈ 17 mm +// (~50 us), so at 6 kHz the cancellation signal arrives ~1.9 rad out of +// phase — any filter that cancels deeply at the design point (X1 demands +// >= 15 dB at 6 kHz) must push the displaced 6 kHz XTC below 0 dB there +// (measured: ~-2 dB at the top of the band, mean ~+7.8 dB). Choosing +// shallower HF cancellation to protect the ±5 cm minimum would fail X1 +// outright, so the mean — "approximately ordinary stereo on average", the +// stated intent — is the implementable contract. +TEST(DspXtc, X2RobustnessTranslation) { + const float span = 20.0f; + const auto x = make_design(span); + const auto F = filter_response(x, band_grid()); + for (const double dy : {0.02, -0.02}) { + const auto C = make_plant(span, 1.0, dy, 0.0, band_grid()); + const auto s = measure_xtc(C, F); + EXPECT_GE(s.mean_db, 12.0) << "dy " << dy; // designed margin: 16.8 dB + } + for (const double dy : {0.05, -0.05}) { + const auto C = make_plant(span, 1.0, dy, 0.0, band_grid()); + const auto s = measure_xtc(C, F); + EXPECT_GE(s.mean_db, 0.0) << "dy " << dy; // designed margin: 7.8 dB + } +} + +// X3 — robustness to head rotation (yaw), filters held fixed, at the design +// point: >= 12 dB mean in-band at ±5°, >= 6 dB at ±10°. Rotation is +// first-order benign (the inter-speaker arrival-time difference at an ear +// varies with cos(yaw)), so these margins are wide: 24.3 dB and 18.1 dB. +TEST(DspXtc, X3RobustnessRotation) { + const float span = 20.0f; + const auto x = make_design(span); + const auto F = filter_response(x, band_grid()); + for (const double yaw_deg : {5.0, -5.0}) { + const auto C = make_plant(span, 1.0, 0.0, yaw_deg * k_dpi / 180.0, band_grid()); + EXPECT_GE(measure_xtc(C, F).mean_db, 12.0) << "yaw " << yaw_deg; + } + for (const double yaw_deg : {10.0, -10.0}) { + const auto C = make_plant(span, 1.0, 0.0, yaw_deg * k_dpi / 180.0, band_grid()); + EXPECT_GE(measure_xtc(C, F).mean_db, 6.0) << "yaw " << yaw_deg; + } +} + +// X4 — coloration budget: 1/3-octave-smoothed |P_ii| within ±3 dB of its +// 300 Hz – 6 kHz mean over 200 Hz – 8 kHz at the design point (all three +// X1 spans; measured 0.8/0.7/0.2 dB), and within ±6 dB under the X2/X3 +// offsets at the design geometry (worst measured: 3.1 dB at ±5 cm). +TEST(DspXtc, X4ColorationBudget) { + for (const float span : {20.0f, 40.0f, 60.0f}) { + const auto x = make_design(span); + const auto F = filter_response(x, audit_grid()); + const auto C = make_plant(span, 1.0, 0.0, 0.0, audit_grid()); + EXPECT_LE(measure_coloration(C, F, audit_grid(), 96), 3.0) << "span " << span; + } + + const float span = 20.0f; + const auto x = make_design(span); + const auto F = filter_response(x, audit_grid()); + for (const double dy : {0.02, -0.02, 0.05, -0.05}) { + const auto C = make_plant(span, 1.0, dy, 0.0, audit_grid()); + EXPECT_LE(measure_coloration(C, F, audit_grid(), 96), 6.0) << "dy " << dy; + } + for (const double yaw_deg : {5.0, -5.0, 10.0, -10.0}) { + const auto C = make_plant(span, 1.0, 0.0, yaw_deg * k_dpi / 180.0, audit_grid()); + EXPECT_LE(measure_coloration(C, F, audit_grid(), 96), 6.0) << "yaw " << yaw_deg; + } +} + +// X5 — filter gain ceiling: the designed (pre-makeup) response never exceeds +// +12 dB at any frequency in any of the four filters, and the shipped FIRs +// carry a matching static makeup attenuation so no single path exceeds +// unity gain. Checked on a dense linear grid up to Nyquist (independent of +// the design's own FFT grid). +TEST(DspXtc, X5FilterGainCeiling) { + for (const float span : {20.0f, 40.0f, 60.0f}) { + const auto x = make_design(span); + EXPECT_LE(x.design_gain_db(), 12.0 + 1e-4) << "span " << span; + EXPECT_LE(x.makeup_gain(), 1.0f) << "span " << span; + + double shipped_max = 0.0; + for (size_t s = 0; s < 2; ++s) { + for (size_t i = 0; i < 2; ++i) { + for (int k = 0; k <= 2048; ++k) { + const double f = k_fs / 2.0 * static_cast(k) / 2048.0; + shipped_max = std::max(shipped_max, std::abs(dft_at(x.fir(s, i), f))); + } + } + } + // Shipped = designed × makeup, so this is the "matching" check: the + // worst shipped gain must sit at unity (within grid quantization), + // never above it — and the reported makeup is exactly the reciprocal + // of the reported design gain. + EXPECT_LE(shipped_max, 1.0 + 1e-3) << "span " << span; + EXPECT_GT(shipped_max, 0.9) << "span " << span; + EXPECT_NEAR(static_cast(x.makeup_gain()) + * std::pow(10.0, static_cast(x.design_gain_db()) / 20.0), + 1.0, 1e-3) + << "span " << span; + } +} + +// X6 — determinism: designing twice at identical parameters yields +// byte-identical filters, including through parameter churn and at a +// resampled host rate. +TEST(DspXtc, X6Determinism) { + const auto identical = [](const dsp::xtc& a, const dsp::xtc& b) { + for (size_t s = 0; s < 2; ++s) { + for (size_t i = 0; i < 2; ++i) { + const auto& fa = a.fir(s, i); + const auto& fb = b.fir(s, i); + if (fa.size() != fb.size()) return false; + if (std::memcmp(fa.data(), fb.data(), fa.size() * sizeof(float)) != 0) return false; + } + } + return a.makeup_gain() == b.makeup_gain(); + }; + + dsp::xtc a, b; + EXPECT_TRUE(identical(a, b)); + + a.set_span(40.0f); + a.set_regularization(0.3f); + a.set_sample_rate(48000.0f); + b.set_sample_rate(48000.0f); + b.set_regularization(0.3f); + b.set_span(40.0f); // different setter order, same final parameters + EXPECT_TRUE(identical(a, b)); + + // Churn back and forth: the design must depend only on current values. + a.set_span(120.0f); + a.set_span(40.0f); + EXPECT_TRUE(identical(a, b)); +} + +// The audio path realizes exactly the shipped FIRs: an impulse into one +// input reproduces that input's two filters (partitioned convolution across +// many blocks), and the object is silent before prepare() or on a block-size +// mismatch. +TEST(DspXtc, ProcessRealizesShippedFirs) { + dsp::xtc x; + + // Unprepared: silence. + std::vector in(64, 1.0f), out_l(64, -1.0f), out_r(64, -1.0f); + x.process(in.data(), in.data(), out_l.data(), out_r.data(), 64); + for (size_t i = 0; i < 64; ++i) { + ASSERT_EQ(out_l[i], 0.0f); + ASSERT_EQ(out_r[i], 0.0f); + } + + x.prepare(64, static_cast(k_fs)); + ASSERT_TRUE(x.is_prepared()); + EXPECT_EQ(x.latency_samples(), dsp::xtc::k_fir_length / 2); + + // Mismatched block: silence (and no state corruption). + x.process(in.data(), in.data(), out_l.data(), out_r.data(), 32); + for (size_t i = 0; i < 32; ++i) ASSERT_EQ(out_l[i], 0.0f); + + // Impulse on the left input -> fir(0,0) on the left speaker, fir(1,0) on + // the right speaker. + const size_t blocks = (dsp::xtc::k_fir_length + 64) / 64; + std::vector zeros(64, 0.0f), got_l, got_r; + for (size_t b = 0; b < blocks; ++b) { + std::vector imp(64, 0.0f); + if (b == 0) imp[0] = 1.0f; + x.process(imp.data(), zeros.data(), out_l.data(), out_r.data(), 64); + got_l.insert(got_l.end(), out_l.begin(), out_l.end()); + got_r.insert(got_r.end(), out_r.begin(), out_r.end()); + } + for (size_t t = 0; t < dsp::xtc::k_fir_length; ++t) { + ASSERT_NEAR(got_l[t], x.fir(0, 0)[t], 2e-5f) << "t=" << t; + ASSERT_NEAR(got_r[t], x.fir(1, 0)[t], 2e-5f) << "t=" << t; + } +} + +// Designs at common host rates stay finite, under the ceiling, and usable; +// the built-in 44.1 kHz KEMAR set is resampled at design time. +TEST(DspXtc, DesignAtCommonHostRates) { + for (const float rate : {44100.0f, 48000.0f, 96000.0f}) { + dsp::xtc x; + x.prepare(128, rate); + EXPECT_LE(x.design_gain_db(), 12.0f + 1e-4f) << rate; + double energy = 0.0; + for (size_t s = 0; s < 2; ++s) { + for (size_t i = 0; i < 2; ++i) { + ASSERT_EQ(x.fir(s, i).size(), dsp::xtc::k_fir_length); + for (const float v : x.fir(s, i)) { + ASSERT_TRUE(std::isfinite(v)); + energy += static_cast(v) * static_cast(v); + } + } + } + EXPECT_GT(energy, 0.1) << rate; + + std::vector in(128, 0.5f), l(128), r(128); + x.process(in.data(), in.data(), l.data(), r.data(), 128); + for (const float v : l) ASSERT_TRUE(std::isfinite(v)); + } +} diff --git a/tools/capi/ambitap_capi.cpp b/tools/capi/ambitap_capi.cpp index ef2c400..509e64e 100644 --- a/tools/capi/ambitap_capi.cpp +++ b/tools/capi/ambitap_capi.cpp @@ -171,6 +171,27 @@ int ambitap_builtin_hrtf_fir(int magls, int ear, int channel, float* out) { return 0; } +int ambitap_builtin_hrtf_hrir(int order, int magls, float azimuth, float elevation, float* left, + float* right) { + if (!left || !right || order < 1 || order > builtin_hrtf_order) return -1; + float sh[max_channel_count]; + evaluate_sh(order, azimuth, elevation, sh); + + float* const ears[2] = {left, right}; + for (int ear = 0; ear < 2; ++ear) { + const float(*table)[builtin_hrtf_length] = + magls ? (ear == 0 ? builtin_hrtf_magls_left : builtin_hrtf_magls_right) + : (ear == 0 ? builtin_hrtf_left : builtin_hrtf_right); + std::fill(ears[ear], ears[ear] + builtin_hrtf_length, 0.f); + for (size_t ch = 0; ch < channel_count(order); ++ch) { + for (size_t t = 0; t < builtin_hrtf_length; ++t) { + ears[ear][t] += sh[ch] * table[ch][t]; + } + } + } + return 0; +} + int ambitap_resample_fir(const float* in, int in_len, float in_rate, float out_rate, float* out, int out_cap) { if (!in || !out || in_len <= 0 || in_rate <= 0.f || out_rate <= 0.f) return -1; diff --git a/tools/capi/ambitap_capi.h b/tools/capi/ambitap_capi.h index a79ce39..643bc48 100644 --- a/tools/capi/ambitap_capi.h +++ b/tools/capi/ambitap_capi.h @@ -61,6 +61,13 @@ AMBITAP_API int ambitap_builtin_hrtf_info(int* order, int* channels, int* length /// ear 0 = left / 1 = right, channel in [0, channels). AMBITAP_API int ambitap_builtin_hrtf_fir(int magls, int ear, int channel, float* out); +/// Time-domain SH-reconstructed HRIR at a probe direction — the weighted sum +/// dsp::binaural_renderer::probe_response performs before reducing to a +/// magnitude spectrum. Writes length taps (at the built-in sample rate) per +/// ear into left/right. magls selects the dataset; order in [1, order]. +AMBITAP_API int ambitap_builtin_hrtf_hrir(int order, int magls, float azimuth, float elevation, + float* left, float* right); + /// Windowed-sinc FIR resampling into out[out_cap]. Returns the output length, /// or -1 when out_cap is too small. AMBITAP_API int ambitap_resample_fir(const float* in, int in_len, float in_rate, float out_rate,