From e2c3c3e95b6a9e53b4631b271640bb9914f8c95e Mon Sep 17 00:00:00 2001 From: skal Date: Thu, 5 Mar 2026 10:03:32 +0100 Subject: fix(audio): OLA encoder never ran; version never propagated to decoder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two bugs kept the v2 OLA path permanently disabled: 1. SpectrogramResourceManager::load_asset() never set spec.version from SpecHeader::version — all .spec assets loaded with version=0, so ola_mode was always false in the voice. 2. spectool analyze_audio() used non-overlapping chunks (stride=DCT_SIZE), hamming_window_512, and hardcoded header.version=1 — OLA analysis was never implemented in the encoder. Fixes: propagate header->version in load_asset(); switch spectool to OLA_HOP_SIZE stride, hann_window_512, and SPEC_VERSION_V2_OLA. Regenerated all .spec files. handoff(Gemini): OLA enc/dec chain now correct end-to-end. .spec files are v2 (50% overlap, Hann). No API changes; 33/34 tests pass (WavDumpBackendTest pre-existing failure unrelated). Co-Authored-By: Claude Sonnet 4.6 --- src/audio/spectrogram_resource_manager.cc | 1 + 1 file changed, 1 insertion(+) (limited to 'src/audio/spectrogram_resource_manager.cc') diff --git a/src/audio/spectrogram_resource_manager.cc b/src/audio/spectrogram_resource_manager.cc index 30939e0..c500528 100644 --- a/src/audio/spectrogram_resource_manager.cc +++ b/src/audio/spectrogram_resource_manager.cc @@ -199,6 +199,7 @@ void SpectrogramResourceManager::load_asset(Resource* resource) { resource->spec.spectral_data_a = spectral_data; resource->spec.spectral_data_b = spectral_data; resource->spec.num_frames = header->num_frames; + resource->spec.version = header->version; resource->owned_data = nullptr; // Asset data is not owned #if defined(DEBUG_LOG_ASSETS) -- cgit v1.2.3