From 5fc0517ffed67411ce5ca529742a2142acc2b5dc Mon Sep 17 00:00:00 2001 From: skal Date: Tue, 3 Feb 2026 07:39:54 +0100 Subject: feat: Finalize tracker asset-sample integration with unified pasting strategy --- src/audio/audio.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/audio/audio.cc') diff --git a/src/audio/audio.cc b/src/audio/audio.cc index e4abbf8..ad324c0 100644 --- a/src/audio/audio.cc +++ b/src/audio/audio.cc @@ -3,6 +3,7 @@ // Implementation uses miniaudio for cross-platform support. #include "audio.h" +#include "util/asset_manager.h" #if !defined(DEMO_BUILD_TOOLS) #define MA_NO_FLAC @@ -16,6 +17,23 @@ #include +int register_spec_asset(AssetId id) { + size_t size; + const uint8_t* data = GetAsset(id, &size); + if (!data || size < sizeof(SpecHeader)) + return -1; + + const SpecHeader* header = (const SpecHeader*)data; + const float* spectral_data = (const float*)(data + sizeof(SpecHeader)); + + Spectrogram spec; + spec.spectral_data_a = spectral_data; + spec.spectral_data_b = spectral_data; // No double-buffer for static assets + spec.num_frames = header->num_frames; + + return synth_register_spectrogram(&spec); +} + static ma_device g_device; void audio_data_callback(ma_device* pDevice, void* pOutput, const void* pInput, -- cgit v1.2.3