summaryrefslogtreecommitdiff
path: root/src/audio/spectrogram_resource_manager.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-05 10:03:32 +0100
committerskal <pascal.massimino@gmail.com>2026-03-05 10:03:32 +0100
commite2c3c3e95b6a9e53b4631b271640bb9914f8c95e (patch)
treea0e52468bdfe53bf896d8a86fc5b147ac8afe5f3 /src/audio/spectrogram_resource_manager.cc
parentf48562060413634b13706c3ffd01180da98b6049 (diff)
fix(audio): OLA encoder never ran; version never propagated to decoder
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 <noreply@anthropic.com>
Diffstat (limited to 'src/audio/spectrogram_resource_manager.cc')
-rw-r--r--src/audio/spectrogram_resource_manager.cc1
1 files changed, 1 insertions, 0 deletions
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)